prole/tests/etc/test_prole_cfg_bootstrap_env_layout.sh
chrisfu e3c2e625f1 refactor(config): separate k3d k3s and gke config entrypoints
Rename env config files from conf/*/prole.cfg to conf/k3d.cfg, conf/k3s.cfg, and conf/gke.cfg. Update shell/Python loaders and etc/deploy scripts to resolve named configs cleanly while keeping legacy fallback behavior. Align k3s Ansible tasks, docs, and regression coverage with the new configuration layout.

Co-authored-by: Junie <junie@jetbrains.com>
2026-04-11 22:20:45 -07:00

66 lines
1.7 KiB
Bash

#!/usr/bin/env bash
# Regression test: sourcing etc/prole_cfg.sh should bootstrap config layout
# and migrate a legacy regular-file prole.cfg entrypoint into the right root file.
set -euo pipefail
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
PROLE_REPO_ROOT=$(cd "$SCRIPT_DIR/../.." && pwd)
TMP_DIR=$(mktemp -d)
trap 'rm -rf "$TMP_DIR"' EXIT
TEST_HOME="$TMP_DIR/prole-home"
mkdir -p "$TEST_HOME/conf"
cat >"$TEST_HOME/env.sh" <<EOF
export PROLE_HOME="$TEST_HOME"
export PROLE_CONF="$TEST_HOME/conf"
export PROLE_SERVICE="$TEST_HOME/etc"
export PROLE_DATA="$TEST_HOME/data"
export PROLE_LOGS="$TEST_HOME/logs"
EOF
# Legacy single-file entrypoint config
cat >"$TEST_HOME/conf/prole.cfg" <<'EOF'
[Global]
DEPLOYMENT_MODE = k3d
CLUSTER_ENV = k3d-knoe-dev-cluster
NAMESPACE = knoe-db-legacy
SERVICE_NAMESPACE = default
EOF
export PROLE_HOME="$TEST_HOME"
export PROLE_CONF="$TEST_HOME/conf"
# Source the shared loader (this should bootstrap the config layout)
# shellcheck disable=SC1090
source "$PROLE_REPO_ROOT/etc/prole_cfg.sh"
if [[ ! -f "$PROLE_CONF/k3d.cfg" ]]; then
echo "FAILURE: expected $PROLE_CONF/k3d.cfg to exist" >&2
exit 1
fi
if ! grep -q "NAMESPACE = knoe-db-legacy" "$PROLE_CONF/k3d.cfg"; then
echo "FAILURE: expected migrated k3d base to contain legacy content" >&2
echo "--- k3d.cfg ---" >&2
cat "$PROLE_CONF/k3d.cfg" >&2 || true
exit 1
fi
if ! ls "$PROLE_CONF"/prole.cfg.legacy.* >/dev/null 2>&1; then
echo "FAILURE: expected legacy backup prole.cfg.legacy.* to be created" >&2
ls -la "$PROLE_CONF" >&2 || true
exit 1
fi
for env in dev service prod test; do
if [[ ! -d "$PROLE_CONF/$env" ]]; then
echo "FAILURE: expected env dir to exist: $PROLE_CONF/$env" >&2
exit 1
fi
done
echo "SUCCESS"