railiance-apps/docs/cnpg-backup-topology-inventory.md
tegwick 0da83472c4
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 5s
Default railiance01 kubeconfig to config-railiance01
config-hosteurope names port 16443, but the k3s-api-railiance01
ops-bridge tunnel listens on 16444, so every default target failed
with connection refused. Switch Makefile, tools and docs to
~/.kube/config-railiance01 and fix the restore recipe to rewrite the
API address to the tunnel port. The node-side hostPath in STATE.md is
unrelated and unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1031639@bnt-lap001
Assistant-Session: e5073fee-f4ae-4fc3-a75a-6c1fc83e0576
2026-10-17 11:46:40 +02:00

2 KiB

CNPG backup topology inventory

Workplan: RAILIANCE-WP-0016-T01
Recorded: 2026-07-22
Method: live kubectl get cluster + psql datname listing on both hosts.

Hosts

Host Kubeconfig (operator workstation) API
CoulombCore ~/.kube/config tunnel k3s-api-coulombcore
railiance01 ~/.kube/config-railiance01 local / hosteurope

Production-of-record (POR) decisions

Target id Host Cluster Databases POR? Consumer / notes
core-apps-pg CoulombCore apps-pg apps_meta, core_hub, core_hub_staging, vergabe_db Yes S5 apps (vergabe, core-hub) — only instance
core-gitea-db CoulombCore gitea-db gitea Yes Legacy Gitea; still live
r01-forgejo-db railiance01 forgejo-db forgejo Yes Forgejo production — only instance
core-net-kingdom-pg CoulombCore net-kingdom-pg interhub, privacyidea_db Yes (dual) Backup both until app DSN audit confirms single host
r01-net-kingdom-pg railiance01 net-kingdom-pg interhub, privacyidea_db, probe Yes (dual) Extra probe DB on R01 only
core-state-hub-db CoulombCore state-hub-db state_hub Yes (dual) Hub may run against either instance historically
r01-state-hub-db railiance01 state-hub-db state_hub Yes (dual) activity-core / local hub proximity

Dual-host policy

Until a consumer DSN audit proves a single POR for Net Kingdom and State Hub:

  • Backup both Core and R01 instances (different Nextcloud prefixes: core-* vs r01-*).
  • Restore drills must name the host + cluster, not only the DB name.

Out of backup scope (this workplan)

  • CNPG system DB postgres
  • Temporary drill DBs
  • App media PVCs (vergage media disabled)

Runner mapping

Implemented in railiance-platform/tools/cmd/cnpg-option-a-backup default target list. Override with CNPG_BACKUP_TARGETS=core-apps-pg,r01-forgejo-db.