Files
home-network-k3s-impl/infra/cluster.sh
T
jakman85andClaude Opus 4.8 017ed0fb9c Phase 1 checkpoint: status/resume doc + cluster helper + toolchain note
Cluster is UP (3/3 Ready, Cilium OK); Phase 1 paused before Flux bootstrap
(Option A: suspend platform/apps until Phase 2). Add infra/PHASE1-STATUS.md
(what's done, state file locations, reconnect steps, remaining T-1.4/1.5,
Phase-2 platform prereq), infra/cluster.sh (status/start/stop/kubeconfig), and
document that tofu+ansible run on the host (libvirt provider limitation).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-08-16 02:18:39 -05:00

20 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# infra/cluster.sh — manage the local dev k3s cluster (VMs + kubeconfig). Convenience for
# resuming Phase 1 development. Uses host virsh + kubectl (see infra/PHASE1-STATUS.md).
set -euo pipefail
export LIBVIRT_DEFAULT_URI=qemu:///system
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
KCFG="${HERE}/ansible/.cache/dev.kubeconfig"
NODES=(k3s-dev-1 k3s-dev-2 k3s-dev-3)
case "${1:-status}" in
status)
virsh list --all | grep -E 'k3s-dev|Name|--' || true
if [ -f "$KCFG" ]; then KUBECONFIG="$KCFG" kubectl get nodes 2>/dev/null || echo "(cluster not reachable — VMs stopped? run: $0 start)"; fi
;;
start) for n in "${NODES[@]}"; do virsh start "$n" 2>/dev/null || echo "$n already running"; done ;;
stop) for n in "${NODES[@]}"; do virsh shutdown "$n" 2>/dev/null || true; done; echo "graceful shutdown sent (state persists on disk; '$0 start' to resume)" ;;
kubeconfig) echo "export KUBECONFIG=${KCFG}" ;;
*) echo "usage: $0 {status|start|stop|kubeconfig}"; exit 2 ;;
esac