k3s/kustomize/bases/backups/batch.yaml

48 lines
1.5 KiB
YAML

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