2.8 KiB
Mumble
Argo CD deploys Mumble and its CloudNativePG cluster in the mumble namespace.
The published brunner.ninja/mumble chart owns the workload, TCP/UDP Services,
probes, configuration rendering, and optional PostgreSQL modes. GitOps selects
the chart version and supplies this cluster's addresses, registration details,
Secret names, and PostgreSQL endpoint.
PostgreSQL and credentials
mumble-postgresql is a one-instance CloudNativePG cluster using PostgreSQL
18.6 and an 8 GiB Ceph RBD claim. Mumble connects to
mumble-postgresql-rw.mumble.svc.cluster.local. The mumble-secrets Secret in
this namespace supplies both Mumble's application credentials and the
CloudNativePG bootstrap username/password. It was copied from the prior
default/mumble-secrets by the guarded source-repository helper; neither
Secret's values are stored in this public repository. The TLS Secret
brunner-ninja-tls is produced by the namespace-local Certificate and
letsencrypt-dns ClusterIssuer.
Networking
The LoadBalancer Service exposes TCP/UDP 64738 and retains the MikroTik
operator annotations; Kubernetes dynamically allocated 192.168.0.14 after
the move. Do not pin that address. The chart's mumble-funkfeuer Service keeps
the direct addresses 10.12.4.170 and 192.168.0.2. Both Services select the
Mumble Pod in this namespace.
Migration and recovery
On 2026-10-25, the old Mumble Deployment was stopped before the final database
dump. The final custom-format dump is at
/mnt/backup/mumble-migration-20261025T065619Z/final-cutover.dump on
arschrock (mode 0600), and its archive was validated with pg_restore --list.
All 14 application table counts matched after restore, including 34 users,
18 channels, and 6,536 log rows. The server was then started against the new
database. The pre-cutover snapshot is in the same directory.
The first complete scheduled-format backup was also verified on 2026-10-25:
/mnt/backup/kubernetes/postgresql/mumble/2026-10-25T06-59-24Z/. The Job ran
on arschrock, wrote a complete marker, and its database archive passed
pg_restore --list. The daily backup CronJob refuses to write unless the
/mnt/backup host mount is bcachefs.
The old default/data-mumble-postgresql-0 PVC is retained for rollback (UID
6d0c591f-9aae-4932-8f94-ebf5ec1032a8, PV
pvc-6d0c591f-9aae-4932-8f94-ebf5ec1032a8). Its StatefulSet is retired after
the new cluster and backup were verified; do not delete this PVC or its PV
without an explicit recovery decision. The old default/mumble-secrets and
default/mumble-postgres Secrets are likewise retained as cold rollback
material. To roll back, quiesce the new Mumble writer, preserve a fresh dump of
new writes, then restore/reconnect the old database before starting the old
server. Never run both Mumble servers as writers at once.