## 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
63 lines
1.7 KiB
Markdown
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
|