82 lines
2 KiB
Bash
Executable file
82 lines
2 KiB
Bash
Executable file
#!/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"
|
|
}
|