prole/tmp/trace_namespace.sh

68 lines
2.4 KiB
Bash

#!/usr/bin/env bash
# Diagnostic: traces exactly how init_gitlab.sh resolves NAMESPACE
# Run directly (not via installer) to see the raw logic.
set -euo pipefail
SCRIPT_DIR="/Users/chrisfu/dev/knoe/etc"
CFG_PATH="/Users/chrisfu/dev/knoe/conf/service/knoe.cfg"
source "$SCRIPT_DIR/knoe_cfg.sh"
echo "======================================================="
echo "TRACE: init_gitlab.sh namespace resolution"
echo "======================================================="
echo ""
echo "--- Step 1: Environment variables before any assignment ---"
echo " GITLAB_NAMESPACE='${GITLAB_NAMESPACE:-<unset>}'"
echo " GITOPS_NAMESPACE='${GITOPS_NAMESPACE:-<unset>}'"
echo " NAMESPACE='${NAMESPACE:-<unset>}'"
echo " KNOE_MODE='${KNOE_MODE:-<unset>}'"
echo ""
echo "--- Step 2: init_gitlab.sh line 13 assignment ---"
NAMESPACE="${GITLAB_NAMESPACE:-gitlab}"
echo " After: NAMESPACE='$NAMESPACE' (from GITLAB_NAMESPACE='${GITLAB_NAMESPACE:-<unset>}' or default 'gitlab')"
echo ""
echo "--- Step 3: Simulated --namespace arg (as milestones.py would pass) ---"
ARG_NS="gitlab"
NAMESPACE="$ARG_NS"
echo " After --namespace arg: NAMESPACE='$NAMESPACE'"
echo ""
echo "--- Step 4: cfg-based lookup ---"
echo " CFG_PATH='$CFG_PATH'"
maybe_gitlab="$(_knoe_cfg_extract_key "$CFG_PATH" "GITLAB_NAMESPACE")"
maybe_gitops="$(_knoe_cfg_extract_key "$CFG_PATH" "GITOPS_NAMESPACE")"
echo " _knoe_cfg_extract_key GITLAB_NAMESPACE => '$maybe_gitlab'"
echo " _knoe_cfg_extract_key GITOPS_NAMESPACE => '$maybe_gitops'"
echo ""
echo "--- Step 5: knoe_cfg.sh env-based lookups ---"
echo " Checking if knoe_cfg.sh sets any vars..."
set | grep -E "^(NAMESPACE|GITLAB|GITOPS)" | sort || true
echo ""
echo "--- Step 6: Final NAMESPACE after all logic ---"
# Apply the new fixed logic
if [[ -z "$NAMESPACE" || "$NAMESPACE" == "gitlab" ]] && [[ -n "$CFG_PATH" ]]; then
cfg_gitlab="$(_knoe_cfg_extract_key "$CFG_PATH" "GITLAB_NAMESPACE")"
[[ -n "$cfg_gitlab" ]] && NAMESPACE="$cfg_gitlab"
fi
NAMESPACE="${NAMESPACE:-gitlab}"
echo " FINAL NAMESPACE='$NAMESPACE'"
echo ""
echo "--- Step 7: Simulate what milestones.py sets in env ---"
echo " (milestones.py line 971: env['GITLAB_NAMESPACE'] = ns where ns='gitlab')"
echo " So GITLAB_NAMESPACE would be 'gitlab' when the real script runs"
echo ""
echo "=== VERDICT ==="
if [[ "$NAMESPACE" == "gitlab" ]]; then
echo " OK: NAMESPACE='$NAMESPACE' ← CORRECT"
else
echo " BUG: NAMESPACE='$NAMESPACE' ← WRONG (expected 'gitlab')"
fi