{{- if .Values.backups.postgres.enabled }} apiVersion: batch/v1 kind: CronJob metadata: name: {{ include "cloudhost-platform.fullname" . }}-postgres-backup namespace: {{ include "cloudhost-platform.namespace" . }} labels: {{- include "cloudhost-platform.labels" . | nindent 4 }} spec: schedule: {{ .Values.backups.postgres.schedule | quote }} successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 1 jobTemplate: spec: template: spec: restartPolicy: OnFailure containers: - name: backup image: {{ .Values.images.postgres | quote }} env: - name: PGHOST value: {{ include "cloudhost-platform.postgres.fullname" . }} - name: PGPORT value: "5432" - name: PGDATABASE value: {{ .Values.postgres.database | quote }} - name: PGUSER value: {{ .Values.postgres.username | quote }} - name: PGPASSWORD valueFrom: secretKeyRef: name: {{ include "cloudhost-platform.secretName" . }} key: postgres-password command: - sh - -c - | set -e STAMP=$(date +%Y%m%d-%H%M%S) FILE="/backup/cloudhost-${STAMP}.sql.gz" pg_dump | gzip > "$FILE" echo "Backup written to $FILE" volumeMounts: - name: backup mountPath: /backup volumes: - name: backup persistentVolumeClaim: claimName: {{ include "cloudhost-platform.fullname" . }}-postgres-backup --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: {{ include "cloudhost-platform.fullname" . }}-postgres-backup namespace: {{ include "cloudhost-platform.namespace" . }} spec: accessModes: [ReadWriteOnce] resources: requests: storage: {{ .Values.backups.postgres.storageSize }} {{- end }}