prole/tests/etc/test_knoe_cfg_kube_context_k3d_prefix.sh

77 lines
1.6 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
KNOE_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/knoe.cfg"
[Global]
DEPLOYMENT_MODE = k3d
KUBECONTEXT = knoe-system
C_EOF
export PATH="$BIN_DIR:$PATH"
export HOME="$TMP_DIR/home"
mkdir -p "$HOME"
export KNOE_HOME="$KNOE_HOME"
export KNOE_CONF="$TMP_DIR/conf"
export KNOE_MODE="k3d"
export KUBECONTEXT="knoe-system"
# shellcheck disable=SC1090
source "$KNOE_HOME/etc/knoe_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"