From 41afbc0fa178d317370370387845f3fc9a75ef5d Mon Sep 17 00:00:00 2001 From: ntr Date: Sat, 5 Oct 2024 19:07:16 +1000 Subject: [PATCH] add crates pg backup cron --- crates/crates.cron.yaml | 81 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100755 crates/crates.cron.yaml diff --git a/crates/crates.cron.yaml b/crates/crates.cron.yaml new file mode 100755 index 0000000..6c6bcd8 --- /dev/null +++ b/crates/crates.cron.yaml @@ -0,0 +1,81 @@ +--- + +apiVersion: v1 +kind: PersistentVolume +metadata: + name: crates-postgres-backup-pv +spec: + storageClassName: "" + capacity: + storage: 1Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + claimRef: + namespace: default + name: crates-postgres-backup-pvc + hostPath: + # Into homedir so we can scp it ez + path: "/home/ntr/archives/crates-postgres" + type: DirectoryOrCreate + +--- + +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: crates-postgres-backup-pvc +spec: + volumeName: crates-postgres-backup-pv + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + +--- + +apiVersion: batch/v1 +kind: CronJob +metadata: + name: crates-db-backup +spec: + schedule: "20 4 * * *" + jobTemplate: + spec: + template: + metadata: + labels: + app: crates-postgres-backup + spec: + restartPolicy: Never + containers: + - name: crates-postgres-backup + image: postgres:16 + command: + - "/bin/sh" + - "-c" + - + | + TZ="Australia/Melbourne" + TIMESTAMP=$(date '+%Y-%m-%d-%H-%M-%S') + DEST=/mnt/dest/crates-$TIMESTAMP-sql.gz + + echo "Backing up to $DEST" + pg_dump --dbname=$POSTGRES_URL | gzip > $DEST + echo "Backup Complete" + env: + - name: POSTGRES_URL + valueFrom: + secretKeyRef: + name: crates + key: POSTGRES_URL + volumeMounts: + - name: crates-postgres-backup-storage + mountPath: /mnt/dest + volumes: + - name: crates-postgres-backup-storage + persistentVolumeClaim: + claimName: crates-postgres-backup-pvc + +---