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..."
|
||||
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.
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# STAP 3: STANDALONE RADARR SERVICE STOPPEN & DATA SYNCHRONISEREN
|
||||
# ------------------------------------------------------------------------------
|
||||
log_step "3. Standalone radarr.service stoppen om database te bevriezen..."
|
||||
ssh -t "${SSH_USER}@${CLUSTER_HOST}" "sudo systemctl stop 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 <<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!"
|
||||
if [ -z "$RADARR_PV" ]; then
|
||||
log_err "Geen PersistentVolume gevonden voor claim 'radarr-config' in namespace '$HTPC_NS'!"
|
||||
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
|
||||
log_info "Gevonden PV pad: $RADARR_PV"
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# STAP 6: RADARR K8S DEPLOYMENT STARTEN
|
||||
# STAP 3: STANDALONE RADARR SERVICE STOPPEN & POD SCHALEN NAAR 0
|
||||
# ------------------------------------------------------------------------------
|
||||
log_step "6. Radarr deployment starten en schalen naar 1 replica..."
|
||||
log_step "3. Standalone radarr.service stoppen om database te bevriezen..."
|
||||
ssh -t "${SSH_USER}@${CLUSTER_HOST}" "sudo systemctl stop radarr && sudo systemctl disable radarr"
|
||||
|
||||
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 4: DATA KOPIËREN NAAR K8S VOLUME
|
||||
# ------------------------------------------------------------------------------
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user