77948ef56c
The per-agent companion container (the egress/git-gate/supervise data plane run once per bottle) is the pre-consolidation architecture. Remove it and disable the backends that still depend on it, per the #385 thread. - Delete `backend/docker/sidecar_bundle.py`; docker's live path uses the consolidated shared gateway, not a per-bottle bundle. - Disable the firecracker and macos-container backends: their `launch()` fails closed (they launched a per-bottle companion; firecracker's consolidated relaunch is #354, macos follows). Their `enumerate` return empty and `cleanup` drop the companion-container discovery (firecracker keeps VMM/run-dir cleanup). - Fail-close both backends' `egress_apply` reload (it signalled the per-bottle container); consolidated egress policy resolves per-request against the orchestrator, so gateway-side apply is a follow-up. - Rename `egress_sidecar_env_entries` → `egress_gateway_env_entries`, `SIDECAR_PORTS` → `GATEWAY_PORTS`. - Move the shared DockerBottlePlan fixture to `tests/unit/_docker_bottle_plan.py`; delete tests for the removed launch paths; update cleanup/egress-apply tests. Docker consolidated launch verified end-to-end (multitenant isolation integration test passes). macos/firecracker are intentionally disabled. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WBMWTEtQdJ4W5UrWuLHCck
40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
"""Launch flow for the Firecracker backend — temporarily disabled (#385).
|
|
|
|
The firecracker backend launched a per-bottle companion container (the
|
|
egress / git-gate / supervise data plane) alongside each microVM. That
|
|
per-bottle-companion architecture was removed in the de-sidecar cleanup;
|
|
firecracker's replacement — the consolidated per-host gateway — lands in
|
|
its own cutover (#354).
|
|
|
|
Until that lands, launching a firecracker bottle fails closed rather than
|
|
silently running the removed path. `prepare` / `status` / cleanup still
|
|
work, so `backend status --backend=firecracker` and orphan cleanup are
|
|
unaffected.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from contextlib import contextmanager
|
|
from typing import Callable, Generator
|
|
|
|
from ...log import die
|
|
from .bottle import FirecrackerBottle
|
|
from .bottle_plan import FirecrackerBottlePlan
|
|
|
|
|
|
@contextmanager
|
|
def launch(
|
|
plan: FirecrackerBottlePlan,
|
|
*,
|
|
provision: Callable[[FirecrackerBottlePlan, "FirecrackerBottle"], str | None],
|
|
) -> Generator[FirecrackerBottle, None, None]:
|
|
"""Fail closed: the firecracker backend is disabled while its
|
|
consolidated (gateway-backed) launch is built in #354."""
|
|
del plan, provision
|
|
die(
|
|
"the firecracker backend is temporarily disabled during the "
|
|
"companion-container removal (#385); its consolidated relaunch "
|
|
"lands in #354. Use --backend=docker for now."
|
|
)
|
|
yield # unreachable — `die` raises; keeps this a generator/contextmanager
|