wwwgmo/parcage/mariadb/cronjob-mariadb-bckdb.yaml
2025-06-22 17:22:04 +02:00

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