From ceaa7ededee183886d8de5db3e31b88407d3b45b Mon Sep 17 00:00:00 2001 From: jessebot Date: Sun, 18 Jan 2026 10:50:41 +0100 Subject: [PATCH 1/2] fix test app and docs --- README.md | 49 ++++++++++++++---- charts/cloudnative-pg-cluster/Chart.lock | 6 +++ charts/cloudnative-pg-cluster/Chart.yaml | 2 +- charts/cloudnative-pg-cluster/README.md | 6 ++- .../charts/cluster-0.5.0.tgz | Bin 0 -> 45471 bytes .../templates/test-app.yaml | 6 +-- charts/cloudnative-pg-cluster/values.yaml | 14 +++-- 7 files changed, 62 insertions(+), 21 deletions(-) create mode 100644 charts/cloudnative-pg-cluster/Chart.lock create mode 100644 charts/cloudnative-pg-cluster/charts/cluster-0.5.0.tgz diff --git a/README.md b/README.md index a6a694a..10e0fad 100644 --- a/README.md +++ b/README.md @@ -70,8 +70,6 @@ cnpgCluster: # All other values here are passed directly to the their chart. See: # https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/values.yaml enabled: true - type: postgresql - mode: standalone # -- see: https://cloudnative-pg.io/docs/1.28/certificates#client-certificate certificates: ## examples if using our certificates features of this chart. @@ -80,21 +78,52 @@ cnpgCluster: serverCASecret: "app-postgres-server-ca-key-pair" clientCASecret: "app-postgres-client-ca-key-pair" replicationTLSSecret: "app-postgres-client-cert" - - postgresql: - # -- records for the pg_hba.conf file. ref: https://www.postgresql.org/docs/current/auth-pg-hba-conf.html - # this states that certs are required for access to the cluster, - # but you can change it to still allow passwords if you'd like - pg_hba: - - hostnossl all all 0.0.0.0/0 reject - - hostssl all all 0.0.0.0/0 cert clientcert=verify-full + + cluster: + initdb: + # -- replace this with your database name + database: app + # -- replace this with your database username + owner: app + + postgresql: + # -- records for the pg_hba.conf file. ref: https://www.postgresql.org/docs/current/auth-pg-hba-conf.html + # this states that certs are required for access to the cluster, + # but you can change it to still allow passwords if you'd like + pg_hba: + - hostnossl all all 0.0.0.0/0 reject + - hostssl all all 0.0.0.0/0 cert clientcert=verify-full ``` ### Using the test app The test app may be enabled by certificates as well as setting `testApp.enabled=true` in your helm parameters or in the `values.yaml` like this: ```yaml +# -- name to use for templating certs +name: "app-postgres" + testApp: enabled: true + +cnpgCluster: + # -- enable this to deploy the official CNPG cluster helm chart dep + # All other values here are passed directly to the their chart. See: + # https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/values.yaml + enabled: true + # -- see: https://cloudnative-pg.io/docs/1.28/certificates#client-certificate + certificates: + ## examples if using our certificates features of this chart. + ## NOTE: app-postgres should be replaced with whatever you set Values.name to + serverTLSSecret: "app-postgres-server-cert" + serverCASecret: "app-postgres-server-ca-key-pair" + clientCASecret: "app-postgres-client-ca-key-pair" + replicationTLSSecret: "app-postgres-client-cert" + + cluster: + initdb: + # -- replace this with your database name + database: app + # -- replace this with your database username + owner: app ``` This will create a very basic Deployment of `ghcr.io/cloudnative-pg/webtest` [as described in the official docs](https://cloudnative-pg.io/docs/1.28/ssl_connections#testing-the-connection-via-a-tls-certificate) that attempts to connect to your postgres cluster using full mTLS. diff --git a/charts/cloudnative-pg-cluster/Chart.lock b/charts/cloudnative-pg-cluster/Chart.lock new file mode 100644 index 0000000..f74ad9a --- /dev/null +++ b/charts/cloudnative-pg-cluster/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: cluster + repository: https://cloudnative-pg.github.io/charts + version: 0.5.0 +digest: sha256:267917b68a642fca0e337cd78580f656a5084d3a84aa2df12a9291bee6ccbc56 +generated: "2026-01-18T10:52:01.555554815+01:00" diff --git a/charts/cloudnative-pg-cluster/Chart.yaml b/charts/cloudnative-pg-cluster/Chart.yaml index 62a9919..5e73f81 100644 --- a/charts/cloudnative-pg-cluster/Chart.yaml +++ b/charts/cloudnative-pg-cluster/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: cnpg-cluster description: Create postgres tenant clusters managed by the CNPG Operator type: application -version: 1.0.0 +version: 1.0.1 dependencies: - name: cluster diff --git a/charts/cloudnative-pg-cluster/README.md b/charts/cloudnative-pg-cluster/README.md index 2dc75b0..e65cf07 100644 --- a/charts/cloudnative-pg-cluster/README.md +++ b/charts/cloudnative-pg-cluster/README.md @@ -1,6 +1,6 @@ # cnpg-cluster -![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![Version: 1.0.1](https://img.shields.io/badge/Version-1.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) Create postgres tenant clusters managed by the CNPG Operator @@ -36,10 +36,12 @@ Create postgres tenant clusters managed by the CNPG Operator | cnpgCluster.additionalEnv[1].name | string | `"AWS_RESPONSE_CHECKSUM_VALIDATION"` | | | cnpgCluster.additionalEnv[1].value | string | `"when_required"` | | | cnpgCluster.certificates | object | `{}` | see: https://cloudnative-pg.io/docs/1.28/certificates#client-certificate | +| cnpgCluster.cluster.initdb.database | string | `"app"` | | +| cnpgCluster.cluster.initdb.owner | string | `"app"` | | | cnpgCluster.cluster.instances | int | `3` | Number of instances | +| cnpgCluster.cluster.postgresql.pg_hba | list | `["hostnossl all all 0.0.0.0/0 reject","hostssl all all 0.0.0.0/0 cert clientcert=verify-full"]` | records for the pg_hba.conf file. ref: https://www.postgresql.org/docs/current/auth-pg-hba-conf.html | | cnpgCluster.enabled | bool | `false` | enable this to deploy the official CNPG cluster helm chart dep All other values here are passed directly to the their chart. See: https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/values.yaml | | cnpgCluster.mode | string | `"standalone"` | | -| cnpgCluster.postgresql.pg_hba | list | `["hostnossl all all 0.0.0.0/0 reject","hostssl all all 0.0.0.0/0 cert clientcert=verify-full"]` | records for the pg_hba.conf file. ref: https://www.postgresql.org/docs/current/auth-pg-hba-conf.html | | cnpgCluster.primaryUpdateStrategy | string | `"unsupervised"` | | | cnpgCluster.type | string | `"postgresql"` | | | cnpgCluster.version.postgresql | string | `"16"` | | diff --git a/charts/cloudnative-pg-cluster/charts/cluster-0.5.0.tgz b/charts/cloudnative-pg-cluster/charts/cluster-0.5.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..03c7ff867a7577a080dacc5a6298bb0cafbf5e5d GIT binary patch literal 45471 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 b%}Qh Date: Sun, 18 Jan 2026 10:57:24 +0100 Subject: [PATCH 2/2] add helm chart dep --- .github/workflows/ci-helm-lint-test.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-helm-lint-test.yml b/.github/workflows/ci-helm-lint-test.yml index 9f1a3e1..9416193 100644 --- a/.github/workflows/ci-helm-lint-test.yml +++ b/.github/workflows/ci-helm-lint-test.yml @@ -22,6 +22,10 @@ jobs: - name: Install Helm uses: azure/setup-helm@v3.5 + - name: Add dependency chart repos + run: | + helm repo add cnpg https://cloudnative-pg.github.io/charts + - name: Set up chart-testing uses: helm/chart-testing-action@v2.6.1 @@ -49,7 +53,7 @@ jobs: kubectl get pods -A pwd ls -hal - + - name: Install Certmanager run: | helm repo add jetstack https://charts.jetstack.io @@ -60,7 +64,7 @@ jobs: --set installCRDs=true \ --set prometheus.enabled=false \ --wait - + - name: Install CNPG Operator run: | helm repo add cnpg-operator https://cloudnative-pg.github.io/charts @@ -95,7 +99,7 @@ jobs: replicationTLSSecret: "" user: enabled: true - username: + username: - "app" monitoring: enablePodMonitor: false @@ -114,7 +118,7 @@ jobs: testApp: enabled: false EOF - + - name: Install CNPG cluster working-directory: ./charts/cloudnative-pg-cluster run: | @@ -139,7 +143,7 @@ jobs: echo "$STATUS" (( ++ITER )) done - + - name: Run chart-testing (install) id: install if: steps.list-changed.outputs.changed == 'true'