Compare commits
8 Commits
postgres-c
...
postgres-c
Author | SHA1 | Date | |
---|---|---|---|
e1a2ee71f8 | |||
37478087d4 | |||
9af2f7d52a | |||
ab89f723a7 | |||
884cae31a3 | |||
9c2afe436d | |||
e0b707fa32 | |||
2b02da90fd |
@@ -55,3 +55,12 @@ jobs:
|
|||||||
tag_name: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}
|
tag_name: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}
|
||||||
files: |-
|
files: |-
|
||||||
${{ env.PACKAGE_PATH }}
|
${{ env.PACKAGE_PATH }}
|
||||||
|
|
||||||
|
- name: Actions Ntfy
|
||||||
|
run: |
|
||||||
|
curl \
|
||||||
|
-H "Authorization: Bearer ${{ secrets.NTFY_CRED }}" \
|
||||||
|
-H "Title: Chart Released: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}" \
|
||||||
|
-H "Content-Type: text/plain" \
|
||||||
|
-d $'Repo: ${{ gitea.repository }}\nCommit: ${{ gitea.sha }}\nRef: ${{ gitea.ref }}\nStatus: ${{ job.status}}' \
|
||||||
|
${{ secrets.NTFY_URL }}
|
||||||
|
@@ -55,3 +55,12 @@ jobs:
|
|||||||
tag_name: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}
|
tag_name: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}
|
||||||
files: |-
|
files: |-
|
||||||
${{ env.PACKAGE_PATH }}
|
${{ env.PACKAGE_PATH }}
|
||||||
|
|
||||||
|
- name: Actions Ntfy
|
||||||
|
run: |
|
||||||
|
curl \
|
||||||
|
-H "Authorization: Bearer ${{ secrets.NTFY_CRED }}" \
|
||||||
|
-H "Title: Chart Released: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}" \
|
||||||
|
-H "Content-Type: text/plain" \
|
||||||
|
-d $'Repo: ${{ gitea.repository }}\nCommit: ${{ gitea.sha }}\nRef: ${{ gitea.ref }}\nStatus: ${{ job.status}}' \
|
||||||
|
${{ secrets.NTFY_URL }}
|
||||||
|
@@ -55,3 +55,12 @@ jobs:
|
|||||||
tag_name: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}
|
tag_name: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}
|
||||||
files: |-
|
files: |-
|
||||||
${{ env.PACKAGE_PATH }}
|
${{ env.PACKAGE_PATH }}
|
||||||
|
|
||||||
|
- name: Actions Ntfy
|
||||||
|
run: |
|
||||||
|
curl \
|
||||||
|
-H "Authorization: Bearer ${{ secrets.NTFY_CRED }}" \
|
||||||
|
-H "Title: Chart Released: ${{ env.CHART_NAME }}-${{ env.CHART_VERSION }}" \
|
||||||
|
-H "Content-Type: text/plain" \
|
||||||
|
-d $'Repo: ${{ gitea.repository }}\nCommit: ${{ gitea.sha }}\nRef: ${{ gitea.ref }}\nStatus: ${{ job.status}}' \
|
||||||
|
${{ secrets.NTFY_URL }}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: cloudflared
|
name: cloudflared
|
||||||
version: 1.14.7
|
version: 1.15.0
|
||||||
description: Cloudflared Tunnel
|
description: Cloudflared Tunnel
|
||||||
keywords:
|
keywords:
|
||||||
- cloudflare
|
- cloudflare
|
||||||
@@ -13,6 +13,6 @@ maintainers:
|
|||||||
dependencies:
|
dependencies:
|
||||||
- name: common
|
- name: common
|
||||||
repository: https://bjw-s-labs.github.io/helm-charts/
|
repository: https://bjw-s-labs.github.io/helm-charts/
|
||||||
version: 3.7.3
|
version: 4.0.1
|
||||||
icon: https://avatars.githubusercontent.com/u/314135?s=48&v=4
|
icon: https://avatars.githubusercontent.com/u/314135?s=48&v=4
|
||||||
appVersion: "2025.4.2"
|
appVersion: "2025.5.0"
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
# cloudflared
|
# cloudflared
|
||||||
|
|
||||||
 
|
 
|
||||||
|
|
||||||
Cloudflared Tunnel
|
Cloudflared Tunnel
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ Cloudflared Tunnel
|
|||||||
|
|
||||||
| Repository | Name | Version |
|
| Repository | Name | Version |
|
||||||
|------------|------|---------|
|
|------------|------|---------|
|
||||||
| https://bjw-s-labs.github.io/helm-charts/ | common | 3.7.3 |
|
| https://bjw-s-labs.github.io/helm-charts/ | common | 4.0.1 |
|
||||||
|
|
||||||
## Values
|
## Values
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ Cloudflared Tunnel
|
|||||||
|-----|------|---------|-------------|
|
|-----|------|---------|-------------|
|
||||||
| existingSecretKey | string | `"cf-tunnel-token"` | Name of key that contains the token in the existingSecret |
|
| existingSecretKey | string | `"cf-tunnel-token"` | Name of key that contains the token in the existingSecret |
|
||||||
| existingSecretName | string | `"cloudflared-secret"` | Name of existing secret that contains Cloudflare token |
|
| existingSecretName | string | `"cloudflared-secret"` | Name of existing secret that contains Cloudflare token |
|
||||||
| image | object | `{"pullPolicy":"IfNotPresent","repository":"cloudflare/cloudflared","tag":"2025.4.2"}` | Default image |
|
| image | object | `{"pullPolicy":"IfNotPresent","repository":"cloudflare/cloudflared","tag":"2025.5.0"}` | Default image |
|
||||||
| name | string | `"cloudflared"` | Name override of release |
|
| name | string | `"cloudflared"` | Name override of release |
|
||||||
| resources | object | `{"requests":{"cpu":"10m","memory":"128Mi"}}` | Default resources |
|
| resources | object | `{"requests":{"cpu":"10m","memory":"128Mi"}}` | Default resources |
|
||||||
|
|
||||||
|
@@ -10,7 +10,7 @@ existingSecretKey: cf-tunnel-token
|
|||||||
# -- Default image
|
# -- Default image
|
||||||
image:
|
image:
|
||||||
repository: cloudflare/cloudflared
|
repository: cloudflare/cloudflared
|
||||||
tag: "2025.4.2"
|
tag: "2025.5.0"
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
# -- Default resources
|
# -- Default resources
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: postgres-cluster
|
name: postgres-cluster
|
||||||
version: 5.1.0
|
version: 6.0.4
|
||||||
description: Cloudnative-pg Cluster
|
description: Cloudnative-pg Cluster
|
||||||
keywords:
|
keywords:
|
||||||
- database
|
- database
|
||||||
@@ -11,4 +11,4 @@ sources:
|
|||||||
maintainers:
|
maintainers:
|
||||||
- name: alexlebens
|
- name: alexlebens
|
||||||
icon: https://avatars.githubusercontent.com/u/100373852?s=48&v=4
|
icon: https://avatars.githubusercontent.com/u/100373852?s=48&v=4
|
||||||
appVersion: v1.25.1
|
appVersion: v1.26.0
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
# postgres-cluster
|
# postgres-cluster
|
||||||
|
|
||||||
 
|
 
