From e98973b4677d9c56f2c0eb4409b9085b7c6c3fda Mon Sep 17 00:00:00 2001 From: Alex Lebens Date: Sat, 24 May 2025 01:35:57 -0500 Subject: [PATCH] fix name helper --- charts/postgres-cluster/Chart.yaml | 2 +- charts/postgres-cluster/README.md | 12 +++--- .../postgres-cluster/templates/_helpers.tpl | 2 +- .../postgres-cluster/templates/cluster.yaml | 4 +- .../templates/object-store.yaml | 38 +++++++++---------- .../templates/scheduled-backup.yaml | 12 +++--- charts/postgres-cluster/values.yaml | 6 +-- 7 files changed, 38 insertions(+), 38 deletions(-) diff --git a/charts/postgres-cluster/Chart.yaml b/charts/postgres-cluster/Chart.yaml index e17753b..c5df38e 100644 --- a/charts/postgres-cluster/Chart.yaml +++ b/charts/postgres-cluster/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: postgres-cluster -version: 6.0.9 +version: 6.1.0 description: Cloudnative-pg Cluster keywords: - database diff --git a/charts/postgres-cluster/README.md b/charts/postgres-cluster/README.md index 52bebea..9b5b996 100644 --- a/charts/postgres-cluster/README.md +++ b/charts/postgres-cluster/README.md @@ -1,6 +1,6 @@ # postgres-cluster -![Version: 6.0.9](https://img.shields.io/badge/Version-6.0.9-informational?style=flat-square) ![AppVersion: v1.26.0](https://img.shields.io/badge/AppVersion-v1.26.0-informational?style=flat-square) +![Version: 6.1.0](https://img.shields.io/badge/Version-6.1.0-informational?style=flat-square) ![AppVersion: v1.26.0](https://img.shields.io/badge/AppVersion-v1.26.0-informational?style=flat-square) Cloudnative-pg Cluster @@ -19,19 +19,19 @@ Cloudnative-pg Cluster | Key | Type | Default | Description | |-----|------|---------|-------------| -| backup | object | `{"enabled":false,"method":"objectStore","objectStore":[{"clusterName":"","data":{"compression":"snappy","encryption":"","jobs":1},"destinationPath":"","endpointCA":{"create":false,"enabled":false,"key":"","name":""},"endpointCredentials":"","endpointURL":"","index":1,"isWALArchiver":true,"name":"external","retentionPolicy":"30d","wal":{"compression":"snappy","encryption":"","maxParallel":1}}],"scheduledBackups":[{"backupName":"external","backupOwnerReference":"self","name":"daily-backup","plugin":"barman-cloud.cloudnative-pg.io","schedule":"0 0 */3 * *","suspend":false}]}` | Backup settings | -| backup.enabled | bool | `false` | You need to configure backups manually, so backups are disabled by default. | +| backup | object | `{"enabled":true,"method":"objectStore","objectStore":[{"clusterName":"","data":{"compression":"snappy","encryption":"","jobs":1},"destinationPath":"s3://postgres-backups","endpointCA":{"create":false,"enabled":false,"key":"","name":""},"endpointCredentials":"","endpointURL":"https://nyc3.digitaloceanspaces.com","index":1,"isWALArchiver":true,"name":"external","retentionPolicy":"30d","wal":{"compression":"snappy","encryption":"","maxParallel":1}}],"scheduledBackups":[{"backupName":"external","backupOwnerReference":"self","name":"daily-backup","plugin":"barman-cloud.cloudnative-pg.io","schedule":"0 0 */3 * *","suspend":false}]}` | Backup settings | +| backup.enabled | bool | `true` | You need to configure backups manually, so backups are disabled by default. | | backup.method | string | `"objectStore"` | Method to create backups, options currently are only objectStore | -| backup.objectStore | list | `[{"clusterName":"","data":{"compression":"snappy","encryption":"","jobs":1},"destinationPath":"","endpointCA":{"create":false,"enabled":false,"key":"","name":""},"endpointCredentials":"","endpointURL":"","index":1,"isWALArchiver":true,"name":"external","retentionPolicy":"30d","wal":{"compression":"snappy","encryption":"","maxParallel":1}}]` | Options for object store backups | +| backup.objectStore | list | `[{"clusterName":"","data":{"compression":"snappy","encryption":"","jobs":1},"destinationPath":"s3://postgres-backups","endpointCA":{"create":false,"enabled":false,"key":"","name":""},"endpointCredentials":"","endpointURL":"https://nyc3.digitaloceanspaces.com","index":1,"isWALArchiver":true,"name":"external","retentionPolicy":"30d","wal":{"compression":"snappy","encryption":"","maxParallel":1}}]` | Options for object store backups | | backup.objectStore[0].clusterName | string | `""` | Override the name of the backup cluster, defaults to "cluster.name" | | backup.objectStore[0].data.compression | string | `"snappy"` | Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`. | | backup.objectStore[0].data.encryption | string | `""` | Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`. | | backup.objectStore[0].data.jobs | int | `1` | Number of data files to be archived or restored in parallel. | -| backup.objectStore[0].destinationPath | string | `""` | Overrides the provider specific default path. Defaults to: S3: s3:// Azure: https://..core.windows.net/ Google: gs:// | +| backup.objectStore[0].destinationPath | string | `"s3://postgres-backups"` | Overrides the provider specific default path. Defaults to: S3: s3:// Azure: https://..core.windows.net/ Google: gs:// | | backup.objectStore[0].endpointCA | object | `{"create":false,"enabled":false,"key":"","name":""}` | Specifies a CA bundle to validate a privately signed certificate. | | backup.objectStore[0].endpointCA.create | bool | `false` | Creates a secret with the given value if true, otherwise uses an existing secret. | | backup.objectStore[0].endpointCredentials | string | `""` | Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY | -| backup.objectStore[0].endpointURL | string | `""` | Overrides the provider specific default endpoint. Defaults to: S3: https://s3..amazonaws.com" | +| backup.objectStore[0].endpointURL | string | `"https://nyc3.digitaloceanspaces.com"` | Overrides the provider specific default endpoint. Defaults to: S3: https://s3..amazonaws.com" | | backup.objectStore[0].index | int | `1` | Generate external cluster name, uses: {{ .Release.Name }}-postgresql--backup-index-{{ index }} | | backup.objectStore[0].isWALArchiver | bool | `true` | Specificies if this backup will do WALs | | backup.objectStore[0].name | string | `"external"` | Object store backup name | diff --git a/charts/postgres-cluster/templates/_helpers.tpl b/charts/postgres-cluster/templates/_helpers.tpl index 91a7ac6..343f26a 100644 --- a/charts/postgres-cluster/templates/_helpers.tpl +++ b/charts/postgres-cluster/templates/_helpers.tpl @@ -2,7 +2,7 @@ Expand the name of the chart. */}} {{- define "cluster.name" -}} - {{- if not (empty .Values.nameOverride ) }} + {{- if .Values.nameOverride }} {{- .Values.nameOverride | trunc 63 | trimSuffix "-" }} {{- else }} {{- printf "%s-postgresql-%s" .Release.Name ((semver .Values.cluster.image.tag).Major | toString) | trunc 63 | trimSuffix "-" -}} diff --git a/charts/postgres-cluster/templates/cluster.yaml b/charts/postgres-cluster/templates/cluster.yaml index e0b8ada..3f92557 100644 --- a/charts/postgres-cluster/templates/cluster.yaml +++ b/charts/postgres-cluster/templates/cluster.yaml @@ -26,9 +26,9 @@ spec: {{ $context := . -}} {{ range .Values.backup.objectStore -}} - name: barman-cloud.cloudnative-pg.io - isWALArchiver: {{ $context.isWALArchiver }} + isWALArchiver: {{ .isWALArchiver }} parameters: - barmanObjectName: "{{ include "cluster.name" . }}-{{ $context.name }}-backup" + barmanObjectName: "{{ include "cluster.name" $context }}-{{ .name }}-backup" {{ end -}} {{ end }} {{ if eq .Values.recovery.method "objectStore" }} diff --git a/charts/postgres-cluster/templates/object-store.yaml b/charts/postgres-cluster/templates/object-store.yaml index d6b2d8c..dbba003 100644 --- a/charts/postgres-cluster/templates/object-store.yaml +++ b/charts/postgres-cluster/templates/object-store.yaml @@ -5,48 +5,48 @@ apiVersion: barmancloud.cnpg.io/v1 kind: ObjectStore metadata: - name: "{{ include "cluster.name" $context }}-{{ $context.name }}-backup" + name: "{{ include "cluster.name" $context }}-{{ .name }}-backup" namespace: {{ include "cluster.namespace" $context }} labels: {{- include "cluster.labels" $context | nindent 4 }} spec: - retentionPolicy: {{ $context.retentionPolicy }} + retentionPolicy: {{ .retentionPolicy }} configuration: - destinationPath: {{ $context.destinationPath }} - endpointURL: {{ $context.endpointURL }} - {{- if .endpointCA.enabled }} + destinationPath: {{ .destinationPath }} + endpointURL: {{ .endpointURL }} + {{ if .endpointCA.enabled }} endpointCA: name: {{ .endpointCA.name }} key: {{ .endpointCA.key }} - {{- end }} - {{- if not (empty $context.clusterName) }} - serverName: "{{ $context.clusterName }}-backup-{{ $context.index }}" + {{ end }} + {{- if .clusterName }} + serverName: "{{ .clusterName }}-backup-{{ .index }}" {{- else }} - serverName: "{{ include "cluster.name" $context }}-backup-{{ $context.index }}" + serverName: "{{ include "cluster.name" $context }}-backup-{{ .index }}" {{- end }} wal: - compression: {{ $context.wal.compression }} - {{- with $context.wal.encryption}} + compression: {{ .wal.compression }} + {{- with .wal.encryption}} encryption: {{ . }} {{- end }} - maxParallel: {{ $context.wal.maxParallel }} + maxParallel: {{ .wal.maxParallel }} data: - compression: {{ $context.data.compression }} - {{- with $context.data.encryption }} + compression: {{ .data.compression }} + {{- with .data.encryption }} encryption: {{ . }} {{- end }} - jobs: {{ $context.data.jobs }} + jobs: {{ .data.jobs }} s3Credentials: accessKeyId: - {{- if not (empty $context.endpointCredentials) }} - name: {{ $context.endpointCredentials }} + {{- if not (empty .endpointCredentials) }} + name: {{ .endpointCredentials }} {{- else }} name: {{- printf "%s-backup-secret" (include "cluster.name" $context) | trunc 63 | trimSuffix "-" -}} {{- end }} key: ACCESS_KEY_ID secretAccessKey: - {{- if not (empty $context.endpointCredentials) }} - name: {{ $context.endpointCredentials }} + {{- if .endpointCredentials }} + name: {{ .endpointCredentials }} {{- else }} name: {{- printf "%s-backup-secret" (include "cluster.name" $context) | trunc 63 | trimSuffix "-" -}} {{- end }} diff --git a/charts/postgres-cluster/templates/scheduled-backup.yaml b/charts/postgres-cluster/templates/scheduled-backup.yaml index 815433b..ad0b6c5 100644 --- a/charts/postgres-cluster/templates/scheduled-backup.yaml +++ b/charts/postgres-cluster/templates/scheduled-backup.yaml @@ -5,21 +5,21 @@ apiVersion: postgresql.cnpg.io/v1 kind: ScheduledBackup metadata: - name: "{{ include "cluster.name" $context }}-{{ $context.name }}-scheduled-backup" + name: "{{ include "cluster.name" $context }}-{{ .name }}-scheduled-backup" namespace: {{ include "cluster.namespace" $context }} labels: {{- include "cluster.labels" $context | nindent 4 }} spec: immediate: true - suspend: {{ $context.suspend }} - schedule: {{ $context.schedule | quote }} - backupOwnerReference: {{ $context.backupOwnerReference }} + suspend: {{ .suspend }} + schedule: {{ .schedule | quote }} + backupOwnerReference: {{ .backupOwnerReference }} cluster: name: {{ include "cluster.name" $context }}-cluster method: plugin pluginConfiguration: - name: {{ $context.plugin }} + name: {{ .plugin }} parameters: - barmanObjectName: "{{ include "cluster.name" $context }}-{{ $context.backupName }}-backup" + barmanObjectName: "{{ include "cluster.name" $context }}-{{ .backupName }}-backup" {{ end -}} {{ end }} diff --git a/charts/postgres-cluster/values.yaml b/charts/postgres-cluster/values.yaml index 5b84d4d..e69598e 100644 --- a/charts/postgres-cluster/values.yaml +++ b/charts/postgres-cluster/values.yaml @@ -420,7 +420,7 @@ recovery: backup: # -- You need to configure backups manually, so backups are disabled by default. - enabled: false + enabled: true # -- Method to create backups, options currently are only objectStore method: objectStore @@ -435,11 +435,11 @@ backup: # S3: s3:// # Azure: https://..core.windows.net/ # Google: gs:// - destinationPath: "" + destinationPath: s3://postgres-backups # -- Overrides the provider specific default endpoint. Defaults to: # S3: https://s3..amazonaws.com" - endpointURL: "" # Leave empty if using the default S3 endpoint + endpointURL: https://nyc3.digitaloceanspaces.com # -- Specifies a CA bundle to validate a privately signed certificate. endpointCA: