Commit Graph

30 Commits

Author SHA1 Message Date
b76e9101d8 Tolerate declarative OpenBao audit setup 2026-05-25 15:14:41 +02:00
3741294b05 Treat sealed OpenBao preflight as expected 2026-05-25 10:49:29 +02:00
8d4faaa408 openbao king credential bootstrapping 2026-05-24 09:25:18 +02:00
3ea82f8c72 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-24:
  - update .custodian-brief.md for railiance-platform
2026-05-24 00:31:07 +02:00
a7ffeb8b46 Platform secret setup 2026-05-23 13:59:58 +02:00
f0061d5020 Add self-coherent INTENT.md
Author the repository's INTENT: the shared platform-services layer — the
dependable, backed-up, secure foundation of stateful services (data,
cache, secret custody, object storage, messaging) that consumers build on,
behind stable interfaces and independently evolvable underneath.

Intent is kept self-coherent and reference-free (no external project or
dependency-product references), describing this repository's own purpose
at the abstract, stable level.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 01:46:11 +02:00
017934d479 Add vergabe role + vergabe_db database for RAILIANCE-WP-0002 T04
First consumer of the shared apps-pg cluster: managed role vergabe in apps-pg-cluster.yaml plus Database CR vergabe-db in new helm/apps-pg-databases.yaml. .gitignore whitelists helm/*-databases.yaml. Workplan implementation notes from codex folded in. Live: Database CR applied=true, psql from vergabe-teilnahme ns returns PostgreSQL 16.13.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 15:47:06 +02:00
39fc74ecac chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-19:
  - update .custodian-brief.md for railiance-platform
2026-05-19 04:55:43 +02:00
d551960821 RAILIANCE-WP-0003 finished: apps-pg healthy and consumer-ready
Marks T01-T06 done and the workplan as finished. apps-pg is in 'Cluster in healthy state', smoke-tested via labeled-ns psql, documented in docs/apps-pg.md, and the platform team has replied on the coordination thread (msg dd119862) so RAILIANCE-WP-0002 T04 can proceed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 04:54:43 +02:00
1a5b65a338 RAILIANCE-WP-0003 T02-T06: provision shared apps-pg cnpg cluster
Adds the shared CloudNativePG cluster apps-pg for S5 application
databases:
- helm/apps-pg-cluster.yaml — Cluster CR, PG 16, 1 instance, 10Gi
- helm/apps-pg-networkpolicies.yaml — egress-to-kube-api +
  ingress-from-cnpg-operator + label-based ingress opt-in
  (railiance.io/postgres-client=apps-pg)
- helm/apps-pg-secret.sops.yaml.template — bootstrap credential
  template (encrypt with SOPS before committing the real .sops.yaml)
- Makefile targets: apps-pg-deploy, apps-pg-status (with cnpg-plugin
  fallback), apps-pg-shell (apps_admin/apps_meta), apps-pg-logs
- docs/apps-pg.md (codex) — consumer onboarding contract clarifying
  the CNPG 1.28 role/database lifecycle boundary

Also fixes helm/gitea-db-cluster.yaml: spec.postgresql.version is not
a valid CNPG v1 field (strict decoding rejects it). Replaced with
spec.imageName matching the live cluster (postgresql:18.1-system-trixie)
so make db-deploy is a no-op instead of an apply rejection.

Live state at commit time: Cluster apps-pg in healthy state, primary
apps-pg-1 Running, smoke-tested via psql from a labeled temp ns.

Co-Authored-By: codex <noreply@openai.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 04:50:40 +02:00
626ad7f3a7 workplan cleanup 2026-05-19 01:40:42 +02:00
8933690e67 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-19:
  - update .custodian-brief.md for railiance-platform
2026-05-19 01:22:30 +02:00
3fc8464ffc chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-19:
  - update .custodian-brief.md for railiance-platform
2026-05-19 00:47:15 +02:00
e1a6ea5f18 Propose RAILIANCE-WP-0003: shared cnpg cluster apps-pg
6-task plan to provision a shared CloudNative PG cluster apps-pg in
the databases namespace, with NetworkPolicies that use a label-based
consumer opt-in (railiance.io/postgres-client=apps-pg) instead of
the per-namespace allowlist gitea-db uses.

Responds to coordination message 768c18f4 from railiance-apps and
unblocks RAILIANCE-WP-0002 T04 (vergabe-teilnahme role+db creation).

Keeps platform agnostic of individual apps per ADR-003: per-app
Database CRs and credential Secrets are owned by the consuming repos.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 00:46:50 +02:00
10324f257c Refresh agent instruction files 2026-05-18 16:55:52 +02:00
980947894e Added openbao secrets management and phaseout of bitnami for CloudNative PG 2026-05-18 11:53:59 +02:00
fc0a6c280b Add OpenBao platform secrets workplan 2026-05-17 14:17:56 +02:00
0c7820ead1 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-17:
  - update .custodian-brief.md for railiance-platform
2026-05-17 14:14:55 +02:00
6a48c88249 Scope update from repo-scoping refactor 2026-05-01 12:35:31 +02:00
643e7a4c08 feat(valkey): add encrypted Valkey standalone values for S3 platform
Standalone Valkey deployed to platform namespace (bitnami/valkey 5.4.9).
Uses hex password (URL-safe). Gitea session/cache/queue migrated from
valkey-cluster subchart to standalone valkey-primary.platform.svc.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 09:59:14 +01:00
cf7abf56f4 feat(gitea-db): add NetworkPolicy for app-namespace ingress; update SCOPE
- Add allow-ingress-from-default-gitea-db NetworkPolicy so Gitea pods
  in default namespace can connect to gitea-db cnpg cluster on 5432
- Update SCOPE.md to reflect cnpg as the canonical DB operator (postgresql-ha
  subchart fully decommissioned as of this session)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 03:06:23 +01:00
e29f430b8d feat(s3): add gitea-db NetworkPolicies and Valkey values template
- gitea-db-networkpolicies.yaml: allow-egress-kube-api and
  allow-ingress-from-cnpg-operator for gitea-db cluster pods;
  required because databases namespace has default-deny-all policy
  and existing allow rules only covered net-kingdom-pg
- valkey-values.sops.yaml.template: standalone Valkey Helm values
  template with Gitea connection string documentation
- .gitignore: allow *-networkpolicies.yaml alongside *-cluster.yaml

Fixes gitea-db initdb failure (T03); gitea-db cluster now healthy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 02:23:00 +01:00
2a4312643d feat(s3): add cnpg Gitea database cluster + Makefile targets
- helm/gitea-db-cluster.yaml: cnpg Cluster for Gitea (1 instance, 10Gi, pg16)
  bootstraps gitea DB from gitea-db-credentials secret in databases namespace
- helm/gitea-db-secret.sops.yaml.template: credential secret template (encrypt before use)
- Makefile: add db-deploy, db-status, db-shell, db-logs targets; mark pg-deploy legacy
- .gitignore: allow *-cluster.yaml (k8s manifests with no secrets)

Cluster applied to live cluster. RAIL-HO-WP-0004-T03.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 02:07:31 +01:00
f33648e126 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-03-27:
  - update .custodian-brief.md for railiance-platform
2026-03-27 01:02:36 +01:00
007afdcb6b chore(workplan): mark WP-0001 superseded by RAIL-HO-WP-0004
WP-0001 targeted Bitnami postgresql-ha; CloudNative PG (cnpg) is the
deployed operator. Migration path now tracked in RAIL-HO-WP-0004-T03–T05.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 01:02:23 +01:00
1c00050968 Updated scope 2026-03-20 23:45:30 +01:00
37d8b6b47e docs: add SCOPE.md for rapid orientation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 23:11:38 +01:00
01d280120d feat(platform): T01 — standalone PostgreSQL HA chart scaffold
Lays out the S3 platform layer foundation for RAIL-PL-WP-0001 T01:

- .sops.yaml: age encryption policy (shared key, *.sops.yaml pattern)
- .gitignore: prevents accidental commit of decrypted values files
- Makefile: pg-deploy, pg-status, pg-pgpool-check, valkey-deploy,
  valkey-status, backup targets with KUBECONFIG/HELM wiring
- helm/postgresql-ha-values.yaml.template: annotated values schema
  with CHANGEME_ placeholders; includes pgpool-password fix from
  RAIL-BS-WP-0003; notes on single-node vs ThreePhoenix scaling
- docs/postgresql-ha.md: connection strings, DB creation, password
  rotation, pgpool-password critical note, HA failover test ref,
  ThreePhoenix scaling path

To complete T01: fill in CHANGEME_ values, encrypt with sops -e -i,
then run make pg-deploy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 02:17:55 +01:00
b2d9b67783 feat(workplan): RAIL-PL-WP-0001 S3 Platform Services Baseline
First workplan for railiance-platform (S3). Separates platform
services from the S2 cluster runtime layer per ADR-003:

- T01: standalone PostgreSQL HA Helm chart (platform namespace)
- T02: migrate Gitea to external DB, remove subchart coupling
- T03: relocate Gitea Helm values to railiance-apps (S5)
- T04: smoke + HA failover tests (D3 policy)
- T05: relocate railiance-backup tool from S2 to S3
- T06: standalone Valkey deployment (enables Zulip reuse)

Workstream: e4ec133c-7cb9-43c6-95f0-50d6591f13d7

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 02:10:06 +01:00
0eaa6c872b chore(init): scaffold railiance-platform (S3 Platform Services)
Initial repo structure per ADR-003: CLAUDE.md, Makefile, workplans/.
No implementation yet — repo claims its OAS stack layer.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 00:36:06 +01:00