Conversation
…ersistence, and fail-closed VMM lifecycle
|
Addressed review findings in commit
|
… process lifecycle, and add persistent restart recovery
|
Addressed follow-up review findings in commit
|
… flags, persist snapshot manifests, and reattach engine on restart
|
Addressed follow-up review findings in commit
|
Follow-up review of b9e42b5Result: needs revision The prior lifecycle and metadata issues are addressed, but these blockers remain:
The requested ref is not associated with the actual snapshot artifact, and
Recovery trusts any live PID from disk as Firecracker. PID reuse could cause Local |
…guest bootstrap, sanitize snapshot artifacts, and verify process identity on recovery
|
Addressed follow-up review findings in commit
|
Summary
This PR introduces the MicrovmDriver feasibility spike in
internal/driver/, implementing thedriver.Driverinterface for hardware-isolated microVM sandboxes in accordance with ADR-0003 and the Serverless Execution Substrate Bakeoff (Candidate C5).Changes
internal/driver/microvm.go: Implements thedriver.Driverinterface (Create,Suspend,Resume,Snapshot,Destroy,DestroyContainer,RemoveWorkspace,Capacity,List).MicrovmEngineinterface. Production Linux with KVM usesFirecrackerEngine; test suites and non-KVM dev environments useSimulatedEngine.DestroyContainer, deletes onRemoveWorkspaceandDestroy.internal/driver/contract.go: ExtendsworkspaceExiststo recognize*Microvm, allowingRunContractto run directly against the MicroVM driver.internal/driver/microvm_test.go: Runs all 11 subtests of the canonicaldriver.RunContractsuite, plus volume persistence, crash-path, prepull, and snapshot strip tests.cmd/runnerd/main.go: Adds--driver=docker|microvmflag (andRAINIER_RUNNER_DRIVERenv var support) to select between Docker and MicroVM drivers.Verification
go test ./internal/driver/... -racepassed (all 11 subtests ofRunContractpass).go test ./internal/runnerd/... -racepassed.check-module-path.sh,check-public-protocols.sh,check-public-control.sh,session-image-security-policy-test.py,go vet ./...).