#!/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/knoe/conf/service/knoe.cfg" KNOE_HOME="/Users/chrisfu/dev/knoe" echo "=== Simulating installer env context ===" # Replicate _get_script_env (milestone.py lines 81-87) # base_env = os.environ.copy() + updates export KNOE_HOME="$KNOE_HOME" export KNOE_SERVICE="$KNOE_HOME/etc" export KNOE_CONF="$KNOE_HOME/conf/service" export PROLE_DATA="$KNOE_HOME/knoe-db/data" export PROLE_LOGS="$KNOE_HOME/logs" export KNOE_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 "$KNOE_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 "$KNOE_HOME/etc/init_gitlab.sh" \ --mode k3s \ -c "$CFG" \ --trace-namespace 2>&1 || true) echo "$OUTPUT2" | head -5 # Also verify what knoe_cfg.sh does to NAMESPACE echo "" echo "=== Check: does knoe_cfg.sh overwrite NAMESPACE? ===" ( export NAMESPACE="gitlab" source "$KNOE_HOME/etc/knoe_cfg.sh" 2>/dev/null || true echo " NAMESPACE after sourcing knoe_cfg.sh: '${NAMESPACE:-}'" echo " GITOPS_NAMESPACE: '${GITOPS_NAMESPACE:-}'" echo " GITLAB_NAMESPACE: '${GITLAB_NAMESPACE:-}'" )