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