Implement full snapshot lifecycle: pause (snapshot + free resources), resume (UFFD-based lazy restore), and named snapshot templates that can spawn new sandboxes from frozen VM state. Key changes: - Snapshot header system with generational diff mapping (inspired by e2b) - UFFD server for lazy page fault handling during snapshot restore - Stable rootfs symlink path (/tmp/fc-vm/) for snapshot compatibility - Templates DB table and CRUD API endpoints (POST/GET/DELETE /v1/snapshots) - CreateSnapshot/DeleteSnapshot RPCs in hostagent proto - Reconciler excludes paused sandboxes (expected absent from host agent) - Snapshot templates lock vcpus/memory to baked-in values - Proper cleanup of uffd sockets and pause snapshot files on destroy
25 lines
765 B
Modula-2
25 lines
765 B
Modula-2
module git.omukk.dev/wrenn/sandbox
|
|
|
|
go 1.25.0
|
|
|
|
require (
|
|
connectrpc.com/connect v1.19.1
|
|
github.com/go-chi/chi/v5 v5.2.5
|
|
github.com/gorilla/websocket v1.5.3
|
|
github.com/jackc/pgx/v5 v5.8.0
|
|
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 (
|
|
github.com/bits-and-blooms/bitset v1.24.4 // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/jackc/pgpassfile v1.0.0 // indirect
|
|
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
|
|
github.com/jackc/puddle/v2 v2.2.2 // indirect
|
|
golang.org/x/sync v0.17.0 // indirect
|
|
golang.org/x/sys v0.42.0 // indirect
|
|
golang.org/x/text v0.29.0 // indirect
|
|
)
|