|
||||||
|
|
||||||
Cloudnative-pg Cluster
|
Cloudnative-pg Cluster
|
||||||
|
|
||||||
@@ -19,34 +19,39 @@ Cloudnative-pg Cluster
|
|||||||
|
|
||||||
| Key | Type | Default | Description |
|
| Key | Type | Default | Description |
|
||||||
|-----|------|---------|-------------|
|
|-----|------|---------|-------------|
|
||||||
| backup | object | `{"backupIndex":1,"backupName":"","data":{"compression":"snappy","encryption":"","jobs":1},"destinationPath":"","enabled":false,"endpointCA":{"create":false,"key":"","name":""},"endpointCredentials":"","endpointURL":"","retentionPolicy":"30d","scheduledBackups":[{"backupOwnerReference":"self","method":"barmanObjectStore","name":"daily-backup","schedule":"0 0 */3 * *"}],"wal":{"compression":"snappy","encryption":"","maxParallel":1}}` | Backup settings |
|
| backup | object | `{"enabled":false,"method":"objectStore","objectStore":[{"clusterName":"","data":{"compression":"snappy","encryption":"","jobs":1},"destinationPath":"","endpointCA":{"create":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.backupIndex | int | `1` | Generate external cluster name, creates: postgresql-{{ .Release.Name }}-cluster-backup-index-{{ .Values.backups.backupIndex }}" |
|
|
||||||
| backup.backupName | string | `""` | Override ame of the backup cluster in the object store, defaults to "cluster.name" |
|
|
||||||
| backup.data.compression | string | `"snappy"` | Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`. |
|
|
||||||
| backup.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.data.jobs | int | `1` | Number of data files to be archived or restored in parallel. |
|
|
||||||
| backup.destinationPath | string | `""` | Overrides the provider specific default path. Defaults to: S3: s3://<bucket><path> Azure: https://<storageAccount>.<serviceName>.core.windows.net/<containerName><path> Google: gs://<bucket><path> |
|
|
||||||
| backup.enabled | bool | `false` | You need to configure backups manually, so backups are disabled by default. |
|
| backup.enabled | bool | `false` | You need to configure backups manually, so backups are disabled by default. |
|
||||||
| backup.endpointCA | object | `{"create":false,"key":"","name":""}` | Specifies a CA bundle to validate a privately signed certificate. |
|
| backup.method | string | `"objectStore"` | Method to create backups, options currently are only objectStore |
|
||||||
| backup.endpointCA.create | bool | `false` | Creates a secret with the given value if true, otherwise uses an existing secret. |
|
| backup.objectStore | list | `[{"clusterName":"","data":{"compression":"snappy","encryption":"","jobs":1},"destinationPath":"","endpointCA":{"create":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.endpointCredentials | string | `""` | Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY |
|
| backup.objectStore[0].clusterName | string | `""` | Override the name of the backup cluster, defaults to "cluster.name" |
|
||||||
| backup.endpointURL | string | `""` | Overrides the provider specific default endpoint. Defaults to: S3: https://s3.<region>.amazonaws.com" |
|
| backup.objectStore[0].data.compression | string | `"snappy"` | Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`. |
|
||||||
| backup.retentionPolicy | string | `"30d"` | Retention policy for backups |
|
| 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://<bucket><path> Azure: https://<storageAccount>.<serviceName>.core.windows.net/<containerName><path> Google: gs://<bucket><path> |
|
||||||
|
| backup.objectStore[0].endpointCA | object | `{"create":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.<region>.amazonaws.com" |
|
||||||
|
| backup.objectStore[0].index | int | `1` | Generate external cluster name, uses: {{ .Release.Name }}-postgresql-<major version>-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 |
|
||||||
|
| backup.objectStore[0].retentionPolicy | string | `"30d"` | Retention policy for backups |
|
||||||
|
| backup.objectStore[0].wal | object | `{"compression":"snappy","encryption":"","maxParallel":1}` | Storage |
|
||||||
|
| backup.objectStore[0].wal.compression | string | `"snappy"` | WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`. |
|
||||||
|
| backup.objectStore[0].wal.encryption | string | `""` | Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`. |
|
||||||
|
| backup.objectStore[0].wal.maxParallel | int | `1` | Number of WAL files to be archived or restored in parallel. |
|
||||||
|
| backup.scheduledBackups[0].backupName | string | `"external"` | Name of backup target |
|
||||||
| backup.scheduledBackups[0].backupOwnerReference | string | `"self"` | Backup owner reference |
|
| backup.scheduledBackups[0].backupOwnerReference | string | `"self"` | Backup owner reference |
|
||||||
| backup.scheduledBackups[0].method | string | `"barmanObjectStore"` | Backup method, can be `barmanObjectStore` (default) or `volumeSnapshot` |
|
|
||||||
| backup.scheduledBackups[0].name | string | `"daily-backup"` | Scheduled backup name |
|
| backup.scheduledBackups[0].name | string | `"daily-backup"` | Scheduled backup name |
|
||||||
|
| backup.scheduledBackups[0].plugin | string | `"barman-cloud.cloudnative-pg.io"` | Backup method, can be `barman-cloud.cloudnative-pg.io` (default) |
|
||||||
| backup.scheduledBackups[0].schedule | string | `"0 0 */3 * *"` | Schedule in cron format |
|
| backup.scheduledBackups[0].schedule | string | `"0 0 */3 * *"` | Schedule in cron format |
|
||||||
| backup.wal | object | `{"compression":"snappy","encryption":"","maxParallel":1}` | Storage |
|
| backup.scheduledBackups[0].suspend | bool | `false` | Temporarily stop scheduled backups from running |
|
||||||
| backup.wal.compression | string | `"snappy"` | WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`. |
|
| cluster | object | `{"additionalLabels":{},"affinity":{"enablePodAntiAffinity":true,"topologyKey":"kubernetes.io/hostname"},"annotations":{},"certificates":{},"enablePDB":true,"enableSuperuserAccess":false,"image":{"repository":"ghcr.io/cloudnative-pg/postgresql","tag":"17.5-1-bullseye"},"imagePullPolicy":"IfNotPresent","imagePullSecrets":[],"initdb":{},"instances":3,"logLevel":"info","monitoring":{"customQueries":[],"customQueriesSecret":[],"disableDefaultQueries":false,"enabled":false,"podMonitor":{"enabled":true,"metricRelabelings":[],"relabelings":[]},"prometheusRule":{"enabled":false,"excludeRules":[]}},"postgresGID":-1,"postgresUID":-1,"postgresql":{"ldap":{},"parameters":{"hot_standby_feedback":"on","max_slot_wal_keep_size":"2000MB","shared_buffers":"128MB"},"pg_hba":[],"pg_ident":[],"shared_preload_libraries":[],"synchronous":{}},"primaryUpdateMethod":"switchover","primaryUpdateStrategy":"unsupervised","priorityClassName":"","resources":{"limits":{"hugepages-2Mi":"256Mi"},"requests":{"cpu":"100m","memory":"256Mi"}},"roles":[],"serviceAccountTemplate":{},"services":{},"storage":{"size":"10Gi","storageClass":""},"superuserSecret":"","walStorage":{"enabled":true,"size":"2Gi","storageClass":""}}` | Cluster settings |
|
||||||
| backup.wal.encryption | string | `""` | Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`. |
|
|
||||||
| backup.wal.maxParallel | int | `1` | Number of WAL files to be archived or restored in parallel. |
|
|
||||||
| cluster | object | `{"additionalLabels":{},"affinity":{"enablePodAntiAffinity":true,"topologyKey":"kubernetes.io/hostname"},"annotations":{},"certificates":{},"enablePDB":true,"enableSuperuserAccess":false,"image":{"repository":"ghcr.io/cloudnative-pg/postgresql","tag":"17.5-1-bullseye"},"imageCatalogRef":{},"imagePullPolicy":"IfNotPresent","imagePullSecrets":[],"initdb":{},"instances":3,"logLevel":"info","monitoring":{"customQueries":[],"customQueriesSecret":[],"disableDefaultQueries":false,"enabled":false,"podMonitor":{"enabled":true,"metricRelabelings":[],"relabelings":[]},"prometheusRule":{"enabled":false,"excludeRules":[]}},"postgresGID":-1,"postgresUID":-1,"postgresql":{"ldap":{},"parameters":{"hot_standby_feedback":"on","max_slot_wal_keep_size":"2000MB","shared_buffers":"128MB"},"pg_hba":[],"pg_ident":[],"shared_preload_libraries":[],"synchronous":{}},"primaryUpdateMethod":"switchover","primaryUpdateStrategy":"unsupervised","priorityClassName":"","resources":{"limits":{"hugepages-2Mi":"256Mi"},"requests":{"cpu":"100m","memory":"256Mi"}},"roles":[],"serviceAccountTemplate":{},"services":{},"storage":{"size":"10Gi","storageClass":""},"superuserSecret":"","walStorage":{"enabled":true,"size":"2Gi","storageClass":""}}` | Cluster settings |
|
|
||||||
| cluster.affinity | object | `{"enablePodAntiAffinity":true,"topologyKey":"kubernetes.io/hostname"}` | Affinity/Anti-affinity rules for Pods. See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-AffinityConfiguration |
|
| cluster.affinity | object | `{"enablePodAntiAffinity":true,"topologyKey":"kubernetes.io/hostname"}` | Affinity/Anti-affinity rules for Pods. See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-AffinityConfiguration |
|
||||||
| cluster.certificates | object | `{}` | The configuration for the CA and related certificates. See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-CertificatesConfiguration |
|
| cluster.certificates | object | `{}` | The configuration for the CA and related certificates. See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-CertificatesConfiguration |
|
||||||
| cluster.enablePDB | bool | `true` | Allow to disable PDB, mainly useful for upgrade of single-instance clusters or development purposes See: https://cloudnative-pg.io/documentation/current/kubernetes_upgrade/#pod-disruption-budgets |
|
| cluster.enablePDB | bool | `true` | Allow to disable PDB, mainly useful for upgrade of single-instance clusters or development purposes See: https://cloudnative-pg.io/documentation/current/kubernetes_upgrade/#pod-disruption-budgets |
|
||||||
| cluster.enableSuperuserAccess | bool | `false` | When this option is enabled, the operator will use the SuperuserSecret to update the postgres user password. If the secret is not present, the operator will automatically create one. When this option is disabled, the operator will ignore the SuperuserSecret content, delete it when automatically created, and then blank the password of the postgres user by setting it to NULL. |
|
| cluster.enableSuperuserAccess | bool | `false` | When this option is enabled, the operator will use the SuperuserSecret to update the postgres user password. If the secret is not present, the operator will automatically create one. When this option is disabled, the operator will ignore the SuperuserSecret content, delete it when automatically created, and then blank the password of the postgres user by setting it to NULL. |
|
||||||
| cluster.image | object | `{"repository":"ghcr.io/cloudnative-pg/postgresql","tag":"17.5-1-bullseye"}` | Default image |
|
| cluster.image | object | `{"repository":"ghcr.io/cloudnative-pg/postgresql","tag":"17.5-1-bullseye"}` | Default image |
|
||||||
| cluster.imageCatalogRef | object | `{}` | Reference to `ImageCatalog` of `ClusterImageCatalog`, if specified takes precedence over `cluster.imageName` |
|
|
||||||
| cluster.imagePullPolicy | string | `"IfNotPresent"` | Image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images |
|
| cluster.imagePullPolicy | string | `"IfNotPresent"` | Image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images |
|
||||||
| cluster.imagePullSecrets | list | `[]` | The list of pull secrets to be used to pull the images. See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-LocalObjectReference |
|
| cluster.imagePullSecrets | list | `[]` | The list of pull secrets to be used to pull the images. See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-LocalObjectReference |
|
||||||
| cluster.initdb | object | `{}` | Bootstrap is the configuration of the bootstrap process when initdb is used. See: https://cloudnative-pg.io/documentation/current/bootstrap/ See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-bootstrapinitdb |
|
| cluster.initdb | object | `{}` | Bootstrap is the configuration of the bootstrap process when initdb is used. See: https://cloudnative-pg.io/documentation/current/bootstrap/ See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-bootstrapinitdb |
|
||||||
@@ -76,13 +81,11 @@ Cloudnative-pg Cluster
|
|||||||
| cluster.serviceAccountTemplate | object | `{}` | Configure the metadata of the generated service account |
|
| cluster.serviceAccountTemplate | object | `{}` | Configure the metadata of the generated service account |
|
||||||
| cluster.services | object | `{}` | Customization of service definitions. Please refer to https://cloudnative-pg.io/documentation/current/service_management/ |
|
| cluster.services | object | `{}` | Customization of service definitions. Please refer to https://cloudnative-pg.io/documentation/current/service_management/ |
|
||||||
| cluster.storage | object | `{"size":"10Gi","storageClass":""}` | Default storage size |
|
| cluster.storage | object | `{"size":"10Gi","storageClass":""}` | Default storage size |
|
||||||
| imageCatalog.create | bool | `false` | Whether to provision an image catalog. If imageCatalog.images is empty this option will be ignored. |
|
|
||||||
| imageCatalog.images | list | `[]` | List of images to be provisioned in an image catalog. |
|
|
||||||
| mode | string | `"standalone"` | Cluster mode of operation. Available modes: * `standalone` - Default mode. Creates new or updates an existing CNPG cluster. * `recovery` - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup |
|
| mode | string | `"standalone"` | Cluster mode of operation. Available modes: * `standalone` - Default mode. Creates new or updates an existing CNPG cluster. * `recovery` - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup |
|
||||||
| nameOverride | string | `""` | Override the name of the cluster |
|
| nameOverride | string | `""` | Override the name of the cluster |
|
||||||
| namespaceOverride | string | `""` | Override the namespace of the chart |
|
| namespaceOverride | string | `""` | Override the namespace of the chart |
|
||||||
| poolers | list | `[]` | List of PgBouncer poolers |
|
| poolers | list | `[]` | List of PgBouncer poolers |
|
||||||
| recovery | object | `{"backup":{"backupName":"","database":"app","owner":"","pitrTarget":{"time":""}},"import":{"databases":[],"pgDumpExtraOptions":[],"pgRestoreExtraOptions":[],"postImportApplicationSQL":[],"roles":[],"schemaOnly":false,"source":{"database":"app","host":"","passwordSecret":{"create":false,"key":"password","name":"","value":""},"port":5432,"sslCertSecret":{"key":"","name":""},"sslKeySecret":{"key":"","name":""},"sslMode":"verify-full","sslRootCertSecret":{"key":"","name":""},"username":"app"},"type":"microservice"},"method":"backup","objectStore":{"data":{"compression":"snappy","encryption":"","jobs":1},"database":"app","destinationPath":"","endpointCA":{"create":false,"key":"","name":""},"endpointCredentials":"","endpointURL":"","owner":"","pitrTarget":{"time":""},"recoveryIndex":1,"recoveryServerName":"","wal":{"compression":"snappy","encryption":"","maxParallel":1}},"pgBaseBackup":{"database":"app","owner":"","secret":"","source":{"database":"app","host":"","passwordSecret":{"create":false,"key":"password","name":"","value":""},"port":5432,"sslCertSecret":{"key":"","name":""},"sslKeySecret":{"key":"","name":""},"sslMode":"verify-full","sslRootCertSecret":{"key":"","name":""},"username":""}}}` | Recovery settings when booting cluster from external cluster |
|
| recovery | object | `{"backup":{"backupName":"","database":"app","owner":"","pitrTarget":{"time":""}},"import":{"databases":[],"pgDumpExtraOptions":[],"pgRestoreExtraOptions":[],"postImportApplicationSQL":[],"roles":[],"schemaOnly":false,"source":{"database":"app","host":"","passwordSecret":{"create":false,"key":"password","name":"","value":""},"port":5432,"sslCertSecret":{"key":"","name":""},"sslKeySecret":{"key":"","name":""},"sslMode":"verify-full","sslRootCertSecret":{"key":"","name":""},"username":"app"},"type":"microservice"},"method":"backup","objectStore":{"clusterName":"","data":{"compression":"snappy","encryption":"","jobs":1},"database":"app","destinationPath":"","endpointCA":{"create":false,"key":"","name":""},"endpointCredentials":"","endpointURL":"","index":1,"name":"recovery","owner":"","pitrTarget":{"time":""},"wal":{"compression":"snappy","encryption":"","maxParallel":1}},"pgBaseBackup":{"database":"app","owner":"","secret":"","source":{"database":"app","host":"","passwordSecret":{"create":false,"key":"password","name":"","value":""},"port":5432,"sslCertSecret":{"key":"","name":""},"sslKeySecret":{"key":"","name":""},"sslMode":"verify-full","sslRootCertSecret":{"key":"","name":""},"username":""}}}` | Recovery settings when booting cluster from external cluster |
|
||||||
| recovery.backup.backupName | string | `""` | Name of the backup to recover from. |
|
| recovery.backup.backupName | string | `""` | Name of the backup to recover from. |
|
||||||
| recovery.backup.database | string | `"app"` | Name of the database used by the application. Default: `app`. |
|
| recovery.backup.database | string | `"app"` | Name of the database used by the application. Default: `app`. |
|
||||||
| recovery.backup.owner | string | `""` | Name of the owner of the database in the instance to be used by applications. Defaults to the value of the `database` key. |
|
| recovery.backup.owner | string | `""` | Name of the owner of the database in the instance to be used by applications. Defaults to the value of the `database` key. |
|
||||||
@@ -101,6 +104,7 @@ Cloudnative-pg Cluster
|
|||||||
| recovery.import.source.passwordSecret.value | string | `""` | The password value to use when creating the secret |
|
| recovery.import.source.passwordSecret.value | string | `""` | The password value to use when creating the secret |
|
||||||
| recovery.import.type | string | `"microservice"` | One of `microservice` or `monolith.` See: https://cloudnative-pg.io/documentation/current/database_import/#how-it-works |
|
| recovery.import.type | string | `"microservice"` | One of `microservice` or `monolith.` See: https://cloudnative-pg.io/documentation/current/database_import/#how-it-works |
|
||||||
| recovery.method | string | `"backup"` | Available recovery methods: * `backup` - Recovers a CNPG cluster from a CNPG backup (PITR supported) Needs to be on the same cluster in the same namespace. * `objectStore` - Recovers a CNPG cluster from a barman object store (PITR supported). * `pgBaseBackup` - Recovers a CNPG cluster viaa streaming replication protocol. Useful if you want to migrate databases to CloudNativePG, even from outside Kubernetes. * `import` - Import one or more databases from an existing Postgres cluster. |
|
| recovery.method | string | `"backup"` | Available recovery methods: * `backup` - Recovers a CNPG cluster from a CNPG backup (PITR supported) Needs to be on the same cluster in the same namespace. * `objectStore` - Recovers a CNPG cluster from a barman object store (PITR supported). * `pgBaseBackup` - Recovers a CNPG cluster viaa streaming replication protocol. Useful if you want to migrate databases to CloudNativePG, even from outside Kubernetes. * `import` - Import one or more databases from an existing Postgres cluster. |
|
||||||
|
| recovery.objectStore.clusterName | string | `""` | Override the name of the backup cluster, defaults to "cluster.name" |
|
||||||
| recovery.objectStore.data.compression | string | `"snappy"` | Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`. |
|
| recovery.objectStore.data.compression | string | `"snappy"` | Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`. |
|
||||||
| recovery.objectStore.data.encryption | string | `""` | Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`. |
|
| recovery.objectStore.data.encryption | string | `""` | Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`. |
|
||||||
| recovery.objectStore.data.jobs | int | `1` | Number of data files to be archived or restored in parallel. |
|
| recovery.objectStore.data.jobs | int | `1` | Number of data files to be archived or restored in parallel. |
|
||||||
@@ -110,11 +114,11 @@ Cloudnative-pg Cluster
|
|||||||
| recovery.objectStore.endpointCA.create | bool | `false` | Creates a secret with the given value if true, otherwise uses an existing secret. |
|
| recovery.objectStore.endpointCA.create | bool | `false` | Creates a secret with the given value if true, otherwise uses an existing secret. |
|
||||||
| recovery.objectStore.endpointCredentials | string | `""` | Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY |
|
| recovery.objectStore.endpointCredentials | string | `""` | Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY |
|
||||||
| recovery.objectStore.endpointURL | string | `""` | Overrides the provider specific default endpoint. Defaults to: S3: https://s3.<region>.amazonaws.com" Leave empty if using the default S3 endpoint |
|
| recovery.objectStore.endpointURL | string | `""` | Overrides the provider specific default endpoint. Defaults to: S3: https://s3.<region>.amazonaws.com" Leave empty if using the default S3 endpoint |
|
||||||
|
| recovery.objectStore.index | int | `1` | Generate external cluster name, uses: {{ .Release.Name }}-postgresql-<major version>-backup-index-{{ index }} |
|
||||||
|
| recovery.objectStore.name | string | `"recovery"` | Object store backup name |
|
||||||
| recovery.objectStore.owner | string | `""` | Name of the owner of the database in the instance to be used by applications. Defaults to the value of the `database` key. |
|
| recovery.objectStore.owner | string | `""` | Name of the owner of the database in the instance to be used by applications. Defaults to the value of the `database` key. |
|
||||||
| recovery.objectStore.pitrTarget | object | `{"time":""}` | Point in time recovery target. Specify one of the following: |
|
| recovery.objectStore.pitrTarget | object | `{"time":""}` | Point in time recovery target. Specify one of the following: |
|
||||||
| recovery.objectStore.pitrTarget.time | string | `""` | Time in RFC3339 format |
|
| recovery.objectStore.pitrTarget.time | string | `""` | Time in RFC3339 format |
|
||||||
| recovery.objectStore.recoveryIndex | int | `1` | Generate external cluster name, uses: {{ .Release.Name }}postgresql-<major version>-cluster-backup-index-{{ .Values.recovery.recoveryIndex }} |
|
|
||||||
| recovery.objectStore.recoveryServerName | string | `""` | Override name of the recovery cluster in the object store, defaults to "cluster.name" |
|
|
||||||
| recovery.objectStore.wal | object | `{"compression":"snappy","encryption":"","maxParallel":1}` | Storage |
|
| recovery.objectStore.wal | object | `{"compression":"snappy","encryption":"","maxParallel":1}` | Storage |
|
||||||
| recovery.objectStore.wal.compression | string | `"snappy"` | WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`. |
|
| recovery.objectStore.wal.compression | string | `"snappy"` | WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`. |
|
||||||
| recovery.objectStore.wal.encryption | string | `""` | Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`. |
|
| recovery.objectStore.wal.encryption | string | `""` | Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`. |
|
||||||
@@ -127,10 +131,7 @@ Cloudnative-pg Cluster
|
|||||||
| recovery.pgBaseBackup.source.passwordSecret.key | string | `"password"` | The key in the secret containing the password |
|
| recovery.pgBaseBackup.source.passwordSecret.key | string | `"password"` | The key in the secret containing the password |
|
||||||
| recovery.pgBaseBackup.source.passwordSecret.name | string | `""` | Name of the secret containing the password |
|
| recovery.pgBaseBackup.source.passwordSecret.name | string | `""` | Name of the secret containing the password |
|
||||||
| recovery.pgBaseBackup.source.passwordSecret.value | string | `""` | The password value to use when creating the secret |
|
| recovery.pgBaseBackup.source.passwordSecret.value | string | `""` | The password value to use when creating the secret |
|
||||||
| type | string | `"postgresql"` | Type of the CNPG database. Available types: * `postgresql` * `postgis` * `timescaledb` * `tensorchord` |
|
| type | string | `"postgresql"` | Type of the CNPG database. Available types: * `postgresql` * `tensorchord` |
|
||||||
| version.postgis | string | `"3.5"` | If using PostGIS, specify the version |
|
|
||||||
| version.postgresql | string | `"17"` | PostgreSQL major version to use |
|
|
||||||
| version.timescaledb | string | `"2.15"` | If using TimescaleDB, specify the version |
|
|
||||||
|
|
||||||
----------------------------------------------
|
----------------------------------------------
|
||||||
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
|
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
|
||||||
|
@@ -1,34 +0,0 @@
|
|||||||
{{- define "cluster.backup" -}}
|
|
||||||
{{- if .Values.backup.enabled }}
|
|
||||||
backup:
|
|
||||||
retentionPolicy: {{ .Values.backup.retentionPolicy }}
|
|
||||||
barmanObjectStore:
|
|
||||||
destinationPath: {{ .Values.backup.destinationPath }}
|
|
||||||
endpointURL: {{ .Values.backup.endpointURL }}
|
|
||||||
{{- if .Values.backup.endpointCA.name }}
|
|
||||||
endpointCA:
|
|
||||||
name: {{ .Values.backup.endpointCA.name }}
|
|
||||||
key: {{ .Values.backup.endpointCA.key }}
|
|
||||||
{{- end }}
|
|
||||||
serverName: "{{ include "cluster.backupName" . }}-backup-{{ .Values.backup.backupIndex }}"
|
|
||||||
wal:
|
|
||||||
compression: {{ .Values.backup.wal.compression }}
|
|
||||||
{{- with .Values.backup.wal.encryption}}
|
|
||||||
encryption: {{ . }}
|
|
||||||
{{- end }}
|
|
||||||
maxParallel: {{ .Values.backup.wal.maxParallel }}
|
|
||||||
data:
|
|
||||||
compression: {{ .Values.backup.data.compression }}
|
|
||||||
{{- with .Values.backup.data.encryption }}
|
|
||||||
encryption: {{ . }}
|
|
||||||
{{- end }}
|
|
||||||
jobs: {{ .Values.backup.data.jobs }}
|
|
||||||
s3Credentials:
|
|
||||||
accessKeyId:
|
|
||||||
name: {{ include "cluster.backupCredentials" . }}
|
|
||||||
key: ACCESS_KEY_ID
|
|
||||||
secretAccessKey:
|
|
||||||
name: {{ include "cluster.backupCredentials" . }}
|
|
||||||
key: ACCESS_SECRET_KEY
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
@@ -14,16 +14,9 @@ bootstrap:
|
|||||||
{{- if eq .Values.type "tensorchord" }}
|
{{- if eq .Values.type "tensorchord" }}
|
||||||
dataChecksums: true
|
dataChecksums: true
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if or (eq .Values.type "postgis") (eq .Values.type "timescaledb") (eq .Values.type "tensorchord") (.Values.cluster.initdb.postInitApplicationSQL) }}
|
{{- if or (eq .Values.type "tensorchord") (.Values.cluster.initdb.postInitApplicationSQL) }}
|
||||||
postInitApplicationSQL:
|
postInitApplicationSQL:
|
||||||
{{- if eq .Values.type "postgis" }}
|
{{- if eq .Values.type "tensorchord" }}
|
||||||
- CREATE EXTENSION IF NOT EXISTS postgis;
|
|
||||||
- CREATE EXTENSION IF NOT EXISTS postgis_topology;
|
|
||||||
- CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;
|
|
||||||
- CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder;
|
|
||||||
{{- else if eq .Values.type "timescaledb" }}
|
|
||||||
- CREATE EXTENSION IF NOT EXISTS timescaledb;
|
|
||||||
{{- else if eq .Values.type "tensorchord" }}
|
|
||||||
- ALTER SYSTEM SET search_path TO "$user", public, vectors;
|
- ALTER SYSTEM SET search_path TO "$user", public, vectors;
|
||||||
- SET search_path TO "$user", public, vectors;
|
- SET search_path TO "$user", public, vectors;
|
||||||
- CREATE EXTENSION IF NOT EXISTS "vectors";
|
- CREATE EXTENSION IF NOT EXISTS "vectors";
|
||||||
@@ -136,34 +129,11 @@ externalClusters:
|
|||||||
|
|
||||||
externalClusters:
|
externalClusters:
|
||||||
- name: {{ include "cluster.recoveryServerName" . }}
|
- name: {{ include "cluster.recoveryServerName" . }}
|
||||||
barmanObjectStore:
|
plugin:
|
||||||
serverName: {{ include "cluster.recoveryServerName" . }}
|
name: barman-cloud.cloudnative-pg.io
|
||||||
endpointURL: {{ .Values.recovery.objectStore.endpointURL }}
|
parameters:
|
||||||
destinationPath: {{ .Values.recovery.objectStore.destinationPath }}
|
barmanObjectName: "{{ include "cluster.name" . }}-{{ .Values.recovery.objectStore.name }}"
|
||||||
{{- if .Values.recovery.objectStore.endpointCA.name }}
|
serverName: {{ include "cluster.recoveryServerName" . }}
|
||||||
endpointCA:
|
|
||||||
name: {{ .Values.recovery.objectStore.endpointCA.name }}
|
|
||||||
key: {{ .Values.recovery.objectStore.endpointCA.key }}
|
|
||||||
{{- end }}
|
|
||||||
s3Credentials:
|
|
||||||
accessKeyId:
|
|
||||||
name: {{ include "cluster.recoveryCredentials" . }}
|
|
||||||
key: ACCESS_KEY_ID
|
|
||||||
secretAccessKey:
|
|
||||||
name: {{ include "cluster.recoveryCredentials" . }}
|
|
||||||
key: ACCESS_SECRET_KEY
|
|
||||||
wal:
|
|
||||||
compression: {{ .Values.recovery.objectStore.wal.compression }}
|
|
||||||
{{- with .Values.recovery.objectStore.wal.encryption}}
|
|
||||||
encryption: {{ . }}
|
|
||||||
{{- end }}
|
|
||||||
maxParallel: {{ .Values.recovery.objectStore.wal.maxParallel }}
|
|
||||||
data:
|
|
||||||
compression: {{ .Values.recovery.objectStore.data.compression }}
|
|
||||||
{{- with .Values.recovery.objectStore.data.encryption }}
|
|
||||||
encryption: {{ . }}
|
|
||||||
{{- end }}
|
|
||||||
jobs: {{ .Values.recovery.objectStore.data.jobs }}
|
|
||||||
|
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{ fail "Invalid recovery mode!" }}
|
{{ fail "Invalid recovery mode!" }}
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
Expand the name of the chart.
|
Expand the name of the chart.
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "cluster.name" -}}
|
{{- define "cluster.name" -}}
|
||||||
{{- if .Values.nameOverride }}
|
{{- if not (empty .Values.nameOverride ) }}
|
||||||
{{- .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
{{- .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- printf "%s-postgresql-%s" .Release.Name ((semver .Values.cluster.image.tag).Major | toString) | trunc 63 | trimSuffix "-" -}}
|
{{- printf "%s-postgresql-%s" .Release.Name ((semver .Values.cluster.image.tag).Major | toString) | trunc 63 | trimSuffix "-" -}}
|
||||||
@@ -23,7 +23,7 @@ Common labels
|
|||||||
helm.sh/chart: {{ include "cluster.chart" $ }}
|
helm.sh/chart: {{ include "cluster.chart" $ }}
|
||||||
{{ include "cluster.selectorLabels" $ }}
|
{{ include "cluster.selectorLabels" $ }}
|
||||||
{{- if .Chart.AppVersion }}
|
{{- if .Chart.AppVersion }}
|
||||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
app.kubernetes.io/version: {{ .Chart.Version | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
{{- with .Values.cluster.additionalLabels }}
|
{{- with .Values.cluster.additionalLabels }}
|
||||||
@@ -37,7 +37,7 @@ Selector labels
|
|||||||
{{- define "cluster.selectorLabels" -}}
|
{{- define "cluster.selectorLabels" -}}
|
||||||
app.kubernetes.io/name: {{ include "cluster.name" $ }}
|
app.kubernetes.io/name: {{ include "cluster.name" $ }}
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
app.kubernetes.io/part-of: cloudnative-pg
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
@@ -51,83 +51,12 @@ Allow the release namespace to be overridden for multi-namespace deployments in
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
|
||||||
Whether we need to use TimescaleDB defaults
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.useTimescaleDBDefaults" -}}
|
|
||||||
{{ and (eq .Values.type "timescaledb") .Values.imageCatalog.create (empty .Values.cluster.imageCatalogRef.name) (empty .Values.imageCatalog.images) (empty .Values.cluster.imageName) }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Cluster Image Name
|
|
||||||
If a custom imageName is available, use it, otherwise use the defaults based on the .Values.type
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.imageName" -}}
|
|
||||||
{{- if .Values.cluster.image.repository -}}
|
|
||||||
{{- printf "%s:%s" .Values.cluster.image.repository .Values.cluster.image.tag -}}
|
|
||||||
{{- else if eq .Values.type "postgresql" -}}
|
|
||||||
{{- printf "ghcr.io/cloudnative-pg/postgresql:%s" .Values.version.postgresql -}}
|
|
||||||
{{- else if eq .Values.type "postgis" -}}
|
|
||||||
{{- printf "ghcr.io/cloudnative-pg/postgis:%s-%s" .Values.version.postgresql .Values.version.postgis -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{ fail "Invalid cluster type!" }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Cluster Image
|
|
||||||
If imageCatalogRef defined, use it, otherwise calculate ordinary imageName.
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.image" }}
|
|
||||||
{{- if .Values.cluster.imageCatalogRef.name }}
|
|
||||||
imageCatalogRef:
|
|
||||||
apiGroup: postgresql.cnpg.io
|
|
||||||
{{- toYaml .Values.cluster.imageCatalogRef | nindent 2 }}
|
|
||||||
major: {{ include "cluster.postgresqlMajor" . }}
|
|
||||||
{{- else if and .Values.imageCatalog.create (not (empty .Values.imageCatalog.images )) }}
|
|
||||||
imageCatalogRef:
|
|
||||||
apiGroup: postgresql.cnpg.io
|
|
||||||
kind: ImageCatalog
|
|
||||||
name: {{ include "cluster.name" . }}
|
|
||||||
major: {{ include "cluster.postgresqlMajor" . }}
|
|
||||||
{{- else if eq (include "cluster.useTimescaleDBDefaults" .) "true" -}}
|
|
||||||
imageCatalogRef:
|
|
||||||
apiGroup: postgresql.cnpg.io
|
|
||||||
kind: ImageCatalog
|
|
||||||
name: {{ include "cluster.name" . }}-timescaledb-ha
|
|
||||||
major: {{ include "cluster.postgresqlMajor" . }}
|
|
||||||
{{- else }}
|
|
||||||
imageName: {{ include "cluster.imageName" . }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Generate name for object store credentials
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.recoveryCredentials" -}}
|
|
||||||
{{- if .Values.recovery.endpointCredentials -}}
|
|
||||||
{{- .Values.recovery.endpointCredentials -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- printf "%s-backup-secret" (include "cluster.name" .) | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- define "cluster.backupCredentials" -}}
|
|
||||||
{{- if .Values.backup.endpointCredentials -}}
|
|
||||||
{{- .Values.backup.endpointCredentials -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- printf "%s-backup-secret" (include "cluster.name" .) | trunc 63 | trimSuffix "-" -}}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Postgres UID
|
Postgres UID
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "cluster.postgresUID" -}}
|
{{- define "cluster.postgresUID" -}}
|
||||||
{{- if ge (int .Values.cluster.postgresUID) 0 -}}
|
{{- if ge (int .Values.cluster.postgresUID) 0 -}}
|
||||||
{{- .Values.cluster.postgresUID }}
|
{{- .Values.cluster.postgresUID }}
|
||||||
{{- else if and (eq (include "cluster.useTimescaleDBDefaults" .) "true") (eq .Values.type "timescaledb") -}}
|
|
||||||
{{- 1000 -}}
|
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- 26 -}}
|
{{- 26 -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -139,24 +68,11 @@ Postgres GID
|
|||||||
{{- define "cluster.postgresGID" -}}
|
{{- define "cluster.postgresGID" -}}
|
||||||
{{- if ge (int .Values.cluster.postgresGID) 0 -}}
|
{{- if ge (int .Values.cluster.postgresGID) 0 -}}
|
||||||
{{- .Values.cluster.postgresGID }}
|
{{- .Values.cluster.postgresGID }}
|
||||||
{{- else if and (eq (include "cluster.useTimescaleDBDefaults" .) "true") (eq .Values.type "timescaledb") -}}
|
|
||||||
{{- 1000 -}}
|
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- 26 -}}
|
{{- 26 -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
|
||||||
Generate backup server name
|
|
||||||
*/}}
|
|
||||||
{{- define "cluster.backupName" -}}
|
|
||||||
{{- if .Values.backup.backupName -}}
|
|
||||||
{{- .Values.backup.backupName -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{ include "cluster.name" . }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Generate recovery server name
|
Generate recovery server name
|
||||||
*/}}
|
*/}}
|
||||||
@@ -167,3 +83,14 @@ Generate recovery server name
|
|||||||
{{- printf "%s-backup-%s" (include "cluster.name" .) (toString .Values.recovery.recoveryIndex) | trunc 63 | trimSuffix "-" -}}
|
{{- printf "%s-backup-%s" (include "cluster.name" .) (toString .Values.recovery.recoveryIndex) | trunc 63 | trimSuffix "-" -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Generate name for recovery object store credentials
|
||||||
|
*/}}
|
||||||
|
{{- define "cluster.recoveryCredentials" -}}
|
||||||
|
{{- if .Values.recovery.endpointCredentials -}}
|
||||||
|
{{- .Values.recovery.endpointCredentials -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- printf "%s-backup-secret" (include "cluster.name" .) | trunc 63 | trimSuffix "-" -}}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
@@ -11,7 +11,6 @@ metadata:
|
|||||||
{{- include "cluster.labels" . | nindent 4 }}
|
{{- include "cluster.labels" . | nindent 4 }}
|
||||||
spec:
|
spec:
|
||||||
instances: {{ .Values.cluster.instances }}
|
instances: {{ .Values.cluster.instances }}
|
||||||
{{- include "cluster.image" . | nindent 2 }}
|
|
||||||
imageName: "{{ .Values.cluster.image.repository }}:{{ .Values.cluster.image.tag }}"
|
imageName: "{{ .Values.cluster.image.repository }}:{{ .Values.cluster.image.tag }}"
|
||||||
imagePullPolicy: {{ .Values.cluster.imagePullPolicy }}
|
imagePullPolicy: {{ .Values.cluster.imagePullPolicy }}
|
||||||
{{- with .Values.cluster.imagePullSecrets }}
|
{{- with .Values.cluster.imagePullSecrets }}
|
||||||
@@ -20,6 +19,23 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
postgresUID: {{ include "cluster.postgresUID" . }}
|
postgresUID: {{ include "cluster.postgresUID" . }}
|
||||||
postgresGID: {{ include "cluster.postgresGID" . }}
|
postgresGID: {{ include "cluster.postgresGID" . }}
|
||||||
|
{{ if or (and (.Values.backup.enabled) (eq .Values.backup.method "objectStore")) (eq .Values.recovery.method "objectStore") }}
|
||||||
|
plugins:
|
||||||
|
{{ end }}
|
||||||
|
{{ if and (.Values.backup.enabled) (eq .Values.backup.method "objectStore") }}
|
||||||
|
{{ $context := . -}}
|
||||||
|
{{ range .Values.backup.objectStore -}}
|
||||||
|
- name: barman-cloud.cloudnative-pg.io
|
||||||
|
isWALArchiver: {{ $context.isWALArchiver }}
|
||||||
|
parameters:
|
||||||
|
barmanObjectName: "{{ include "cluster.name" . }}-{{ $context.name }}-backup"
|
||||||
|
{{ end -}}
|
||||||
|
{{ end }}
|
||||||
|
{{ if eq .Values.recovery.method "objectStore" }}
|
||||||
|
- name: barman-cloud.cloudnative-pg.io
|
||||||
|
parameters:
|
||||||
|
barmanObjectName: "{{ include "cluster.name" . }}-{{ .Values.recovery.objectStore.name }}"
|
||||||
|
{{ end }}
|
||||||
storage:
|
storage:
|
||||||
size: {{ .Values.cluster.storage.size }}
|
size: {{ .Values.cluster.storage.size }}
|
||||||
{{- if not (empty .Values.cluster.storage.storageClass) }}
|
{{- if not (empty .Values.cluster.storage.storageClass) }}
|
||||||
@@ -59,11 +75,8 @@ spec:
|
|||||||
enablePDB: {{ .Values.cluster.enablePDB }}
|
enablePDB: {{ .Values.cluster.enablePDB }}
|
||||||
|
|
||||||
postgresql:
|
postgresql:
|
||||||
{{- if or (eq .Values.type "timescaledb") (eq .Values.type "tensorchord") (not (empty .Values.cluster.postgresql.shared_preload_libraries)) }}
|
{{- if or (eq .Values.type "tensorchord") (not (empty .Values.cluster.postgresql.shared_preload_libraries)) }}
|
||||||
shared_preload_libraries:
|
shared_preload_libraries:
|
||||||
{{- if eq .Values.type "timescaledb" }}
|
|
||||||
- timescaledb
|
|
||||||
{{- end }}
|
|
||||||
{{- if eq .Values.type "tensorchord" }}
|
{{- if eq .Values.type "tensorchord" }}
|
||||||
- vectors.so
|
- vectors.so
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@@ -137,4 +150,3 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{ include "cluster.bootstrap" . | nindent 2 }}
|
{{ include "cluster.bootstrap" . | nindent 2 }}
|
||||||
{{ include "cluster.backup" . | nindent 2 }}
|
|
||||||
|
@@ -1,15 +0,0 @@
|
|||||||
{{ if and .Values.imageCatalog.create (not (empty .Values.imageCatalog.images )) }}
|
|
||||||
apiVersion: postgresql.cnpg.io/v1
|
|
||||||
kind: ImageCatalog
|
|
||||||
metadata:
|
|
||||||
name: {{ include "cluster.name" $ }}-image-catalog
|
|
||||||
namespace: {{ include "cluster.namespace" $ }}
|
|
||||||
labels:
|
|
||||||
{{- include "cluster.labels" $ | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
images:
|
|
||||||
{{- range $image := .Values.imageCatalog.images }}
|
|
||||||
- image: {{ $image.image }}
|
|
||||||
major: {{ $image.major }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
95
charts/postgres-cluster/templates/object-store.yaml
Normal file
95
charts/postgres-cluster/templates/object-store.yaml
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
{{ if and (.Values.backup.enabled) (eq .Values.backup.method "objectStore") }}
|
||||||
|
{{ $context := . -}}
|
||||||
|
{{ range .Values.backup.objectStore -}}
|
||||||
|
---
|
||||||
|
apiVersion: barmancloud.cnpg.io/v1
|
||||||
|
kind: ObjectStore
|
||||||
|
metadata:
|
||||||
|
name: "{{ include "cluster.name" $context }}-{{ $context.name }}-backup"
|
||||||
|
namespace: {{ include "cluster.namespace" $context }}
|
||||||
|
labels:
|
||||||
|
{{- include "cluster.labels" $context | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
retentionPolicy: {{ $context.retentionPolicy }}
|
||||||
|
configuration:
|
||||||
|
destinationPath: {{ $context.destinationPath }}
|
||||||
|
endpointURL: {{ $context.endpointURL }}
|
||||||
|
{{- if $context.endpointCA.name }}
|
||||||
|
endpointCA:
|
||||||
|
name: {{ $context.endpointCA.name }}
|
||||||
|
key: {{ $context.endpointCA.key }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if $context.clusterName }}
|
||||||
|
serverName: "{{ $context.clusterName }}-backup-{{ $context.index }}"
|
||||||
|
{{- else }}
|
||||||
|
serverName: "{{ include "cluster.name" $context }}-backup-{{ $context.index }}"
|
||||||
|
{{- end }}
|
||||||
|
wal:
|
||||||
|
compression: {{ $context.wal.compression }}
|
||||||
|
{{- with $context.wal.encryption}}
|
||||||
|
encryption: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
maxParallel: {{ $context.wal.maxParallel }}
|
||||||
|
data:
|
||||||
|
compression: {{ $context.data.compression }}
|
||||||
|
{{- with $context.data.encryption }}
|
||||||
|
encryption: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
jobs: {{ $context.data.jobs }}
|
||||||
|
s3Credentials:
|
||||||
|
accessKeyId:
|
||||||
|
{{- if $context.endpointCredentials }}
|
||||||
|
name: {{ $context.endpointCredentials }}
|
||||||
|
{{- else }}
|
||||||
|
name: {{- printf "%s-backup-secret" (include "cluster.name" $context) | trunc 63 | trimSuffix "-" -}}
|
||||||
|
{{- end }}
|
||||||
|
key: ACCESS_KEY_ID
|
||||||
|
secretAccessKey:
|
||||||
|
{{- if $context.endpointCredentials }}
|
||||||
|
name: {{ $context.endpointCredentials }}
|
||||||
|
{{- else }}
|
||||||
|
name: {{- printf "%s-backup-secret" (include "cluster.name" $context) | trunc 63 | trimSuffix "-" -}}
|
||||||
|
{{- end }}
|
||||||
|
key: ACCESS_SECRET_KEY
|
||||||
|
{{ end -}}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if eq .Values.recovery.method "objectStore" }}
|
||||||
|
---
|
||||||
|
apiVersion: barmancloud.cnpg.io/v1
|
||||||
|
kind: ObjectStore
|
||||||
|
metadata:
|
||||||
|
name: "{{ include "cluster.name" . }}-{{ .Values.recovery.objectStore.name }}"
|
||||||
|
namespace: {{ include "cluster.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "cluster.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
configuration:
|
||||||
|
destinationPath: {{ .Values.recovery.objectStore.destinationPath }}
|
||||||
|
endpointURL: {{ .Values.recovery.objectStore.endpointURL }}
|
||||||
|
{{- if .Values.recovery.objectStore.endpointCA.name }}
|
||||||
|
endpointCA:
|
||||||
|
name: {{ .Values.recovery.objectStore.endpointCA.name }}
|
||||||
|
key: {{ .Values.recovery.objectStore.endpointCA.key }}
|
||||||
|
{{- end }}
|
||||||
|
serverName: {{ include "cluster.recoveryServerName" . }}
|
||||||
|
wal:
|
||||||
|
compression: {{ .Values.recovery.objectStore.wal.compression }}
|
||||||
|
{{- with .Values.recovery.objectStore.wal.encryption}}
|
||||||
|
encryption: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
maxParallel: {{ .Values.recovery.objectStore.wal.maxParallel }}
|
||||||
|
data:
|
||||||
|
compression: {{ .Values.recovery.objectStore.data.compression }}
|
||||||
|
{{- with .Values.recovery.objectStore.data.encryption }}
|
||||||
|
encryption: {{ . }}
|
||||||
|
{{- end }}
|
||||||
|
jobs: {{ .Values.recovery.objectStore.data.jobs }}
|
||||||
|
s3Credentials:
|
||||||
|
accessKeyId:
|
||||||
|
name: {{ include "cluster.recoveryCredentials" . }}
|
||||||
|
key: ACCESS_KEY_ID
|
||||||
|
secretAccessKey:
|
||||||
|
name: {{ include "cluster.recoveryCredentials" . }}
|
||||||
|
key: ACCESS_SECRET_KEY
|
||||||
|
{{ end }}
|
@@ -5,15 +5,21 @@
|
|||||||
apiVersion: postgresql.cnpg.io/v1
|
apiVersion: postgresql.cnpg.io/v1
|
||||||
kind: ScheduledBackup
|
kind: ScheduledBackup
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "cluster.name" $context }}-{{ .name }}-scheduled-backup
|
name: "{{ include "cluster.name" $context }}-{{ $context.name }}-scheduled-backup"
|
||||||
namespace: {{ include "cluster.namespace" $context }}
|
namespace: {{ include "cluster.namespace" $context }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "cluster.labels" $context | nindent 4 }}
|
{{- include "cluster.labels" $context | nindent 4 }}
|
||||||
spec:
|
spec:
|
||||||
immediate: true
|
immediate: true
|
||||||
schedule: {{ .schedule | quote }}
|
suspend: {{ $context.suspend }}
|
||||||
backupOwnerReference: {{ .backupOwnerReference }}
|
schedule: {{ $context.schedule | quote }}
|
||||||
|
backupOwnerReference: {{ $context.backupOwnerReference }}
|
||||||
cluster:
|
cluster:
|
||||||
name: {{ include "cluster.name" $context }}-cluster
|
name: {{ include "cluster.name" $context }}-cluster
|
||||||
|
method: plugin
|
||||||
|
pluginConfiguration:
|
||||||
|
name: {{ $context.plugin }}
|
||||||
|
parameters:
|
||||||
|
barmanObjectName: "{{ include "cluster.name" $context }}-{{ $context.backupName }}-backup"
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@@ -6,32 +6,9 @@ namespaceOverride: ""
|
|||||||
|
|
||||||
# -- Type of the CNPG database. Available types:
|
# -- Type of the CNPG database. Available types:
|
||||||
# * `postgresql`
|
# * `postgresql`
|
||||||
# * `postgis`
|
|
||||||
# * `timescaledb`
|
|
||||||
# * `tensorchord`
|
# * `tensorchord`
|
||||||
type: postgresql
|
type: postgresql
|
||||||
|
|
||||||
imageCatalog:
|
|
||||||
|
|
||||||
# -- Whether to provision an image catalog. If imageCatalog.images is empty this option will be ignored.
|
|
||||||
create: false
|
|
||||||
|
|
||||||
# -- List of images to be provisioned in an image catalog.
|
|
||||||
images: []
|
|
||||||
# - image: ghcr.io/your_repo/your_image:your_tag
|
|
||||||
# major: 16
|
|
||||||
|
|
||||||
version:
|
|
||||||
|
|
||||||
# -- PostgreSQL major version to use
|
|
||||||
postgresql: "17"
|
|
||||||
|
|
||||||
# -- If using TimescaleDB, specify the version
|
|
||||||
timescaledb: "2.15"
|
|
||||||
|
|
||||||
# -- If using PostGIS, specify the version
|
|
||||||
postgis: "3.5"
|
|
||||||
|
|
||||||
# -- Cluster mode of operation. Available modes:
|
# -- Cluster mode of operation. Available modes:
|
||||||
# * `standalone` - Default mode. Creates new or updates an existing CNPG cluster.
|
# * `standalone` - Default mode. Creates new or updates an existing CNPG cluster.
|
||||||
# * `recovery` - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup
|
# * `recovery` - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup
|
||||||
@@ -46,11 +23,6 @@ cluster:
|
|||||||
repository: ghcr.io/cloudnative-pg/postgresql
|
repository: ghcr.io/cloudnative-pg/postgresql
|
||||||
tag: "17.5-1-bullseye"
|
tag: "17.5-1-bullseye"
|
||||||
|
|
||||||
# -- Reference to `ImageCatalog` of `ClusterImageCatalog`, if specified takes precedence over `cluster.imageName`
|
|
||||||
imageCatalogRef: {}
|
|
||||||
# kind: ImageCatalog
|
|
||||||
# name: postgresql
|
|
||||||
|
|
||||||
# -- Image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Cannot be updated.
|
# -- Image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Cannot be updated.
|
||||||
# More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
|
# More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
@@ -287,10 +259,8 @@ recovery:
|
|||||||
# -- Name of the owner of the database in the instance to be used by applications. Defaults to the value of the `database` key.
|
# -- Name of the owner of the database in the instance to be used by applications. Defaults to the value of the `database` key.
|
||||||
owner: ""
|
owner: ""
|
||||||
|
|
||||||
# -- Overrides the provider specific default endpoint. Defaults to:
|
# -- Object store backup name
|
||||||
# S3: https://s3.<region>.amazonaws.com"
|
name: recovery
|
||||||
# Leave empty if using the default S3 endpoint
|
|
||||||
endpointURL: ""
|
|
||||||
|
|
||||||
# -- Overrides the provider specific default path. Defaults to:
|
# -- Overrides the provider specific default path. Defaults to:
|
||||||
# S3: s3://<bucket><path>
|
# S3: s3://<bucket><path>
|
||||||
@@ -298,6 +268,11 @@ recovery:
|
|||||||
# Google: gs://<bucket><path>
|
# Google: gs://<bucket><path>
|
||||||
destinationPath: ""
|
destinationPath: ""
|
||||||
|
|
||||||
|
# -- Overrides the provider specific default endpoint. Defaults to:
|
||||||
|
# S3: https://s3.<region>.amazonaws.com"
|
||||||
|
# Leave empty if using the default S3 endpoint
|
||||||
|
endpointURL: ""
|
||||||
|
|
||||||
# -- Specifies a CA bundle to validate a privately signed certificate.
|
# -- Specifies a CA bundle to validate a privately signed certificate.
|
||||||
endpointCA:
|
endpointCA:
|
||||||
|
|
||||||
@@ -306,6 +281,12 @@ recovery:
|
|||||||
name: ""
|
name: ""
|
||||||
key: ""
|
key: ""
|
||||||
|
|
||||||
|
# -- Generate external cluster name, uses: {{ .Release.Name }}-postgresql-<major version>-backup-index-{{ index }}
|
||||||
|
index: 1
|
||||||
|
|
||||||
|
# -- Override the name of the backup cluster, defaults to "cluster.name"
|
||||||
|
clusterName: ""
|
||||||
|
|
||||||
# -- Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY
|
# -- Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY
|
||||||
endpointCredentials: ""
|
endpointCredentials: ""
|
||||||
|
|
||||||
@@ -331,12 +312,6 @@ recovery:
|
|||||||
# -- Number of data files to be archived or restored in parallel.
|
# -- Number of data files to be archived or restored in parallel.
|
||||||
jobs: 1
|
jobs: 1
|
||||||
|
|
||||||
# -- Generate external cluster name, uses: {{ .Release.Name }}postgresql-<major version>-cluster-backup-index-{{ .Values.recovery.recoveryIndex }}
|
|
||||||
recoveryIndex: 1
|
|
||||||
|
|
||||||
# -- Override name of the recovery cluster in the object store, defaults to "cluster.name"
|
|
||||||
recoveryServerName: ""
|
|
||||||
|
|
||||||
# See https://cloudnative-pg.io/documentation/current/bootstrap/#bootstrap-from-a-live-cluster-pg_basebackup
|
# See https://cloudnative-pg.io/documentation/current/bootstrap/#bootstrap-from-a-live-cluster-pg_basebackup
|
||||||
pgBaseBackup:
|
pgBaseBackup:
|
||||||
|
|
||||||
@@ -445,47 +420,68 @@ backup:
|
|||||||
# -- You need to configure backups manually, so backups are disabled by default.
|
# -- You need to configure backups manually, so backups are disabled by default.
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
# -- Overrides the provider specific default endpoint. Defaults to:
|
# -- Method to create backups, options currently are only objectStore
|
||||||
# S3: https://s3.<region>.amazonaws.com"
|
method: objectStore
|
||||||
endpointURL: "" # Leave empty if using the default S3 endpoint
|
|
||||||
|
|
||||||
# -- Specifies a CA bundle to validate a privately signed certificate.
|
# -- Options for object store backups
|
||||||
endpointCA:
|
objectStore:
|
||||||
# -- Creates a secret with the given value if true, otherwise uses an existing secret.
|
-
|
||||||
create: false
|
# -- Object store backup name
|
||||||
name: ""
|
name: external
|
||||||
key: ""
|
|
||||||
|
|
||||||
# -- Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY
|
# -- Overrides the provider specific default path. Defaults to:
|
||||||
endpointCredentials: ""
|
# S3: s3://<bucket><path>
|
||||||
|
# Azure: https://<storageAccount>.<serviceName>.core.windows.net/<containerName><path>
|
||||||
|
# Google: gs://<bucket><path>
|
||||||
|
destinationPath: ""
|
||||||
|
|
||||||
# -- Overrides the provider specific default path. Defaults to:
|
# -- Overrides the provider specific default endpoint. Defaults to:
|
||||||
# S3: s3://<bucket><path>
|
# S3: https://s3.<region>.amazonaws.com"
|
||||||
# Azure: https://<storageAccount>.<serviceName>.core.windows.net/<containerName><path>
|
endpointURL: "" # Leave empty if using the default S3 endpoint
|
||||||
# Google: gs://<bucket><path>
|
|
||||||
destinationPath: ""
|
|
||||||
|
|
||||||
# -- Storage
|
# -- Specifies a CA bundle to validate a privately signed certificate.
|
||||||
wal:
|
endpointCA:
|
||||||
|
# -- Creates a secret with the given value if true, otherwise uses an existing secret.
|
||||||
|
create: false
|
||||||
|
name: ""
|
||||||
|
key: ""
|
||||||
|
|
||||||
# -- WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
# -- Generate external cluster name, uses: {{ .Release.Name }}-postgresql-<major version>-backup-index-{{ index }}
|
||||||
compression: snappy
|
index: 1
|
||||||
|
|
||||||
# -- Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
# -- Override the name of the backup cluster, defaults to "cluster.name"
|
||||||
encryption: ""
|
clusterName: ""
|
||||||
|
|
||||||
# -- Number of WAL files to be archived or restored in parallel.
|
# -- Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY
|
||||||
maxParallel: 1
|
endpointCredentials: ""
|
||||||
|
|
||||||
data:
|
# -- Retention policy for backups
|
||||||
# -- Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
retentionPolicy: "30d"
|
||||||
compression: snappy
|
|
||||||
|
|
||||||
# -- Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
# -- Specificies if this backup will do WALs
|
||||||
encryption: ""
|
isWALArchiver: true
|
||||||
|
|
||||||
# -- Number of data files to be archived or restored in parallel.
|
# -- Storage
|
||||||
jobs: 1
|
wal:
|
||||||
|
|
||||||
|
# -- WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
||||||
|
compression: snappy
|
||||||
|
|
||||||
|
# -- Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
||||||
|
encryption: ""
|
||||||
|
|
||||||
|
# -- Number of WAL files to be archived or restored in parallel.
|
||||||
|
maxParallel: 1
|
||||||
|
|
||||||
|
data:
|
||||||
|
# -- Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
|
||||||
|
compression: snappy
|
||||||
|
|
||||||
|
# -- Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`.
|
||||||
|
encryption: ""
|
||||||
|
|
||||||
|
# -- Number of data files to be archived or restored in parallel.
|
||||||
|
jobs: 1
|
||||||
|
|
||||||
scheduledBackups:
|
scheduledBackups:
|
||||||
-
|
-
|
||||||
@@ -495,20 +491,17 @@ backup:
|
|||||||
# -- Schedule in cron format
|
# -- Schedule in cron format
|
||||||
schedule: "0 0 */3 * *"
|
schedule: "0 0 */3 * *"
|
||||||
|
|
||||||
|
# -- Temporarily stop scheduled backups from running
|
||||||
|
suspend: false
|
||||||
|
|
||||||
# -- Backup owner reference
|
# -- Backup owner reference
|
||||||
backupOwnerReference: self
|
backupOwnerReference: self
|
||||||
|
|
||||||
# -- Backup method, can be `barmanObjectStore` (default) or `volumeSnapshot`
|
# -- Backup method, can be `barman-cloud.cloudnative-pg.io` (default)
|
||||||
method: barmanObjectStore
|
plugin: barman-cloud.cloudnative-pg.io
|
||||||
|
|
||||||
# -- Retention policy for backups
|
# -- Name of backup target
|
||||||
retentionPolicy: "30d"
|
backupName: external
|
||||||
|
|
||||||
# -- Generate external cluster name, creates: postgresql-{{ .Release.Name }}-cluster-backup-index-{{ .Values.backups.backupIndex }}"
|
|
||||||
backupIndex: 1
|
|
||||||
|
|
||||||
# -- Override ame of the backup cluster in the object store, defaults to "cluster.name"
|
|
||||||
backupName: ""
|
|
||||||
|
|
||||||
# -- List of PgBouncer poolers
|
# -- List of PgBouncer poolers
|
||||||
poolers: []
|
poolers: []
|
||||||
|
Reference in New Issue
Block a user