54 lines
2.2 KiB
YAML
54 lines
2.2 KiB
YAML
apiVersion: batch/v1
|
|
kind: CronJob
|
|
metadata:
|
|
name: cronjob-mariadb-backupdb
|
|
namespace: {{ .Release.Namespace }}
|
|
labels:
|
|
{{- include "site.labels" . | nindent 4 }}
|
|
spec:
|
|
schedule: "30 20 * * *"
|
|
successfulJobsHistoryLimit: 1
|
|
failedJobsHistoryLimit: 3
|
|
concurrencyPolicy: Forbid
|
|
startingDeadlineSeconds: 120
|
|
jobTemplate:
|
|
spec:
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: mariadb
|
|
tier: cronjob
|
|
{{- include "site.labels" . | nindent 12 }}
|
|
annotations:
|
|
checksum/configmap-env: {{ include (print $.Chart.Name "/templates/mariadb/configmap-mariadb.yaml") . | sha256sum }}
|
|
checksum/secret-env: {{ include (print $.Chart.Name "/templates/mariadb/secret-mariadb.yaml") . | sha256sum }}
|
|
spec:
|
|
automountServiceAccountToken: false
|
|
containers:
|
|
- image: {{ required ".Values.mariadb.repository entry is required!" .Values.mariadb.repository }}:{{ required ".Values.mariadb.tag entry is required!" .Values.mariadb.tag }}
|
|
imagePullPolicy: IfNotPresent
|
|
name: cronjob-mariadb-backupdb
|
|
envFrom:
|
|
- configMapRef:
|
|
name: configmap-mariadb-envvars
|
|
- secretRef:
|
|
name: secret-mariadb
|
|
command: ["/bin/sh", "-c"]
|
|
args:
|
|
- set -x;
|
|
ls -l /var/backups;
|
|
/usr/bin/mysqldump --verbose --hex-blob --complete-insert --single-transaction --skip-lock-tables --skip-add-locks --routines -h service-mariadb -uroot -p$MYSQL_ROOT_PASSWORD $MYSQL_DATABASE | gzip - > /var/backups/$MYSQL_DATABASE-$(date +%Y-%m-%d_%H%M%S).sql.gz;
|
|
find /var/backups/ -mindepth 1 -type f -mtime +14 -exec rm {} \;
|
|
volumeMounts:
|
|
- name: mariadb-datadir-bck
|
|
mountPath: /var/backups
|
|
|
|
restartPolicy: OnFailure
|
|
|
|
terminationGracePeriodSeconds: {{ required ".Values.mariadb.terminationGracePeriodSeconds entry is required!" .Values.mariadb.terminationGracePeriodSeconds }}
|
|
|
|
volumes:
|
|
- name: mariadb-datadir-bck
|
|
persistentVolumeClaim:
|
|
claimName: pvc-mariadb-datadir-bck
|