Goal: move immich (server, ML, valkey, postgres) off minikube-indri onto k3s-ringtail. Immich is the largest single tenant on minikube (~1.5 GiB resident) and minikube is memory-saturated. Prerequisite cards: - cnpg-on-ringtail - immich-pg-on-ringtail (requires cnpg-on-ringtail) - immich-pg-data-migration (requires immich-pg-on-ringtail) - sifaka-nfs-from-ringtail - immich-app-on-ringtail (requires immich-pg-on-ringtail, sifaka-nfs-from-ringtail) - immich-cutover-and-decommission (requires immich-pg-data-migration, immich-app-on-ringtail) Data loss is a critical failure; downtime is acceptable. The cutover plan favors a CNPG externalCluster basebackup (Option A) with pg_dump as the documented fallback (Option B). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.6 KiB
1.6 KiB
| title | modified | last-reviewed | status | tags | ||||
|---|---|---|---|---|---|---|---|---|
| CNPG Operator on Ringtail | 2026-05-13 | 2026-05-13 | active |
|
CNPG Operator on Ringtail
Bring up the cloudnative-pg operator on k3s-ringtail. Today the
operator only exists on minikube-indri (see
argocd/apps/cloudnative-pg.yaml, destination kubernetes.default.svc).
Prerequisite of migrate-immich-to-ringtail; consumed by immich-pg-on-ringtail.
What to do
- Add a sibling
argocd/apps/cloudnative-pg-ringtail.yamlpointing at the same mirror (mirrors/cloudnative-pg, tagv1.27.1), destinationhttps://ringtail.tail8d86e.ts.net:6443, namespacecnpg-system. - Mirror the
ServerSideApply=trueandCreateNamespace=truesync options (the CRDs exceed the annotation size limit). - Sync
appsthencloudnative-pg-ringtail. Verify the operator pod is running on ringtail.
Verification
kubectl --context=k3s-ringtail -n cnpg-system get pods
kubectl --context=k3s-ringtail get crd clusters.postgresql.cnpg.io
Why a separate app
Each ArgoCD app targets a single cluster via destination.server.
We could parameterize with ApplicationSets, but blumeops' convention
is to duplicate the manifest with a -ringtail suffix (see
alloy-ringtail, external-secrets-ringtail, etc.). Keep the
convention.
Out of scope
- Postgres clusters themselves (
immich-pg, etc.) — those come from immich-pg-on-ringtail. - Removing the minikube cnpg operator. That happens at the very end of the indri-k8s decommission, not in this chain.