#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT_DIR="$(dirname "$SCRIPT_DIR")" INVENTORY="$ROOT_DIR/infra/ansible/inventory/hosts.yaml" # Auto-detect server IP from Ansible inventory, or use env override if [[ -z "${K3S_SERVER_HOST:-}" ]] && [[ -f "$INVENTORY" ]]; then SERVER_HOST=$(grep -A1 'k3s_role: server' "$INVENTORY" | grep ansible_host | awk '{print $2}' | head -1) fi SERVER_HOST="${SERVER_HOST:-${K3S_SERVER_HOST:-192.168.1.50}}" SSH_USER="${SSH_USER:-julia}" KUBECONFIG_PATH="${KUBECONFIG_PATH:-$HOME/.kube/homelab}" echo "Fetching kubeconfig from ${SERVER_HOST}..." ssh "${SSH_USER}@${SERVER_HOST}" "sudo cat /etc/rancher/k3s/k3s.yaml" \ | sed "s/127.0.0.1/${SERVER_HOST}/g" \ > "$KUBECONFIG_PATH" chmod 600 "$KUBECONFIG_PATH" echo "Kubeconfig written to ${KUBECONFIG_PATH}" echo "" echo "To use:" echo " export KUBECONFIG=${KUBECONFIG_PATH}" echo " kubectl get nodes"