feat(k8s/archmirror): add Arch Linux mirror stack
This commit is contained in:
42
kubernetes/app/archmirror/configmap-sync.yaml
Normal file
42
kubernetes/app/archmirror/configmap-sync.yaml
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: archmirror-sync-script
|
||||
namespace: archmirror
|
||||
data:
|
||||
sync.sh: |
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
TARGET_DIR="/archlinux"
|
||||
MAX_RETRIES=3
|
||||
|
||||
log() {
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >&2
|
||||
}
|
||||
|
||||
if [ -z "$MIRROR_URL" ]; then
|
||||
log "ERROR: MIRROR_URL not set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$TARGET_DIR"
|
||||
for i in $(seq 1 $MAX_RETRIES); do
|
||||
log "Sync attempt $i/$MAX_RETRIES from $MIRROR_URL"
|
||||
|
||||
if rsync --timeout=7200 \
|
||||
-rlptH --safe-links --delete-delay --delay-updates \
|
||||
-v --info=progress2 \
|
||||
"$MIRROR_URL/" "$TARGET_DIR/"; then
|
||||
log "Sync completed successfully"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$i" -lt "$MAX_RETRIES" ]; then
|
||||
sleep $((i * 300))
|
||||
fi
|
||||
done
|
||||
|
||||
log "All sync attempts failed"
|
||||
exit 1
|
||||
Reference in New Issue
Block a user