Port CloudNative-PG operator from Helm chart to direct release manifest

Point the ArgoCD app directly at the forge-mirrored upstream repo
(mirrors/cloudnative-pg) using directory.include to select the specific
release manifest. This eliminates both the Helm chart dependency and
the need to vendor large manifest files. Upgrades become a two-line
change: targetRevision and directory.include.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Erich Blume 2026-02-25 17:30:31 -08:00
commit 9b8bef64a6
5 changed files with 29 additions and 28 deletions

View file

@ -1,7 +1,7 @@
# CloudNativePG Operator - PostgreSQL for Kubernetes
# Deploys the operator only; PostgreSQL clusters are created separately
#
# Chart mirrored from https://github.com/cloudnative-pg/charts to forge
# Mirror of https://github.com/cloudnative-pg/cloudnative-pg
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
@ -9,19 +9,12 @@ metadata:
namespace: argocd
spec:
project: default
sources:
# Helm chart from forge mirror (SSH via egress)
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/mirrors/cloudnative-pg-charts.git
targetRevision: cloudnative-pg-v0.27.1
path: charts/cloudnative-pg
helm:
releaseName: cloudnative-pg
valueFiles:
- $values/argocd/manifests/cloudnative-pg/values.yaml
# Values from our git repo
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/blumeops.git
targetRevision: main
ref: values
source:
repoURL: ssh://forgejo@forge.ops.eblu.me:2222/mirrors/cloudnative-pg.git
targetRevision: v1.27.1
path: releases
directory:
include: 'cnpg-1.27.1.yaml'
destination:
server: https://kubernetes.default.svc
namespace: cnpg-system

View file

@ -4,13 +4,23 @@ Kubernetes operator for managing PostgreSQL clusters with high availability.
## Source
- Helm chart: `cloudnative-pg` from https://cloudnative-pg.github.io/charts
- 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 using Helm source (not kustomize).
The Application points directly to the upstream Helm repository.
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
@ -29,24 +39,25 @@ argocd app history cloudnative-pg
```bash
# Check operator pod is running
kubectl get pods -n cnpg-system
kubectl get pods -n cnpg-system --context=minikube-indri
# Check operator logs
kubectl logs -n cnpg-system -l app.kubernetes.io/name=cloudnative-pg
kubectl logs -n cnpg-system -l app.kubernetes.io/name=cloudnative-pg --context=minikube-indri
# Check CRDs are installed
kubectl get crd | grep cnpg
kubectl get crd --context=minikube-indri | grep cnpg
```
## Files
| File | Description |
|------|-------------|
| `values.yaml` | Helm values for customization |
| `README.md` | This file |
## Notes
- The operator is deployed to `cnpg-system` namespace
- PostgreSQL clusters are created separately using the `Cluster` CRD (see Step 7)
- 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

View file

@ -1,4 +0,0 @@
# CloudNativePG Helm values
# See: https://github.com/cloudnative-pg/charts/tree/main/charts/cloudnative-pg
# Using defaults for now - customize as needed

View file

@ -0,0 +1 @@
Port CloudNative-PG operator from Helm chart to direct upstream release manifest via forge mirror.

View file

@ -1,6 +1,6 @@
---
title: Apps
modified: 2026-02-12
modified: 2026-02-25
tags:
- kubernetes
- argocd
@ -20,7 +20,7 @@ Registry of all applications deployed via [[argocd]].
| `1password-connect` | 1password | `argocd/manifests/1password-connect/` | [[1password]] |
| `external-secrets` | external-secrets | Helm chart | [[1password]] |
| `external-secrets-config` | external-secrets | `argocd/manifests/external-secrets-config/` | [[1password]] |
| `cloudnative-pg` | cnpg-system | Helm chart (forge mirror) | PostgreSQL operator |
| `cloudnative-pg` | cnpg-system | `mirrors/cloudnative-pg` release manifest | PostgreSQL operator |
| `blumeops-pg` | databases | `argocd/manifests/databases/` | [[postgresql]] |
| `prometheus` | monitoring | `argocd/manifests/prometheus/` | [[prometheus]] |
| `loki` | monitoring | `argocd/manifests/loki/` | [[loki]] |