prole/tests/etc/test_knoe_cfg_overrides_env_mode.sh

66 lines
1.3 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
# Regression test: knoe.cfg must override a leaked KNOE_MODE from environment.
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
KNOE_HOME=$(cd "$SCRIPT_DIR/../.." && pwd)
TMP_DIR=$(mktemp -d)
trap 'rm -rf "$TMP_DIR"' EXIT
BIN_DIR="$TMP_DIR/bin"
mkdir -p "$BIN_DIR"
cat >"$BIN_DIR/kubectl" <<'EOF'
#!/usr/bin/env bash
exit 0
EOF
chmod +x "$BIN_DIR/kubectl"
cat >"$BIN_DIR/kubectx" <<'EOF'
#!/usr/bin/env bash
exit 0
EOF
chmod +x "$BIN_DIR/kubectx"
cat >"$BIN_DIR/kubens" <<'EOF'
#!/usr/bin/env bash
exit 0
EOF
chmod +x "$BIN_DIR/kubens"
export PATH="$BIN_DIR:$PATH"
CONF_DIR="$TMP_DIR/conf"
mkdir -p "$CONF_DIR/service"
cat >"$CONF_DIR/service/knoe.cfg" <<EOF
[Global]
DEPLOYMENT_MODE = k3s
NAMESPACE = test-ns
SERVICE_NAMESPACE = test-sys
KNOE_HOME = $KNOE_HOME
KNOE_SERVICE = $TMP_DIR/service
EOF
ln -snf "service/knoe.cfg" "$CONF_DIR/knoe.cfg"
export KNOE_CONF="$CONF_DIR"
export KNOE_HOME
export KNOE_SERVICE="$TMP_DIR/service"
# Simulate a leaked env mode.
export KNOE_MODE="k3d"
# shellcheck disable=SC1090
source "$KNOE_HOME/etc/knoe_cfg.sh"
if [[ "${KNOE_MODE:-}" != "k3s" ]]; then
echo "FAILURE: Expected KNOE_MODE to be overridden to 'k3s' from knoe.cfg; got '${KNOE_MODE:-<unset>}'" >&2
exit 1
fi
echo "SUCCESS"