chore(migrate): refine Radarr migration procedure
This commit is contained in:
@@ -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..."
|
log_step "2. Detecteren van het actieve PV-pad voor radarr-config..."
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
RADARR_PV=$(kubectl get pv -o jsonpath='{range .items[?(@.spec.claimRef.name=="radarr-config")]}{.spec.hostPath.path}{end}')
|
||||||
kubectl apply -k "${SCRIPT_DIR}/k8s/"
|
|
||||||
|
|
||||||
log_info "Wachten tot PVC radarr-config gebonden is..."
|
if [ -z "$RADARR_PV" ]; then
|
||||||
# local-path gebruikt WaitForFirstConsumer, dus de PV wordt provisioned zodra de pod start,
|
log_err "Geen PersistentVolume gevonden voor claim 'radarr-config' in namespace '$HTPC_NS'!"
|
||||||
# of we triggeren de volume creatie.
|
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..."
|
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)..."
|
log_info "Kubernetes radarr pod tijdelijk naar 0 schalen voor data-overdracht..."
|
||||||
ssh -t "${SSH_USER}@${CLUSTER_HOST}" "sudo systemctl disable radarr"
|
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
|
||||||
# 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 <<EOF | kubectl apply -f -
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Pod
|
|
||||||
metadata:
|
|
||||||
name: radarr-data-migrator
|
|
||||||
namespace: ${HTPC_NS}
|
|
||||||
spec:
|
|
||||||
nodeSelector:
|
|
||||||
kubernetes.io/hostname: vmserver
|
|
||||||
containers:
|
|
||||||
- name: helper
|
|
||||||
image: busybox
|
|
||||||
command: ["sh", "-c", "sleep 3600"]
|
|
||||||
volumeMounts:
|
|
||||||
- name: config
|
|
||||||
mountPath: /config
|
|
||||||
volumes:
|
|
||||||
- name: config
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: radarr-config
|
|
||||||
EOF
|
|
||||||
|
|
||||||
log_info "Wachten tot helper pod draait..."
|
|
||||||
kubectl wait --for=condition=Ready pod/radarr-data-migrator -n "${HTPC_NS}" --timeout=60s
|
|
||||||
|
|
||||||
log_step "5. Data overzetten van /storage/var/lib/radarr naar K8s volume..."
|
|
||||||
ssh -t "${SSH_USER}@${CLUSTER_HOST}" '
|
|
||||||
RADARR_PV=$(kubectl get pv -o jsonpath="{range .items[?(@.spec.claimRef.name==\"radarr-config\")]}{.spec.hostPath.path}{end}")
|
|
||||||
if [ -z "$RADARR_PV" ] || [ ! -d "$RADARR_PV" ]; then
|
|
||||||
echo "FOUT: Kon PV pad niet vinden!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "Gevonden PV pad: $RADARR_PV"
|
|
||||||
echo "Kopiëren van bestaande Radarr configuratie en database..."
|
|
||||||
sudo cp -a /storage/var/lib/radarr/* "$RADARR_PV/"
|
|
||||||
sudo chown -R 33:33 "$RADARR_PV"
|
|
||||||
echo "Data overdracht voltooid."
|
|
||||||
'
|
|
||||||
|
|
||||||
log_info "Helper pod opruimen..."
|
|
||||||
kubectl delete pod radarr-data-migrator -n "${HTPC_NS}" --grace-period=0 --force 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
|
kubectl scale deployment/radarr -n "${HTPC_NS}" --replicas=1
|
||||||
|
|
||||||
log_info "Wachten op succesvolle uitrol van Radarr pod..."
|
log_info "Wachten op succesvolle uitrol van Radarr pod..."
|
||||||
kubectl rollout status deployment/radarr -n "${HTPC_NS}" --timeout=120s
|
kubectl rollout status deployment/radarr -n "${HTPC_NS}" --timeout=120s
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# STAP 7: VERIFICATIE
|
# STAP 6: VERIFICATIE
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
log_step "7. Verificatie van Radarr endpoints..."
|
log_step "6. Verificatie van Radarr endpoints..."
|
||||||
sleep 5
|
sleep 3
|
||||||
|
|
||||||
log_info "Lokale ping testen via host..."
|
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
|
ssh -o BatchMode=yes "${SSH_USER}@${CLUSTER_HOST}" "curl -I -s http://127.0.0.1:7878/radarr/ping" | head -n 1
|
||||||
|
|||||||
Reference in New Issue
Block a user