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 <noreply@paperclip.ing>
This commit is contained in:
parent
5e02c64dc4
commit
6cc1df6c66
1 changed files with 18 additions and 6 deletions
|
|
@ -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 <<EOC
|
||||
[hetzner-s3]
|
||||
type = s3
|
||||
provider = Other
|
||||
access_key_id = ${S3_ACCESS_KEY}
|
||||
secret_access_key = ${S3_SECRET_KEY}
|
||||
endpoint = https://fsn1.your-objectstorage.com
|
||||
region = fsn1
|
||||
endpoint = https://hel1.your-objectstorage.com
|
||||
region = hel1
|
||||
acl = private
|
||||
EOC
|
||||
|
||||
# Backup OpenCloud data directory
|
||||
echo "Backing up data directory..."
|
||||
rclone sync /data hetzner-s3:opencloud-backup/data-${DATE} \
|
||||
rclone sync /data hetzner-s3:basicstack-backup/opencloud/data-${DATE} \
|
||||
--progress \
|
||||
--transfers 8 \
|
||||
--checkers 8 \
|
||||
|
|
@ -48,12 +60,12 @@ spec:
|
|||
|
||||
# Backup configuration
|
||||
echo "Backing up configuration..."
|
||||
rclone copy /config hetzner-s3:opencloud-backup/config-${DATE} \
|
||||
rclone copy /config hetzner-s3:basicstack-backup/opencloud/config-${DATE} \
|
||||
--progress
|
||||
|
||||
# Keep only last 7 days of backups
|
||||
echo "Cleaning old backups (keeping last 7 days)..."
|
||||
rclone delete hetzner-s3:opencloud-backup \
|
||||
rclone delete hetzner-s3:basicstack-backup/opencloud \
|
||||
--min-age 7d \
|
||||
--rmdirs
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue