[incubator/patroni] Add Wal-e backup/restore with Google Cloud Storage (#1426)

This commit is contained in:
Andre Freitas
2017-09-15 14:57:27 +02:00
committed by Reinhard Nägele
parent f8ea085ae3
commit b04b824f4e
5 changed files with 71 additions and 13 deletions
+2 -2
View File
@@ -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
+8
View File
@@ -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 | `<release-name>-etcd.<namespace>.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` |
+4 -8
View File
@@ -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
@@ -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
+11 -2
View File
@@ -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