fix: align pelican backup ExternalSecret and CronJob env vars to actual Vault keys #123

Open
gitea-admin wants to merge 2 commits from orion/auto/fix-align-pelican-backup-externalsecret--1780406406524 into main
2 changed files with 81 additions and 0 deletions
@@ -0,0 +1,59 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: pelican-pg-backup
namespace: backups
spec:
schedule: "0 2 * * *"
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: pg-dump
image: postgres:16-alpine
env:
- name: PGPASSWORD
valueFrom:
secretKeyRef:
name: pelican-pg-backup-credentials
key: password
- name: PGHOST
value: postgres.pelican.svc.cluster.local
- name: PGUSER
valueFrom:
secretKeyRef:
name: pelican-pg-backup-credentials
key: username
- name: PGDATABASE
value: panel
command:
- /bin/sh
- -c
- |
set -e
BACKUP_DIR=/backups/pelican
mkdir -p "$BACKUP_DIR"
FILENAME="$BACKUP_DIR/pelican-$(date +%Y%m%d-%H%M%S).sql.gz"
pg_dump -h "$PGHOST" -U "$PGUSER" -d "$PGDATABASE" | gzip > "$FILENAME"
echo "Backup written: $FILENAME"
find "$BACKUP_DIR" -name '*.sql.gz' -mtime +7 -delete
echo "Retention cleanup done (keeping 7 days)"
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
volumeMounts:
- name: backup-storage
mountPath: /backups
volumes:
- name: backup-storage
persistentVolumeClaim:
claimName: backup-storage
@@ -0,0 +1,22 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: pelican-pg-backup-credentials
namespace: backups
spec:
refreshInterval: 1h
secretStoreRef:
name: vault-backend
kind: ClusterSecretStore
target:
name: pelican-pg-backup-credentials
creationPolicy: Owner
data:
- secretKey: username
remoteRef:
key: Talos Cluster/pelican/panel/db
property: DB_USER
- secretKey: password
remoteRef:
key: Talos Cluster/pelican/panel/db
property: DB_PASSWORD