ntwl/crates/crates.cron.yaml
2025-04-12 21:11:40 +10:00

68 lines
1.8 KiB
YAML

# ---
# 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"
# -
# |
# cd /mnt/dest/
# TZ="Australia/Melbourne"
# TIMESTAMP=$(date '+%Y-%m-%d-%H-%M-%S')
# DEST=crates-$TIMESTAMP.sql.gz
# echo "Backing up to $DEST"
# pg_dump --dbname=$POSTGRES_URL | gzip > $DEST
# echo "Backup Complete"
# echo "Removing old copies..."
# find . -type f -name "*.sql.gz" -mtime 7 | xargs rm -v
# echo "Setting latest link..."
# ln -nfs $DEST latest.sql.gz
# 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
# ---