juntekim.com/db/k8s/backups/pg-backup-cronjob.yaml
2026-01-21 23:20:34 +00:00

63 lines
1.9 KiB
YAML

# apiVersion: batch/v1
# kind: CronJob
# metadata:
# name: postgres-backup-dev
# namespace: default
# spec:
# schedule: "30 18 * * 5" # weekly Friday 18:30
# jobTemplate:
# spec:
# template:
# spec:
# restartPolicy: OnFailure
# containers:
# - name: backup
# image: postgres:16
# command:
# - /bin/sh
# - -c
# - |
# pg_dump \
# -h postgres-dev.default.svc.cluster.local \
# -U $POSTGRES_USER \
# stripe_invoice \
# | gzip \
# | aws s3 cp - s3://$S3_BUCKET/dev/stripe_invoice/$(date +%F).sql.gz
# envFrom:
# - secretRef:
# name: postgres-secret # DEV DB creds
# - secretRef:
# name: aws-backup-secret # shared AWS creds
# ---
# apiVersion: batch/v1
# kind: CronJob
# metadata:
# name: postgres-backup-prod
# namespace: default
# spec:
# schedule: "30 01 * * *" # daily at 01:30 (recommended for prod)
# jobTemplate:
# spec:
# template:
# spec:
# restartPolicy: OnFailure
# containers:
# - name: backup
# image: postgres:16
# command:
# - /bin/sh
# - -c
# - |
# pg_dump \
# -h postgres-prod.default.svc.cluster.local \
# -U $POSTGRES_USER \
# stripe_invoice \
# | gzip \
# | aws s3 cp - s3://$S3_BUCKET/prod/stripe_invoice/$(date +%F).sql.gz
# envFrom:
# - secretRef:
# name: postgres-prod-secret # PROD DB creds
# - secretRef:
# name: aws-backup-secret # shared AWS creds