diff --git a/incubator/patroni/Chart.yaml b/incubator/patroni/Chart.yaml index 6dce71d657..8945260ea7 100644 --- a/incubator/patroni/Chart.yaml +++ b/incubator/patroni/Chart.yaml @@ -1,7 +1,7 @@ name: patroni description: 'Highly available elephant herd: HA PostgreSQL cluster.' -version: 0.3.2 -appVersion: 1.0-p5 +version: 0.4.0 +appVersion: 1.2-p17 home: https://github.com/zalando/patroni sources: - https://github.com/zalando/patroni diff --git a/incubator/patroni/README.md b/incubator/patroni/README.md index 00d6eb31fc..e1d7628d88 100644 --- a/incubator/patroni/README.md +++ b/incubator/patroni/README.md @@ -67,6 +67,14 @@ The following tables lists the configurable parameters of the patroni chart and | `Credentials.Standby` | password for the replication user | `pinacolada` | | `Etcd.Host` | host name of etcd cluster | not used (Etcd.Discovery is used instead) | | `Etcd.Discovery` | domain name of etcd cluster | `-etcd..svc.cluster.local` | +| `WalE.Enable` | use of wal-e tool for base backup/restore | `false` | +| `WalE.Schedule_Cron_Job` | schedule of wal-e backups | `00 01 * * *` | +| `WalE.Retain_Backups` | number of backups to retain | `2` | +| `WalE.S3_Bucket:` | Amazon S3 bucket used for wal-e backups | `` | +| `WalE.GCS_Bucket` | Google cloud plataform storage used for wal-e backups | `` | +| `WalE.Kubernetes_Secret` | kubernetes secret for provider bucket | `` | +| `WalE.Backup_Threshold_Megabytes` | maximum size of the WAL segments accumulated after the base backup to consider WAL-E restore instead of pg_basebackup | `1024` | +| `WalE.Backup_Threshold_Percentage` | maximum ratio (in percents) of the accumulated WAL files to the base backup to consider WAL-E restore instead of pg_basebackup | `30` | | `persistentVolume.accessModes` | Persistent Volume access modes | `[ReadWriteOnce]` | | `persistentVolume.annotations` | Annotations for Persistent Volume Claim` | `{}` | | `persistentVolume.mountPath` | Persistent Volume mount root path | `/home/postgres/pgdata` | diff --git a/incubator/patroni/requirements.lock b/incubator/patroni/requirements.lock index a8433054b6..ec6d3542e4 100644 --- a/incubator/patroni/requirements.lock +++ b/incubator/patroni/requirements.lock @@ -1,10 +1,6 @@ dependencies: -- condition: "" - enabled: false - import-values: null - name: etcd +- name: etcd repository: https://kubernetes-charts-incubator.storage.googleapis.com/ - tags: null - version: 0.2.0 -digest: sha256:ed1ddf10ed804801e6b01afd2533dcf3ef4b0c6000513110ff78c1430934c2a1 -generated: 2017-06-08T12:51:07.354627568+02:00 + version: 0.2.1 +digest: sha256:23b32faa2e44e5541a57aaf91729bcb3114d112c3f5d98e3e26837b4c4ffc40e +generated: 2017-09-15T14:30:48.734386881+02:00 diff --git a/incubator/patroni/templates/statefulset-patroni.yaml b/incubator/patroni/templates/statefulset-patroni.yaml index 1ca9ecfa13..c7716008af 100644 --- a/incubator/patroni/templates/statefulset-patroni.yaml +++ b/incubator/patroni/templates/statefulset-patroni.yaml @@ -53,8 +53,40 @@ spec: {{end}} - name: SCOPE value: {{ template "patroni.fullname" . }} + {{if .Values.WalE.Enable }} + - name: USE_WALE + value: {{ .Values.WalE.Enable | quote }} + {{if .Values.WalE.Schedule_Cron_Job }} + - name: BACKUP_SCHEDULE + value: {{ .Values.WalE.Schedule_Cron_Job | quote}} + {{end}} + {{if .Values.WalE.Retain_Backups }} + - name: BACKUP_NUM_TO_RETAIN + value: {{ .Values.WalE.Retain_Backups | quote}} + {{end}} + {{if .Values.WalE.S3_Bucket }} + - name: WAL_S3_BUCKET + value: {{ .Values.WalE.S3_Bucket | quote }} + {{else if .Values.WalE.GCS_Bucket }} + - name: WAL_GCS_BUCKET + value: {{ .Values.WalE.GCS_Bucket | quote }} + {{if .Values.WalE.Kubernetes_Secret }} + - name: GOOGLE_APPLICATION_CREDENTIALS + value: "/etc/credentials/{{.Values.WalE.Kubernetes_Secret}}.json" + {{end}} + {{end}} + {{if .Values.WalE.Backup_Threshold_Megabytes }} + - name: WALE_BACKUP_THRESHOLD_MEGABYTES + value: {{ .Values.WalE.Backup_Threshold_Megabytes | quote }} + {{end}} + {{if .Values.WalE.Backup_Threshold_Percentage }} + - name: WALE_BACKUP_THRESHOLD_PERCENTAGE + value: {{ .Values.WalE.Backup_Threshold_Percentage | quote }} + {{end}} + {{else}} - name: USE_WALE value: "" + {{end}} - name: PGROOT value: "{{ .Values.persistentVolume.mountPath }}/pgroot" - name: POD_NAMESPACE @@ -76,11 +108,24 @@ spec: - mountPath: /etc/patroni name: patroni-config readOnly: true + {{if .Values.WalE.Enable }} + {{if .Values.WalE.Kubernetes_Secret }} + - name: {{ .Values.WalE.Kubernetes_Secret }} + mountPath: /etc/credentials + readOnly: true + {{end}} + {{end}} volumes: - name: patroni-config secret: secretName: {{ template "patroni.fullname" . }} - + {{if .Values.WalE.Enable }} + {{if .Values.WalE.Kubernetes_Secret }} + - name: {{ .Values.WalE.Kubernetes_Secret }} + secret: + secretName: {{ .Values.WalE.Kubernetes_Secret }} + {{end}} + {{end}} volumeClaimTemplates: - metadata: name: storage-volume diff --git a/incubator/patroni/values.yaml b/incubator/patroni/values.yaml index e246c4a1c8..9537c5ec8b 100644 --- a/incubator/patroni/values.yaml +++ b/incubator/patroni/values.yaml @@ -33,12 +33,21 @@ Etcd: Host: # fill-in value for etcd host (etcd.default.svc.cluster.local), leave blank to use the discovery parameter Discovery: # leave blank to use vendored etcd chart +WalE: + Enable: false + Schedule_Cron_Job: 00 01 * * * + Retain_Backups: 2 + S3_Bucket: + GCS_Bucket: + Kubernetes_Secret: + Backup_Threshold_Megabytes: 1024 + Backup_Threshold_Percentage: 30 + persistentVolume: size: 1G storageClass: "" subPath: "" mountPath: "/home/postgres/pgdata" annotations: {} - accessModes: - - ReadWriteOnce + - ReadWriteOnce \ No newline at end of file