Files
helm-charts/pocket-id/templates/backup-pvc-cronjob.yaml
T

60 lines
1.9 KiB
YAML

{{- if .Values.backup.pvc.enabled }}
apiVersion: batch/v1
kind: CronJob
metadata:
name: {{ .Release.Name }}-pvc-backup
spec:
schedule: {{ .Values.backup.pvc.schedule | quote }}
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 1
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
{{- with .Values.backup.pvc.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 12 }}
{{- end }}
containers:
- name: tar-backup
image: {{ .Values.backup.pvc.image }}
command:
- /bin/sh
- -c
- |
set -e
mkdir -p /backup
TS=$(date +%Y%m%d-%H%M%S)
tar czf /backup/${FILE_PREFIX}-${TS}.tar.gz -C /data .
find /backup -name "${FILE_PREFIX}-*.tar.gz" -mtime +$RETENTION_DAYS -delete
env:
- name: FILE_PREFIX
value: {{ .Values.backup.pvc.filePrefix | quote }}
- name: RETENTION_DAYS
value: {{ .Values.backup.pvc.retentionDays | quote }}
volumeMounts:
- name: data
mountPath: /data
readOnly: true
- name: backup-storage
mountPath: /backup
resources:
requests:
memory: "32Mi"
cpu: "50m"
limits:
memory: "128Mi"
cpu: "500m"
volumes:
- name: data
persistentVolumeClaim:
claimName: {{ include "pocket-id.pvcName" . }}
readOnly: true
- name: backup-storage
hostPath:
path: {{ .Values.backup.pvc.hostPath }}
type: DirectoryOrCreate
{{- end }}