## 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
1.7 KiB
1.7 KiB
CloudNativePG Operator
Kubernetes operator for managing PostgreSQL clusters with high availability.
Source
- Upstream mirror:
mirrors/cloudnative-pgon forge (from https://github.com/cloudnative-pg/cloudnative-pg) - Documentation: https://cloudnative-pg.io/documentation/
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:
- Update
targetRevisionto the new tag (e.g.v1.28.0) - Update
directory.includeto match (e.g.cnpg-1.28.0.yaml) - 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-systemnamespace - PostgreSQL clusters are created separately using the
ClusterCRD - No secrets required for the operator itself
ServerSideApply=trueis required for the large CRDs- The
values.yamlwas removed — no Helm customization was in use