prole/tests/etc/test_prole_cfg_kube_context_k3d_prefix.sh
chrisfu cf51335ced Fix kube context handling and monitoring eligibility
- detect local k3s node kubeconfig and skip kubectx/use-context mutation when already targeting local API\n- add configurable KUBE_CONTEXT_NAME resolution with compatibility fallbacks and switch only when required\n- update init scripts to use ensure_kube_context helper naming\n- broaden monitoring eligibility to discovered /synology/d### mounts so /synology/d004 qualifies\n- add focused kube-context and topology tests covering local/remote and read-only kubeconfig cases

Co-authored-by: Junie <junie@jetbrains.com>
2026-03-23 13:50:29 -07:00

77 lines
1.6 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
PROLE_HOME=$(cd "$SCRIPT_DIR/../.." && pwd)
TMP_DIR=$(mktemp -d)
trap 'rm -rf "$TMP_DIR"' EXIT
export TMP_DIR
BIN_DIR="$TMP_DIR/bin"
mkdir -p "$BIN_DIR"
cat <<'K_EOF' >"$BIN_DIR/kubectl"
#!/usr/bin/env bash
set -euo pipefail
args="$*"
if [[ "$args" == "config current-context"* ]]; then
echo "k3d-knoe-dev-cluster"
exit 0
fi
if [[ "$args" == "config get-contexts -o name"* ]]; then
echo "docker-desktop"
echo "k3d-knoe-dev-cluster"
echo "k3d-knoe-system"
exit 0
fi
if [[ "$args" == "config get-contexts --no-headers"* ]]; then
# Format: CURRENT NAME CLUSTER AUTHINFO NAMESPACE
echo "* k3d-knoe-dev-cluster k3d-knoe-dev-cluster user "
echo " k3d-knoe-system k3d-knoe-system user "
exit 0
fi
if [[ "$args" == "config use-context "* ]]; then
# shellcheck disable=SC2129
echo "${args#config use-context }" >"${TMP_DIR}/used_context"
exit 0
fi
exit 0
K_EOF
chmod +x "$BIN_DIR/kubectl"
mkdir -p "$TMP_DIR/conf"
cat <<C_EOF >"$TMP_DIR/conf/prole.cfg"
[Global]
DEPLOYMENT_MODE = k3d
KUBECONTEXT = knoe-system
C_EOF
export PATH="$BIN_DIR:$PATH"
export HOME="$TMP_DIR/home"
mkdir -p "$HOME"
export PROLE_HOME="$PROLE_HOME"
export PROLE_CONF="$TMP_DIR/conf"
export PROLE_MODE="k3d"
export KUBECONTEXT="knoe-system"
# shellcheck disable=SC1090
source "$PROLE_HOME/etc/prole_cfg.sh"
ensure_kube_context
if [[ "$(cat "$TMP_DIR/used_context")" != "k3d-knoe-system" ]]; then
echo "FAILURE: expected context 'k3d-knoe-system' but got '$(cat "$TMP_DIR/used_context")'" >&2
exit 1
fi
echo "SUCCESS"