#!/usr/bin/env bash # ============================================================================== # Jellyfin Rollback Script: Kubernetes -> Host Standalone jellyfin.service # ============================================================================== set -euo pipefail CLUSTER_HOST="10.2.0.4" SSH_USER="bart" HTPC_NS="htpc" KUBECONFIG_PATH="${KUBECONFIG:-$HOME/.kube/config_vmserver}" COLOR_GREEN="\033[0;32m" COLOR_YELLOW="\033[1;33m" COLOR_RED="\033[0;31m" COLOR_BLUE="\033[0;34m" COLOR_RESET="\033[0m" log_info() { echo -e "${COLOR_GREEN}[INFO]${COLOR_RESET} $1"; } log_step() { echo -e "\n${COLOR_BLUE}==>${COLOR_RESET} ${COLOR_GREEN}$1${COLOR_RESET}"; } log_warn() { echo -e "${COLOR_YELLOW}[WARN]${COLOR_RESET} $1"; } echo "========================================================================" echo " JELLYFIN ROLLBACK NAAR STANDALONE SERVICE OP $CLUSTER_HOST" echo "========================================================================" read -p "Weet je zeker dat je wilt terugrollen naar standalone jellyfin? (j/N): " -r CONFIRM if [[ ! "$CONFIRM" =~ ^[jJyY]$ ]]; then log_info "Rollback geannuleerd." exit 0 fi log_step "1. Kubernetes Jellyfin deployment schalen naar 0..." KUBECONFIG="${KUBECONFIG_PATH}" kubectl scale deployment/jellyfin -n "${HTPC_NS}" --replicas=0 || true log_step "2. Standalone jellyfin.service inschakelen en starten op $CLUSTER_HOST..." ssh -t "${SSH_USER}@${CLUSTER_HOST}" "sudo systemctl enable --now jellyfin" log_step "3. Status controleren..." sleep 5 ssh -o BatchMode=yes "${SSH_USER}@${CLUSTER_HOST}" "systemctl status jellyfin --no-pager" | head -n 12 ssh -o BatchMode=yes "${SSH_USER}@${CLUSTER_HOST}" "curl -I -s http://127.0.0.1:8096/jellyfin/health" | head -n 1 echo "" log_info "Rollback voltooid. Standalone jellyfin.service is weer actief op de host."