From 65086ea6a6557cccd8087feba33a76cb4eefdd9b Mon Sep 17 00:00:00 2001 From: brupje Date: Sun, 18 Oct 2026 14:57:07 +0200 Subject: [PATCH] chore(migrate): refine Radarr migration procedure --- migrate_radarr_to_cluster.sh | 94 +++++++++++------------------------- 1 file changed, 29 insertions(+), 65 deletions(-) diff --git a/migrate_radarr_to_cluster.sh b/migrate_radarr_to_cluster.sh index ac338f1..b3c7bd4 100755 --- a/migrate_radarr_to_cluster.sh +++ b/migrate_radarr_to_cluster.sh @@ -53,88 +53,52 @@ kubectl get node vmserver | grep -q "Ready" || { } # ------------------------------------------------------------------------------ -# STAP 2: K8S RESOURCES AANMAKEN (NAMESPACE & PVC) +# STAP 2: OPHALEN VAN HET PV PAD # ------------------------------------------------------------------------------ -log_step "2. Namespace en PVC aanmaken in Kubernetes..." -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -kubectl apply -k "${SCRIPT_DIR}/k8s/" +log_step "2. Detecteren van het actieve PV-pad voor radarr-config..." +RADARR_PV=$(kubectl get pv -o jsonpath='{range .items[?(@.spec.claimRef.name=="radarr-config")]}{.spec.hostPath.path}{end}') -log_info "Wachten tot PVC radarr-config gebonden is..." -# local-path gebruikt WaitForFirstConsumer, dus de PV wordt provisioned zodra de pod start, -# of we triggeren de volume creatie. +if [ -z "$RADARR_PV" ]; then + log_err "Geen PersistentVolume gevonden voor claim 'radarr-config' in namespace '$HTPC_NS'!" + exit 1 +fi +log_info "Gevonden PV pad: $RADARR_PV" # ------------------------------------------------------------------------------ -# STAP 3: STANDALONE RADARR SERVICE STOPPEN & DATA SYNCHRONISEREN +# STAP 3: STANDALONE RADARR SERVICE STOPPEN & POD SCHALEN NAAR 0 # ------------------------------------------------------------------------------ log_step "3. Standalone radarr.service stoppen om database te bevriezen..." -ssh -t "${SSH_USER}@${CLUSTER_HOST}" "sudo systemctl stop radarr" +ssh -t "${SSH_USER}@${CLUSTER_HOST}" "sudo systemctl stop radarr && sudo systemctl disable radarr" -log_info "Standalone radarr.service uitschakelen (disable)..." -ssh -t "${SSH_USER}@${CLUSTER_HOST}" "sudo systemctl disable radarr" - -# We starten tijdelijk een data-sync helper pod of wachten op pod creatie -log_step "4. Wachten tot Radarr Pod scheduled wordt en PV beschikbaar is..." - -# Schaal deployment tijdelijk naar 0 als het draait zodat we veilig kunnen syncen -kubectl scale deployment/radarr -n "${HTPC_NS}" --replicas=0 2>/dev/null || true - -# Start een lightweight helper pod om het volume te mounten en binden -cat </dev/null || true +log_info "Kubernetes radarr pod tijdelijk naar 0 schalen voor data-overdracht..." +kubectl scale deployment/radarr -n "${HTPC_NS}" --replicas=0 +kubectl wait --for=delete pod -l app=radarr -n "${HTPC_NS}" --timeout=60s 2>/dev/null || true # ------------------------------------------------------------------------------ -# STAP 6: RADARR K8S DEPLOYMENT STARTEN +# STAP 4: DATA KOPIËREN NAAR K8S VOLUME # ------------------------------------------------------------------------------ -log_step "6. Radarr deployment starten en schalen naar 1 replica..." +log_step "4. Data overzetten van /storage/var/lib/radarr naar $RADARR_PV..." +ssh -t "${SSH_USER}@${CLUSTER_HOST}" " + echo 'Kopiëren van bestaande configuratie, database en covers...' + sudo cp -a /storage/var/lib/radarr/* '$RADARR_PV/' + sudo chown -R 33:33 '$RADARR_PV' + echo 'Data overdracht voltooid.' +" + +# ------------------------------------------------------------------------------ +# STAP 5: RADARR K8S DEPLOYMENT HERSTARTEN +# ------------------------------------------------------------------------------ +log_step "5. Radarr deployment starten en schalen naar 1 replica..." kubectl scale deployment/radarr -n "${HTPC_NS}" --replicas=1 log_info "Wachten op succesvolle uitrol van Radarr pod..." kubectl rollout status deployment/radarr -n "${HTPC_NS}" --timeout=120s # ------------------------------------------------------------------------------ -# STAP 7: VERIFICATIE +# STAP 6: VERIFICATIE # ------------------------------------------------------------------------------ -log_step "7. Verificatie van Radarr endpoints..." -sleep 5 +log_step "6. Verificatie van Radarr endpoints..." +sleep 3 log_info "Lokale ping testen via host..." ssh -o BatchMode=yes "${SSH_USER}@${CLUSTER_HOST}" "curl -I -s http://127.0.0.1:7878/radarr/ping" | head -n 1