53 lines
1.6 KiB
YAML
53 lines
1.6 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 --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
|