0007. Testing the sandbox rungs
- Status: Accepted, 2026-10-05 (design plan D13). As of Phase 4, CI tests bubblewrap and Landlock on GitHub runners, and the bubblewrap pool and the pod rung on kind (
deploy/e2e/kind-e2e.sh). The Firecracker tests run only on hosts with a usable/dev/kvm, which CI does not have.
Decision
Section titled “Decision”- bubblewrap and Landlock are tested in CI on standard GitHub-hosted Linux runners.
- The hardened-pod rung is tested on a kind cluster in CI.
- The VM rung runs through Kata Containers for now (decided 2026-10-05). On the project owner’s Kubernetes cluster, the
vmisolation level is provided by a KataRuntimeClassrather than bysandboxddriving Firecracker directly. Kata can itself use Firecracker or Cloud Hypervisor underneath. Direct Firecracker with warm snapshot pools stays in the design for clusters and hosts that expose/dev/kvmto us, and is built after the Kata path.
Consequences
Section titled “Consequences”- Phase 3’s
vmrung is apoddriver with a KataruntimeClassName, reported as levelvm. This is simpler to operate, but sandboxes start in seconds rather than milliseconds, so it suits agent environments more than RL reward hot paths. - Validating the Kata rung needs a manual or scheduled workflow against that cluster, with credentials stored as repository secrets.
- The direct Firecracker driver (
sandboxd) moves after the Kata path. It is needed for millisecond-scale warm pools.