Implements Phase 1: boot a Firecracker microVM, execute a command inside it via envd, and get the output back. Uses raw Firecracker HTTP API via Unix socket (not the Go SDK) for full control over the VM lifecycle. - internal/vm: VM manager with create/pause/resume/destroy, Firecracker HTTP client, process launcher with unshare + ip netns exec isolation - internal/network: per-sandbox network namespace with veth pair, TAP device, NAT rules, and IP forwarding - internal/envdclient: Connect RPC client for envd process/filesystem services with health check retry - cmd/host-agent: demo binary that boots a VM, runs "echo hello", prints output, and cleans up - proto/envd: canonical proto files with buf + protoc-gen-connect-go code generation - images/wrenn-init.sh: minimal PID 1 init script for guest VMs - CLAUDE.md: updated architecture to reflect TAP networking (not vsock) and Firecracker HTTP API (not Go SDK)
13 lines
308 B
Modula-2
13 lines
308 B
Modula-2
module git.omukk.dev/wrenn/sandbox
|
|
|
|
go 1.25.0
|
|
|
|
require (
|
|
connectrpc.com/connect v1.19.1
|
|
github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5
|
|
github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f
|
|
google.golang.org/protobuf v1.36.11
|
|
)
|
|
|
|
require golang.org/x/sys v0.41.0 // indirect
|