blumeops/docs/how-to/immich/cnpg-on-ringtail.md
Erich Blume e1fe5d2ea6 C2(migrate-immich-to-ringtail): close cnpg-on-ringtail
Verified: cnpg-controller-manager pod Ready on k3s-ringtail; CRDs
clusters.postgresql.cnpg.io etc. installed; ArgoCD app Synced/Healthy.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 13:12:21 -07:00

1.5 KiB

title modified last-reviewed tags
CNPG Operator on Ringtail 2026-05-13 2026-05-13
how-to
operations
postgres
ringtail

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.yaml pointing at the same mirror (mirrors/cloudnative-pg, tag v1.27.1), destination https://ringtail.tail8d86e.ts.net:6443, namespace cnpg-system.
  • Mirror the ServerSideApply=true and CreateNamespace=true sync options (the CRDs exceed the annotation size limit).
  • Sync apps then cloudnative-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.