From 127ba49372f4d5c216accbb20da25152f5d061ce Mon Sep 17 00:00:00 2001 From: didericis Date: Sun, 19 Jul 2026 00:35:19 -0400 Subject: [PATCH] fix(firecracker): launch infra-VM gateway as a module, not /app/gateway_init.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The infra VM's init boots the orchestrator control plane AND the gateway data plane (egress/git-http/supervise). Since 5ad3449 moved the daemons into the installed `bot_bottle` package, there is no `/app/gateway_init.py` file — the gateway image's entrypoint is `python3 -m bot_bottle.gateway_init`. But the firecracker init still spawned the old file path, so the guest logged: python3: can't open file '/app/gateway_init.py': No such file or directory The control plane came up (it already used `python3 -m bot_bottle.orchestrator`) but the gateway never started, so mitmproxy never generated its CA and launch died with "gateway CA not available after 30s". Mirror the orchestrator line: run the gateway as `python3 -m bot_bottle.gateway_init` (bot_bottle resolves from the /app CWD, same as the control plane; egress-entrypoint.sh / egress_addon.py are present from the gateway base image). Third build/runtime bug from 5ad3449's package refactor that the Firecracker integration suite never exercised (the artifact publish was broken, so the job 404'd before boot). Changes the init, so the infra artifact version moves; the matching rootfs has been rebuilt and published. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01A9qa3xoavjQScufDfZaXKR --- bot_bottle/backend/firecracker/infra_vm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot_bottle/backend/firecracker/infra_vm.py b/bot_bottle/backend/firecracker/infra_vm.py index 8c7e52c..d4d642a 100644 --- a/bot_bottle/backend/firecracker/infra_vm.py +++ b/bot_bottle/backend/firecracker/infra_vm.py @@ -433,7 +433,7 @@ BOT_BOTTLE_ROOT=/var/lib/bot-bottle python3 -m bot_bottle.orchestrator \\ BOT_BOTTLE_GATEWAY_DAEMONS=egress,git-http,supervise \\ BOT_BOTTLE_ORCHESTRATOR_URL=http://127.0.0.1:{CONTROL_PLANE_PORT} \\ SUPERVISE_DB_PATH=/var/lib/bot-bottle/db/bot-bottle.db \\ - python3 /app/gateway_init.py & + python3 -m bot_bottle.gateway_init & # Reap as PID 1; children are backgrounded, so `wait` blocks. while : ; do wait ; done