apps/garage/backup/resources/cronjob.yaml
Peter Kurfer 91bed3f935
All checks were successful
Renovate / renovate (push) Successful in 1m53s
chore(garage): optimize rclone flags for backup
2024-05-08 15:15:59 +02:00

61 lines
No EOL
1.8 KiB
YAML

apiVersion: batch/v1
kind: CronJob
metadata:
name: backup
spec:
schedule: "42 */6 * * *"
jobTemplate:
spec:
completions: 11
parallelism: 3
completionMode: Indexed
ttlSecondsAfterFinished: 300
backoffLimitPerIndex: 3
template:
spec:
containers:
- name: rclone
image: rclone
command: ["/bin/ash", "-c"]
args:
- |
for bucket in $(cat /config/backup/buckets | head -n $JOB_COMPLETION_INDEX | tail -n 1);
do
if [ -z "$bucket" ]; then exit 0; fi
echo "Syncing bucket $bucket";
rclone sync -P \
--update \
--checksum \
--no-traverse \
--no-update-modtime \
--no-update-dir-modtime \
--ignore-errors \
-v \
"garage:$bucket" "storagebox:garage/$bucket/";
done
volumeMounts:
- name: rclone-config
mountPath: /config/rclone
- name: backup-config
mountPath: /config/backup
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
restartPolicy: OnFailure
volumes:
- name: rclone-config
secret:
secretName: rclone-backup-config
defaultMode: 420
- name: backup-config
configMap:
name: backup-config
defaultMode: 420
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
runAsNonRoot: true