Add Firecracker backend for Linux VM isolation #342
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Replace the smolmachines backend on Linux with a Firecracker-based backend. smolmachines/libkrun has fundamental issues on Linux (see #332) that make it unsuitable:
smolvm machine exec -i -tserializes all exec callersFirecracker provides mature, KVM-based microVM isolation on Linux. Combined with macOS Containers on macOS, this gives VM-level isolation on both platforms using well-maintained VMMs.
Design
Guest communication: SSH over TAP
ssh -tfor PTY allocationNetworking: TAP + bridge per bottle
bb-<slug>) with a /30 subnettap-<slug>) attached to the bridgeRootfs: Docker image → ext4
docker create+docker exportto get the filesystem tarballKernel
~/.cache/bot-bottle/firecracker/vmlinuxSidecar
Scope
--backend=firecrackeror auto-selected on Linux when availableAcceptance criteria
BOT_BOTTLE_BACKEND=firecracker ./cli.py start <agent>launches a Firecracker VM