#!/bin/bash # Deploy k3s resilience configs to all cluster nodes. # Run from workstation where SSH aliases work. set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" CONTROL_NODES="pve-control adder-control game-control" WORKER_NODES="pve-worker adder-worker game-worker-hdd game-worker-ssd fat_mama" ALL_NODES="$CONTROL_NODES $WORKER_NODES" echo "=== Deploying k3s resilience to all nodes ===" for host in $ALL_NODES; do echo "--- $host ---" # Copy scripts scp "$SCRIPT_DIR/wait-for-wg0.sh" "$host:/tmp/" scp "$SCRIPT_DIR/k3s-flannel-watchdog.sh" "$host:/tmp/" scp "$SCRIPT_DIR/k3s-flannel-watchdog.service" "$host:/tmp/" scp "$SCRIPT_DIR/k3s-flannel-watchdog.timer" "$host:/tmp/" ssh "$host" bash <<'REMOTE' sudo install -m 755 /tmp/wait-for-wg0.sh /usr/local/bin/ sudo install -m 755 /tmp/k3s-flannel-watchdog.sh /usr/local/bin/ sudo cp /tmp/k3s-flannel-watchdog.service /etc/systemd/system/ sudo cp /tmp/k3s-flannel-watchdog.timer /etc/systemd/system/ # Determine which k3s service runs on this node if systemctl is-active k3s >/dev/null 2>&1; then K3S_SVC="k3s" else K3S_SVC="k3s-agent" fi # Install systemd drop-in for wg0 dependency sudo mkdir -p /etc/systemd/system/${K3S_SVC}.service.d cat <