From 6cc1df6c66f6bc7b815a9d788bffdd95ee7c042b Mon Sep 17 00:00:00 2001 From: CTO Agent Date: Sat, 11 Jul 2026 14:09:21 +0000 Subject: [PATCH] Configure OpenCloud daily backup to Hetzner Object Storage - Use existing basicstack-backup bucket with opencloud/ prefix - Configure endpoint: https://hel1.your-objectstorage.com - Add pod affinity to run on same node as OpenCloud (RWO volume requirement) - Schedule: daily at 2:00 AM UTC - Retention: last 7 days - First backup verified successful: 110.611 MiB transferred Co-Authored-By: Paperclip --- apps/opencloud/backup-cronjob.yaml | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/apps/opencloud/backup-cronjob.yaml b/apps/opencloud/backup-cronjob.yaml index 12371d2..273ab1c 100644 --- a/apps/opencloud/backup-cronjob.yaml +++ b/apps/opencloud/backup-cronjob.yaml @@ -15,6 +15,17 @@ spec: template: spec: restartPolicy: OnFailure + # Run on same node as OpenCloud to allow volume attachment + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: app + operator: In + values: + - opencloud + topologyKey: kubernetes.io/hostname containers: - name: backup image: rclone/rclone:latest @@ -25,22 +36,23 @@ spec: set -e DATE=$(date +%Y%m%d-%H%M%S) echo "Starting OpenCloud backup at $DATE" - + # Configure rclone for Hetzner S3 + mkdir -p /root/.config/rclone cat > /root/.config/rclone/rclone.conf <