#!/usr/bin/env bash # Simulates EXACTLY what milestones.py + controller.run_script does # when calling init_gitlab.sh — replicates the full env context. set -euo pipefail CFG="/Users/chrisfu/dev/prole/conf/service/prole.cfg" PROLE_HOME="/Users/chrisfu/dev/prole" echo "=== Simulating installer env context ===" # Replicate _get_script_env (milestone.py lines 81-87) # base_env = os.environ.copy() + updates export PROLE_HOME="$PROLE_HOME" export PROLE_SERVICE="$PROLE_HOME/etc" export PROLE_CONF="$PROLE_HOME/conf/service" export PROLE_DATA="$PROLE_HOME/knoe-db/data" export PROLE_LOGS="$PROLE_HOME/logs" export PROLE_MODE="k3s" export DEPLOYMENT_MODE="k3s" export NAMESPACE="knoe-db" # milestone.py line 86: init_password.db_namespace export PROLE_NAMESPACE="knoe-db" export DATABASE_NAMESPACE="knoe-db" export SERVICE_NAMESPACE="knoe-system" export CLUSTER_NAME="knoe-db" # Replicate milestones.py GitOpsMilestone.execute() lines 965-977 export GITLAB_NAMESPACE="gitlab" # line 971: env["GITLAB_NAMESPACE"] = ns (ns="gitlab") export GITLAB_NODE_SELECTOR="gandalf.prole.org" # line 976 export NODE_SELECTOR="gandalf.prole.org" # line 977 echo " Pre-call env: NAMESPACE='$NAMESPACE' GITLAB_NAMESPACE='$GITLAB_NAMESPACE'" echo "" # Now call init_gitlab.sh with same args milestones.py builds: # args = ["--mode", "k3s", "--namespace", ns, "-c", cfg_path] echo "=== Calling init_gitlab.sh --trace-namespace (exits after namespace resolution) ===" OUTPUT=$(bash "$PROLE_HOME/etc/init_gitlab.sh" \ --mode k3s \ --namespace gitlab \ -c "$CFG" \ --trace-namespace 2>&1 || true) echo "$OUTPUT" | head -5 # Now test WITHOUT --namespace arg (worst-case: arg not passed) echo "" echo "=== Worst case: no --namespace arg (relies on env + default) ===" OUTPUT2=$(bash "$PROLE_HOME/etc/init_gitlab.sh" \ --mode k3s \ -c "$CFG" \ --trace-namespace 2>&1 || true) echo "$OUTPUT2" | head -5 # Also verify what prole_cfg.sh does to NAMESPACE echo "" echo "=== Check: does prole_cfg.sh overwrite NAMESPACE? ===" ( export NAMESPACE="gitlab" source "$PROLE_HOME/etc/prole_cfg.sh" 2>/dev/null || true echo " NAMESPACE after sourcing prole_cfg.sh: '${NAMESPACE:-}'" echo " GITOPS_NAMESPACE: '${GITOPS_NAMESPACE:-}'" echo " GITLAB_NAMESPACE: '${GITLAB_NAMESPACE:-}'" )