Files
sbbb/base/storage/seaweedfs-remote-sync.yaml

63 lines
2.2 KiB
YAML
Raw Normal View History

# SeaweedFS S3 mirror — hourly mc mirror from SeaweedFS → Scaleway Object Storage.
# Mirrors all buckets to s3://sunbeam-backups/seaweedfs/<bucket>/.
# No --remove: deleted files are left in Scaleway (versioning provides recovery window).
# concurrencyPolicy: Forbid prevents overlap if a run takes longer than an hour.
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: seaweedfs-s3-mirror
namespace: storage
spec:
schedule: "0 * * * *"
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
jobTemplate:
spec:
activeDeadlineSeconds: 3300
template:
spec:
restartPolicy: OnFailure
containers:
- name: mirror
image: minio/mc:latest
command: ["/bin/sh", "-c"]
args:
- |
set -e
mc alias set seaweed \
http://seaweedfs-filer.storage.svc.cluster.local:8333 \
"${S3_ACCESS_KEY}" "${S3_SECRET_KEY}"
mc alias set scaleway \
https://s3.fr-par.scw.cloud \
"${ACCESS_KEY_ID}" "${SECRET_ACCESS_KEY}"
mc mirror --overwrite seaweed/ scaleway/sunbeam-backups/seaweedfs/
env:
- name: S3_ACCESS_KEY
valueFrom:
secretKeyRef:
name: seaweedfs-s3-credentials
key: S3_ACCESS_KEY
- name: S3_SECRET_KEY
valueFrom:
secretKeyRef:
name: seaweedfs-s3-credentials
key: S3_SECRET_KEY
- name: ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: scaleway-s3-creds
key: ACCESS_KEY_ID
- name: SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: scaleway-s3-creds
key: SECRET_ACCESS_KEY
resources:
requests:
memory: 128Mi
cpu: 10m
limits:
memory: 512Mi