#!/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:-}'" echo " GITOPS_NAMESPACE='${GITOPS_NAMESPACE:-}'" echo " NAMESPACE='${NAMESPACE:-}'" echo " KNOE_MODE='${KNOE_MODE:-}'" echo "" echo "--- Step 2: init_gitlab.sh line 13 assignment ---" NAMESPACE="${GITLAB_NAMESPACE:-gitlab}" echo " After: NAMESPACE='$NAMESPACE' (from GITLAB_NAMESPACE='${GITLAB_NAMESPACE:-}' 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