blumeops/argocd/manifests/cloudnative-pg/README.md
Erich Blume de54b4e33d Port CloudNative-PG off Helm to direct release manifest (#268)
## Summary
- Point ArgoCD app directly at forge-mirrored upstream repo (`mirrors/cloudnative-pg`) instead of the Helm charts repo
- Use `directory.include` to select the specific release manifest (`cnpg-1.27.1.yaml`) from the `releases/` directory
- No vendored files, no Helm — upgrades are a two-line change (`targetRevision` + `directory.include`)
- Delete unused `values.yaml` (was empty, all Helm defaults)

## Deployment and Testing
- [ ] Register mirror repo in ArgoCD: `argocd repo add ssh://forgejo@forge.ops.eblu.me:2222/mirrors/cloudnative-pg.git --ssh-private-key-path <key>`
- [ ] `argocd app set cloudnative-pg --revision feature/cnpg-direct-source && argocd app sync cloudnative-pg`
- [ ] Verify operator pod running: `kubectl get pods -n cnpg-system --context=minikube-indri`
- [ ] Verify CRDs exist: `kubectl get crd --context=minikube-indri | grep cnpg`
- [ ] Verify existing clusters healthy: `kubectl get clusters -A --context=minikube-indri`
- [ ] After merge: `argocd app set cloudnative-pg --revision main && argocd app sync cloudnative-pg`

## Notes
- The forge mirror was created via `mise run mirror-create` from `https://github.com/cloudnative-pg/cloudnative-pg.git`
- ArgoCD may need the mirror repo added to its known repositories if the credential template doesn't already match `mirrors/*`

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/268
2026-02-25 17:37:53 -08:00

1.7 KiB

CloudNativePG Operator

Kubernetes operator for managing PostgreSQL clusters with high availability.

Source

Deployment

Managed via ArgoCD Application pointing directly at the upstream release manifest in the forge-mirrored repo. No Helm chart or vendored manifests — ArgoCD applies the release YAML from the releases/ directory using a directory.include filter.

Upgrading

To upgrade the operator, edit argocd/apps/cloudnative-pg.yaml:

  1. Update targetRevision to the new tag (e.g. v1.28.0)
  2. Update directory.include to match (e.g. cnpg-1.28.0.yaml)
  3. Commit and sync via ArgoCD

ArgoCD CLI Commands

# Check application status
argocd app get cloudnative-pg

# Trigger a sync
argocd app sync cloudnative-pg

# View deployment history
argocd app history cloudnative-pg

Verification

# Check operator pod is running
kubectl get pods -n cnpg-system --context=minikube-indri

# Check operator logs
kubectl logs -n cnpg-system -l app.kubernetes.io/name=cloudnative-pg --context=minikube-indri

# Check CRDs are installed
kubectl get crd --context=minikube-indri | grep cnpg

Files

File Description
README.md This file

Notes

  • The operator is deployed to cnpg-system namespace
  • PostgreSQL clusters are created separately using the Cluster CRD
  • No secrets required for the operator itself
  • ServerSideApply=true is required for the large CRDs
  • The values.yaml was removed — no Helm customization was in use