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