🧬 Nakama
INTENDED vs LIVE / Production cutover caution
These steps describe the canonical GitOps deploy path: Argo →gitops/platform/base/nakama/(image digest pin + canary/rollback).
Live cutover is a separate gate: Vault/ESO/storage readiness must be cluster-verified; repository manifests alone are not proof. Read Nakama multiplayer Operational Truth before rotating secrets or retiring legacy Secrets.
Prefer canary + rollback discipline; do not skip integration gates.
Nakama deploys through Kubernetes in the funday-platform namespace.
Integration Gates
Before deploying, verify the canonical configuration and functionality locally:
npm run validate:game-manifests
npm run generate:game-registry -- --check
npm run test:integration:nakama_(Note: test:integration:_ commands require Docker or an active local cluster environment).*
Deployment Steps
- Build the immutable Nakama image from
nakama-modules/index.tsusingnpm run build:nakama. - Pin the image digest in the GitOps deployment.
- Apply changes via the canonical
gitops/platform/base/nakama/path (Argonakama-app→funday-platform). - Wait for the canary to become healthy via the
/healthcheckroute. - Observe E2E metrics; if anomalies appear, rollback uses the previous digest and Git revision.
Source: funday/funday-codex.yml services.nakama and nakama.
Proof links (SD17)
| Claim class | Proof |
|---|---|
| Intended GitOps path | gitops/argocd-apps/nakama-app.yaml → gitops/platform/base/nakama/ |
| Intended replicas | gitops/platform/base/nakama/deployment.yaml (replicas: 3) |
| Live cutover caution | Nakama multiplayer Operational Truth callout |
| Secrets gate | Secrets runbook INTENDED vs LIVE |
Live evidence (SD23)
Captured 2026-07-21T12:18:38Z via KUBECONFIG=~/.kube/config.
| Claim | Intended | Live |
|---|---|---|
| Namespace | funday-platform | funday-platform ✅ |
| Deploy | nakama | deployment.apps/nakama Ready 1/1 ✅ |
| Replicas | 3 (gitops/platform/base/nakama/deployment.yaml) | spec.replicas=1 / readyReplicas=1 ⚠️ drift |
| Image | pin via GitOps digest | heroiclabs/nakama:3.32.0 (tag, not digest-observed here) |
| Argo app sync | nakama-app | Argo API not installed on this cluster |
Commands used (read-only):
kubectl -n funday-platform get deploy nakama
kubectl -n funday-platform get deploy nakama -o jsonpath='{.spec.replicas}'
kubectl get ns argocd # NotFoundDo not treat GitOps replicas: 3 as live HA until the live deploy is scaled/synced deliberately.