ateom: prepare gVisor sandbox during image pull - #984
Conversation
|
Thanks — agreed. The issue's statement that "nothing about the sandbox itself depends on the actor image or checkpoint" is too broad for microVM: its boot/restore requires the application rootfs to be staged for virtiofsd/find-paths. This PR intentionally implements only the gVisor cold-Run optimization. microVM returns All Restore paths, including FULL and DATA_ON_GOLDEN, are unchanged. They still wait for checkpoint download and OCI preparation before calling Therefore this PR is related to #968, but does not implement early microVM boot or close the microVM/Restore portions of the issue. |
|
We're doing uVM-first currently, so I'm not super keen to see new complications that are only implemented for gvisor. Earlier in the project we only had gvisor but we've closed the feature gap (not performance yet, in progress). Can we please look at how this would make sense for uVM before changing the APIs? Thank you. |
Related to #968.
This implements the cold-start portion of the issue. Restore paths are intentionally unchanged because FULL and DATA_ON_GOLDEN restore boot from a memory image, and DATA restore has different dependencies.
Summary
PrepareSandboxandDiscardPreparedSandboxRPCs, including idempotency, request matching, and retryable partial cleanupRunWorkloadpath when an ateom runtime does not implement the new RPCsSynchronization
RunWorkloadremains the barrier: atelet calls it only after both the prepared sandbox and every application OCI bundle are ready. If either parallel leg fails, atelet discards the prepared sandbox with a detached, bounded cleanup context.Testing
make verifyrunscin throwaway user, mount, and network namespacesPrepareSandboxRunWorkloadUnimplemented