From 97331b947fa20f5500728bb7d6521eebb66956dd Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Mon, 19 Oct 2026 21:47:04 +0200 Subject: [PATCH] Switch Mumble to restored dedicated PostgreSQL --- apps/mumble/README.md | 4 ++-- apps/mumble/values.yaml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/mumble/README.md b/apps/mumble/README.md index d52f298..b1502b6 100644 --- a/apps/mumble/README.md +++ b/apps/mumble/README.md @@ -1,8 +1,8 @@ # Mumble cutover and recovery -The published `mumble` chart owns the application and its optional Bitnami PostgreSQL subchart. This directory contains only cluster-specific values. The initial Argo sync has `mumble.enabled=false` so only a new, independent `mumble-postgresql` Service/StatefulSet/PVC are created; the legacy Mumble Deployment continues using the existing shared `default/postgresql` database. The old shared database and its PVC are not changed or removed. +The published `mumble` chart owns the application and its optional Bitnami PostgreSQL subchart. This directory contains only cluster-specific values. The initial Argo sync used `mumble.enabled=false` to bring up an independent `mumble-postgresql` Service/StatefulSet/PVC while the legacy Mumble Deployment kept using the shared database. After a final dump/restore with Mumble stopped, `mumble.enabled=true` adopted the existing Service and Deployment. The old shared database and its PVC were not changed or removed. -Before enabling Mumble, verify a local `pg_dump -Fc` from the shared database and restore it to the new database. Freeze Mumble writes for the final dump, then restore and compare schema/table counts. Only then set `mumble.enabled=true`. This rolls the existing `default/mumble` Deployment to use `mumble-postgresql.default.svc.cluster.local`. Its `Recreate` strategy avoids two server processes using the same database. Never enable both old direct-deploy CI and Argo as competing writers. If rollback is needed, freeze writes again and account for any writes made in the new database; blindly pointing Mumble back at the old copy would lose them. +The final dump is retained outside Git at `/home/feedc0de/migration-backups/mumble-2026-10-19/final-cutover.dump` on `arschrock` (mode 0600). All 14 Mumble table row counts matched after restore, including 33 users and 18 channels. The current `default/mumble` Deployment uses `mumble-postgresql.default.svc.cluster.local`. Its `Recreate` strategy avoids two server processes using the same database. If rollback is needed, freeze writes again and account for any writes made in the new database; blindly pointing Mumble back at the old copy would lose them. `default/mumble-secrets` contains the application's database, SuperUser, and registry passwords. `default/mumble-postgres` is generated once by the source repository's guarded bootstrap helper: a random PostgreSQL administrator password plus the existing Mumble database password. Neither Secret is in this public repository. Preserve and back up these Secrets with the new PostgreSQL PVC. The certificate remains `default/brunner-ninja-tls`, managed separately by cert-manager. No Mumble PVC exists; durable Mumble state is in PostgreSQL. diff --git a/apps/mumble/values.yaml b/apps/mumble/values.yaml index 578ae7b..56ce298 100644 --- a/apps/mumble/values.yaml +++ b/apps/mumble/values.yaml @@ -1,7 +1,7 @@ -# First stage: create the dedicated database without changing the live Mumble pod. -# Set mumble.enabled=true only after a verified final pg_dump/pg_restore cutover. +# Dedicated PostgreSQL contains the verified final pg_dump from the former +# shared database. The old database is retained as rollback data. mumble: - enabled: false + enabled: true database: host: mumble-postgresql.default.svc.cluster.local secrets: