Skip to content

feat(vm): move supervisor outside guest boundary - #2945

Draft
drew wants to merge 1 commit into
codex/1737-rfc12-supervisor-primitivesfrom
codex/vm-host-supervisor
Draft

feat(vm): move supervisor outside guest boundary#2945
drew wants to merge 1 commit into
codex/1737-rfc12-supervisor-primitivesfrom
codex/vm-host-supervisor

Conversation

@drew

@drew drew commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

Use the VM backend as the first prototype implementation of RFC 0012 directly above the backend contract and supervisor primitives. This is PR 3 of 4 in the review stack.

The libkrun VM supervisor moves out of the guest boundary and onto the host while retaining the current custom guest kernel; the guest runs only an authenticated, portable process-supervision leaf.

Stack: #2941#2942this PR#2965.

The VM implementation uses the contract's single attach entry operation. The Docker attach-time boundary-establishment proof continues in #2965. Existing Kubernetes and Podman topologies remain on their legacy orchestration paths.

Related Issue

Part of #1737. Builds on RFC #2048 and the RFC 0012 contract/primitives stack.

Changes

  • Add openshell-isolation-vm as the reusable authenticated host/guest transport and protocol crate.
  • Run openshell-sandbox as the host-side logical supervisor and restrict the guest to workload lifecycle operations.
  • Add a VM-only topology activation path without importing the in-pod backend or changing other compute drivers.
  • Preserve the existing custom kernel, rootfs, overlay, and libkrun boot path.
  • Keep gateway credentials, policy, middleware, network enforcement, SSH, and relay registration outside the guest boundary.
  • Add guest lifecycle, exec, PTY, port-forward, mediation, and enforcement-confirmation operations.
  • Package a driver-controlled guest helper runtime for trusted ip and nft execution.
  • Update the sudo-free KVM runner, packaging, workflows, architecture documentation, and gateway configuration reference.

Testing

  • mise run pre-commit passes
  • cargo check -p openshell-isolation-vm -p openshell-sandbox -p openshell-driver-vm --all-targets
  • cargo test -p openshell-isolation-vm (6 passed)
  • cargo test -p openshell-driver-vm --lib (136 passed)
  • Sandbox VM topology CLI test
  • Real KVM e2e smoke via OPENSHELL_E2E_VM_TEST=smoke e2e/rust/e2e-vm.sh (passed in 92 seconds)

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture documentation updated

@copy-pr-bot

copy-pr-bot Bot commented Aug 26, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@github-actions

Copy link
Copy Markdown

@drew
drew force-pushed the codex/vm-host-supervisor branch from 4a8f295 to 532fa1b Compare August 26, 2026 07:08
@drew
drew changed the base branch from codex/rfc-0012-impl-base to codex/1737-rfc12-supervisor-primitives August 26, 2026 07:09
@drew
drew force-pushed the codex/vm-host-supervisor branch from 532fa1b to 02e80eb Compare August 26, 2026 08:50
@drew drew changed the title feat(vm): move supervisor outside guest boundary feat(isolation): prototype host-supervised VM and Docker boundaries Aug 26, 2026
@drew
drew force-pushed the codex/vm-host-supervisor branch from 7e10ae3 to 02e80eb Compare August 26, 2026 19:41
@drew drew changed the title feat(isolation): prototype host-supervised VM and Docker boundaries feat(vm): move supervisor outside guest boundary Aug 26, 2026
Signed-off-by: Drew Newberry <385+drew@users.noreply.github.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
@drew
drew force-pushed the codex/vm-host-supervisor branch from 02e80eb to be91699 Compare September 1, 2026 00:13
@copy-pr-bot

copy-pr-bot Bot commented Sep 1, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant