kubs/backups/cronjobs.yaml
2025-01-12 18:01:27 +03:00

85 lines
2 KiB
YAML

apiVersion: batch/v1
kind: CronJob
metadata:
name: backups-nfs
namespace: backups
spec:
schedule: "0 2 * * *" # Runs daily at 2 AM
jobTemplate:
spec:
template:
spec:
containers:
- name: nfs-backup
image: alpine:3.18
command:
- /bin/sh
- -c
- |
# Backup /SSD/configs/ to backups/alaskartv
rsync -av --delete /configs/ /backups/alaskartv/
# Backup Forgejo instance and DB
rsync -av --delete /git/forgejo-instance/ /backups/git/forgejo-instance/
rsync -av --delete /git/forgejo-db/ /backups/git/forgejo-db/
volumeMounts:
- name: nfs-configs
mountPath: /configs
- name: nfs-git
mountPath: /git
- name: nfs-backups
mountPath: /backups
securityContext:
runAsUser: 0
runAsGroup: 0
privileged: true
restartPolicy: OnFailure
volumes:
- name: nfs-configs
persistentVolumeClaim:
claimName: nfs-ssd-configs-pvc
- name: nfs-git
persistentVolumeClaim:
claimName: nfs-nas-git-pvc
- name: nfs-backups
persistentVolumeClaim:
claimName: nfs-nas-backups-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-ssd-configs-pvc
namespace: backups
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 3Ti
storageClassName: ""
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-nas-git-pvc
namespace: backups
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 3Ti
storageClassName: ""
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-nas-backups-pvc
namespace: backups
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 3Ti
storageClassName: ""