Draft
Conversation
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add a standalone
openshell-driver-vmcrate that owns the libkrun-based VM runtime and wireopenshell-serverto talk to it over the internalComputeDrivergRPC contract via a Unix domain socket (per rfc-0001).This keeps VM runtime assets and loader dependencies out of the gateway binary while preserving the existing sandbox create/exec flow.
This PR is marked draft because follow-up fixes are still needed for VM TLS credential wiring, driver-owned environment precedence, and startup validation of embedded VM assets.
Related Issue
None.
Changes
openshell-driver-vmcrate with embedded runtime assets, libkrun/gvproxy launch code, rootfs preparation, and a hidden helper mode for entering the VM runtime.openshell-serverto spawn the VM compute driver as a sibling process, connect to it over gRPC on a Unix domain socket, and drop the direct Cargo dependency on the VM runtime crate.openshell-core,openshell-server, local start scripts, and architecture docs.Testing
mise run pre-commitpassesAdditional verification:
cargo check -p openshell-servercargo test -p openshell-serverRUSTC_WRAPPER= OPENSHELL_VM_RUNTIME_COMPRESSED_DIR=/Users/anewberry/dev/openshell-d/target/vm-runtime-compressed cargo test -p openshell-driver-vmRUSTC_WRAPPER= OPENSHELL_SERVER_PORT=18080 make starttarget/debug/openshell sandbox create --gateway-endpoint http://127.0.0.1:18080 --no-bootstrap -- echo hiCurrent known failure:
mise run pre-commitstill fails inopenshell-cli/src/run.rsbecauseSandboxStatusno longer hasdriver_name/driver_configfields.Checklist