Expanded solutions (10 new industries) and products (Compliance & Data section) to cover full docs.lux.financial capability surface.
71 lines
2.3 KiB
YAML
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
|