55 lines
1.7 KiB
Bash
Executable file
55 lines
1.7 KiB
Bash
Executable file
#!/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 <<EOF | sudo tee /etc/systemd/system/${K3S_SVC}.service.d/wait-wg0.conf
|
|
[Unit]
|
|
After=wg-quick@wg0.service
|
|
Wants=wg-quick@wg0.service
|
|
|
|
[Service]
|
|
ExecStartPre=/usr/local/bin/wait-for-wg0.sh
|
|
EOF
|
|
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable --now k3s-flannel-watchdog.timer
|
|
|
|
echo "$host: done (service=$K3S_SVC)"
|
|
REMOTE
|
|
done
|
|
|
|
echo "=== All nodes configured ==="
|