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

63 lines
1.7 KiB
Markdown

# CloudNativePG Operator
Kubernetes operator for managing PostgreSQL clusters with high availability.
## Source
- Upstream mirror: `mirrors/cloudnative-pg` on 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`:
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
```bash
# 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
```bash
# 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