stem95su: scheduled Drive->site sync CronJob (every 10m)
CronJob stem95su-gdrive-sync (*/10) mounts the content PVC RW and rclone-syncs the read-only Drive folder "claude" (stem claude/files) onto it (rclone/rclone:1.74.3, scope=drive.readonly, empty-source guard + --max-delete 25). ESO ExternalSecret stem95su-rclone <- Vault secret/stem95su. Requires the GCP OAuth app published to Production or the refresh token expires ~weekly. Lands the gdrive-sync stack on master (it had landed on a feature branch by accident on the shared devvm checkout). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
05b50d2b96
commit
6d224861c4
1168 changed files with 120 additions and 358547 deletions
|
|
@ -1,112 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Phase 3: Migrate all service module state from root to individual stacks
|
||||
# Each module in root state is at: module.kubernetes_cluster.module.<name>["<name>"]
|
||||
# Target: state/stacks/<name>/terraform.tfstate as module.<name>
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_STATE="$(pwd)/terraform.tfstate"
|
||||
STATE_DIR="$(pwd)/state/stacks"
|
||||
|
||||
# All 64 service modules currently in root state
|
||||
MODULES=(
|
||||
actualbudget
|
||||
affine
|
||||
blog
|
||||
changedetection
|
||||
city-guesser
|
||||
coturn
|
||||
cyberchef
|
||||
dashy
|
||||
dawarich
|
||||
descheduler
|
||||
diun
|
||||
ebook2audiobook
|
||||
echo
|
||||
excalidraw
|
||||
f1-stream
|
||||
forgejo
|
||||
freedify
|
||||
freshrss
|
||||
frigate
|
||||
hackmd
|
||||
health
|
||||
homepage
|
||||
immich
|
||||
isponsorblocktv
|
||||
jsoncrack
|
||||
kms
|
||||
linkwarden
|
||||
matrix
|
||||
meshcentral
|
||||
n8n
|
||||
navidrome
|
||||
netbox
|
||||
networking-toolbox
|
||||
nextcloud
|
||||
ntfy
|
||||
ollama
|
||||
onlyoffice
|
||||
openclaw
|
||||
osm_routing
|
||||
owntracks
|
||||
paperless-ngx
|
||||
plotting-book
|
||||
privatebin
|
||||
real-estate-crawler
|
||||
reloader
|
||||
resume
|
||||
rybbit
|
||||
send
|
||||
servarr
|
||||
shadowsocks
|
||||
speedtest
|
||||
stirling-pdf
|
||||
tandoor
|
||||
tor-proxy
|
||||
travel_blog
|
||||
tuya-bridge
|
||||
url
|
||||
wealthfolio
|
||||
webhook_handler
|
||||
whisper
|
||||
ytdlp
|
||||
)
|
||||
|
||||
TOTAL=${#MODULES[@]}
|
||||
SUCCESS=0
|
||||
FAIL=0
|
||||
|
||||
echo "=== Phase 3: Service State Migration ==="
|
||||
echo "Migrating $TOTAL modules from root state to individual stacks"
|
||||
echo ""
|
||||
|
||||
for mod in "${MODULES[@]}"; do
|
||||
idx=$((SUCCESS + FAIL + 1))
|
||||
echo "[$idx/$TOTAL] Migrating: $mod"
|
||||
|
||||
# Create state directory
|
||||
mkdir -p "$STATE_DIR/$mod"
|
||||
|
||||
# Source address (with for_each key)
|
||||
SRC="module.kubernetes_cluster.module.${mod}[\"${mod}\"]"
|
||||
DST="module.${mod}"
|
||||
DST_STATE="$STATE_DIR/$mod/terraform.tfstate"
|
||||
|
||||
if terraform state mv \
|
||||
-state="$ROOT_STATE" \
|
||||
-state-out="$DST_STATE" \
|
||||
"$SRC" "$DST" 2>&1; then
|
||||
echo " ✓ $mod migrated successfully"
|
||||
SUCCESS=$((SUCCESS + 1))
|
||||
else
|
||||
echo " ✗ $mod FAILED"
|
||||
FAIL=$((FAIL + 1))
|
||||
fi
|
||||
echo ""
|
||||
done
|
||||
|
||||
echo "=== Migration Summary ==="
|
||||
echo "Total: $TOTAL"
|
||||
echo "Success: $SUCCESS"
|
||||
echo "Failed: $FAIL"
|
||||
Loading…
Add table
Add a link
Reference in a new issue