Files
homelab/scripts/kubeconfig-fetch.sh
Julia McGhee 7f3585a013 Configure ArgoCD for private repo access
- Update repo URLs from HTTPS placeholder to git@github.com:lazorgurl/homelab.git
- Update container image refs from OWNER to lazorgurl
- Set KUBECONFIG env in Taskfile
- Fix kubeconfig-fetch.sh to auto-detect server IP from inventory
- Fix Ansible: callback plugin, br_netfilter ordering, ssh service name
2026-03-20 18:33:30 +00:00

29 lines
950 B
Bash
Executable File

#!/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"