{{- if .Values.backup.enabled }} apiVersion: batch/v1 kind: CronJob metadata: name: {{ include "postgresql.fullname" . }}-backup labels: {{- include "postgresql.labels" . | nindent 4 }} app.kubernetes.io/component: backup spec: schedule: {{ .Values.backup.schedule | quote }} successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 3 concurrencyPolicy: Forbid jobTemplate: spec: template: metadata: labels: {{- include "postgresql.selectorLabels" . | nindent 12 }} app.kubernetes.io/component: backup spec: restartPolicy: OnFailure containers: - name: backup image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} command: - /bin/bash - /config/backup.sh env: - name: POSTGRES_USER value: {{ .Values.postgres.user | quote }} - name: PGPASSWORD valueFrom: secretKeyRef: name: {{ .Values.postgres.existingSecret | default (include "postgresql.fullname" .) }} key: {{ .Values.postgres.passwordKey }} - name: PGHOST value: {{ include "postgresql.fullname" . }}-primary volumeMounts: - name: backup mountPath: /backup - name: config mountPath: /config resources: {{- toYaml .Values.backup.resources | nindent 14 }} volumes: - name: backup persistentVolumeClaim: claimName: {{ include "postgresql.fullname" . }}-backup - name: config configMap: name: {{ include "postgresql.fullname" . }}-config defaultMode: 0755 {{- end }}