#!/bin/bash # Shared helpers for install-fleet_daemon.sh. Sourced, never executed. _resolve_kubeconfig() { if [ -n "${KUBECONFIG:-}" ] && [ -f "$KUBECONFIG" ]; then return fi for candidate in \ /var/lib/k0s/pki/admin.conf \ /etc/kubernetes/admin.conf \ /root/.kube/config; do if [ -f "$candidate" ]; then export KUBECONFIG="$candidate" return fi done if command -v k0s >/dev/null 2>&1; then local tmp tmp="$(mktemp)" if k0s kubeconfig admin > "$tmp" 2>/dev/null; then export KUBECONFIG="$tmp" return fi rm -f "$tmp" fi echo "ERROR: kubeconfig not found — set KUBECONFIG explicitly" >&2 exit 1 } _kubectl() { if command -v kubectl >/dev/null 2>&1; then command kubectl "$@" elif command -v k0s >/dev/null 2>&1; then k0s kubectl "$@" else echo "ERROR: neither kubectl nor k0s found on PATH" >&2 exit 127 fi } _require_env() { local var="$1" if [ -z "${!var:-}" ]; then echo "ERROR: required variable $var is not set" >&2 exit 1 fi } _namespace_exists() { _kubectl get namespace "$FLEET_DAEMON_NAMESPACE" >/dev/null 2>&1 } _deployment_exists() { _kubectl get deployment "$FLEET_DAEMON_NAME" --namespace "$FLEET_DAEMON_NAMESPACE" >/dev/null 2>&1 } _wait_for_deployment() { local timeout="${1:-180}" if command -v _diag_wait_for_deployment >/dev/null 2>&1; then _diag_wait_for_deployment "$FLEET_DAEMON_NAME" "$FLEET_DAEMON_NAMESPACE" "$timeout" else _kubectl rollout status deployment/"$FLEET_DAEMON_NAME" \ --namespace "$FLEET_DAEMON_NAMESPACE" \ --timeout="${timeout}s" fi } _crd_present() { _kubectl get crd "$1" >/dev/null 2>&1 } _cidrs_yaml_array() { # Convert a space-separated CIDR list into yaml indented `from:` entries. # $1 = indent prefix (e.g. " "), $2 = space-separated CIDRs local prefix="$1" shift local out="" for c in "$@"; do out="${out}${prefix}- ipBlock:\n${prefix} cidr: ${c}\n" done printf '%b' "$out" }