WIP: can deploy?
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
{{- define "system.backup.cronjob" -}}
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: {{ .system_name }}-{{ .backup.pvc_name }}-backup
|
||||
spec:
|
||||
schedule: {{ required "Values.backups.volumes[n].schedule required in crontab format" .backup.schedule }}
|
||||
successfulJobsHistoryLimit: 1
|
||||
failedJobsHistoryLimit: 1
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: nfs-backup
|
||||
nfs:
|
||||
server: {{ required "Values.backups.volumes[n].nas_ip required to make nfs connection" .nas_ip }}
|
||||
path: {{ required "Values.backups.volumes[n].nas_path required to store backup to a nfs connection" .backup.nas_path }}
|
||||
|
||||
- name: {{ required "Values.backups.volumes[n].pvc_name required" .backup.pvc_name }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ .backup.pvc_name }}
|
||||
containers:
|
||||
- name: config-backup
|
||||
image: {{ .image | default "alpine" }}
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- date;
|
||||
echo "Creating backup for {{ .system_name }}";
|
||||
echo -e "\nCreating {{ .system_name }} directory if it doesnt already exist";
|
||||
mkdir -p /nas/backup/{{ .system_name }};
|
||||
echo -e "\nProcessing {{ .backup.pvc_name }}";
|
||||
echo " - Creating backup of {{ .backup.pvc_name }} volume";
|
||||
tar -czf /nas/backup/{{ .system_name }}/{{ .backup.pvc_name }}_$(date +%Y-%m-%d).tar.gz /backup_source;
|
||||
echo " - Enforcing backup retention policy for {{ .backup.pvc_name }} to latest {{ required "Values.backups.volumes[n].retention required as an integer" .backup.retention }}";
|
||||
ls -t /nas/backup/{{ required "Values.backups.system_name required" .system_name }}/{{ .backup.pvc_name }}_*.tar.gz | sort -r | tail -n +{{ add1 .backup.retention }} | xargs rm -f;
|
||||
echo -e "\nCompleted backup of {{ .backup.pvc_name }}";
|
||||
date;
|
||||
|
||||
volumeMounts:
|
||||
- name: nfs-backup
|
||||
mountPath: /nas/backup
|
||||
- name: {{ .backup.pvc_name }}
|
||||
mountPath: /backup_source
|
||||
{{- end }}
|
||||
|
||||
{{ if .Values.backups.enabled }}
|
||||
{{- range $parent, $backup := .Values.backups.volumes -}}
|
||||
{{- if $backup.enabled }}
|
||||
{{ include "system.backup.cronjob" (dict "backup" $backup "image" $.Values.backups.image "nas_ip" $.Values.backups.nas_ip "system_name" $.Values.backups.system_name) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
Reference in New Issue
Block a user