kube/keycloak/postgres/db-backup-cron.yaml
2025-05-25 20:47:30 +02:00

59 lines
1.8 KiB
YAML

apiVersion: batch/v1
kind: CronJob
metadata:
name: keycloak-postgres-backup
spec:
schedule: "0 0 * * *"
jobTemplate:
spec:
template:
spec:
initContainers:
- name: dump
image: postgres:14.12
imagePullPolicy: IfNotPresent
volumeMounts:
- name: data
mountPath: /backup
args:
- pg_dump
- "-Fc"
- "-f"
- "/backup/keycloak-postgres.pgdump"
- "-Z"
- "9"
- "-v"
- "-h"
- "keycloak-postgresdb"
- "-U"
- "keycloak"
- "-d"
- "keycloak"
env:
- name: PGPASSWORD
valueFrom:
secretKeyRef:
# Retrieve postgres password from a secret
name: keycloak-postgresdb-creds
key: POSTGRES_PASSWORD
containers:
- name: save
image: amazon/aws-cli
volumeMounts:
- name: data
mountPath: /backup
args:
- s3
- cp
- "/backup/keycloak-postgres.pgdump"
- "s3://media-object-storage/keycloak-postgres.pgdump"
- "--endpoint"
- "https://s3.gra.io.cloud.ovh.net"
envFrom:
- secretRef:
# Must contain AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION
name: media-object-storage-creds
restartPolicy: Never
volumes:
- name: data
emptyDir: {}