Files
homelab-gitops/apps/minecraft-paper/CUTOVER.md
T

29 lines
1.6 KiB
Markdown

# Paper runtime and recovery
Argo CD runs the stock Java 26 runtime from `deployment.yaml`; Paper's selected
JAR, plugins, configs, worlds, and Dynmap data stay at
`/home/feedc0de/mcserver` on arschrock. Paper's plugin database is the separate
Bitnami PostgreSQL Argo Application in the same namespace. Its existing PVC
UID is `58141201-d502-4fb6-a396-c57a0a83d320`; do not replace or delete it.
The cluster-only Secret `paper-postgres` supplies its credentials.
Plugin DB host settings and Dynmap's `0.0.0.0` bind address are already in the
host configs, with `.pre-kubernetes` backups retained. The route
`brunner.ninja/mcmap` strips `/mcmap` and targets the local Dynmap Service.
For maintenance or rollback, set the Paper Deployment replicas to zero in
GitOps and wait until the pod is gone before starting byobu. If plugins wrote
to the Kubernetes PostgreSQL database, reconcile those writes before switching
to the old host database. To return to Kubernetes, stop byobu completely,
restore replicas to one, and verify plugins, the game port, Dynmap, and Grafana.
Never let both runtimes write the server directory simultaneously.
The normal LoadBalancer address is dynamically assigned; the separate direct
service also answers on `10.12.4.170` and `192.168.0.2`.
Paper's pod is gated by node label `minecraft.brunner.ninja/dynmap-ready=true`.
The host mount scripts set it only after the Dynmap tiles directory is confirmed
as a bind mount from `/mnt`; the offline script removes the label and waits for
Paper to stop before unmounting. This prevents a fresh empty directory on the
system disk from being used for map tiles.