Files
universe/k8s/lux-k8s/pvc-snapshot-cronjob.yaml
Hanzo Dev 548440d94f k8s(financial): bump lux-financial to v1.2.0
Expanded solutions (10 new industries) and products (Compliance & Data
section) to cover full docs.lux.financial capability surface.
2026-04-20 22:33:19 -07:00

71 lines
2.3 KiB
YAML

---
# CronJob: daily DigitalOcean volume snapshots for luxd PVCs
# Runs at 2am UTC daily, snapshots all DO volumes matching "luxd"
apiVersion: batch/v1
kind: CronJob
metadata:
name: luxd-pvc-snapshot
namespace: lux-mainnet
labels:
app: luxd-pvc-snapshot
spec:
schedule: "0 2 * * *"
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 2
activeDeadlineSeconds: 600
template:
metadata:
labels:
app: luxd-pvc-snapshot
spec:
restartPolicy: OnFailure
serviceAccountName: luxd-pvc-snapshot
containers:
- name: snapshot
image: digitalocean/doctl:latest
command: ["/bin/sh", "-c"]
args:
- |
set -e
echo "[SNAPSHOT] Starting daily PVC snapshot $(date -u +%Y-%m-%dT%H:%M:%SZ)"
SNAPSHOT_DATE=$(date -u +%Y%m%d)
FOUND=0
for vol in $(doctl compute volume list --format ID,Name --no-header | grep luxd | awk '{print $1}'); do
VOL_NAME=$(doctl compute volume get "$vol" --format Name --no-header)
SNAP_NAME="luxd-${VOL_NAME}-${SNAPSHOT_DATE}"
echo "[SNAPSHOT] Creating snapshot: $SNAP_NAME for volume $vol ($VOL_NAME)"
doctl compute volume-snapshot create "$vol" --snapshot-name "$SNAP_NAME"
FOUND=$((FOUND + 1))
done
echo "[SNAPSHOT] Done: $FOUND volumes snapshotted"
if [ "$FOUND" -eq 0 ]; then
echo "[SNAPSHOT] WARNING: no luxd volumes found"
exit 1
fi
env:
- name: DIGITALOCEAN_ACCESS_TOKEN
valueFrom:
secretKeyRef:
name: digitalocean-api-token
key: token
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 128Mi
---
# ServiceAccount for the snapshot CronJob
apiVersion: v1
kind: ServiceAccount
metadata:
name: luxd-pvc-snapshot
namespace: lux-mainnet
labels:
app: luxd-pvc-snapshot