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]>
20 lines
1.0 KiB
Bash
Executable File
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
|