apiVersion: batch/v1 kind: CronJob metadata: name: backup spec: schedule: "0 3 * * *" jobTemplate: spec: template: spec: restartPolicy: OnFailure containers: - name: backup image: busybox command: - /bin/bash - -c - | echo $HEALTHCHECK_BASE_URL/${HEALTHCHECK_ID} # Start signal curl -fsS -m 10 --retry 5 ${HEALTHCHECK_BASE_URL}/${HEALTHCHECK_ID}/start # Perform backup if ! ${BACKUP_COMMAND} | gzip > /backup/${ROTATE_PREFIX}-$(date +%Y%m%d).sql.gz; then curl -fsS -m 10 --retry 5 ${HEALTHCHECK_BASE_URL}/${HEALTHCHECK_ID}/fail exit 1 fi # list backups ls /backup # Rotate old backups find /backup -name "${ROTATE_PREFIX}-*.sql.gz" -mtime +7 -delete # Success signal curl -fsS -m 10 --retry 5 ${HEALTHCHECK_BASE_URL}/${HEALTHCHECK_ID} envFrom: - configMapRef: name: backup-config - secretRef: name: core-secrets volumeMounts: - mountPath: /backup name: backup subPath: "data" volumes: - name: backup persistentVolumeClaim: claimName: backup-pvc