add crates pg backup cron

This commit is contained in:
ntr 2024-10-05 19:07:16 +10:00
parent 3214d443c9
commit 41afbc0fa1

81
crates/crates.cron.yaml Executable file
View File

@ -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
---