Repository navigation
doc: add aggregate host shares to the responsibility map - #470
Merged
Merged
Conversation
The pinned OpenVMM shares several host directories through the microVM's single virtio-fs slot as children of one aggregate. NVX's run and sandbox commands now attach several shares that way, the guest binds each child at its target, and the aci_edge_sandboxes backend exports mapped paths as aggregate children and sends the guest a host-mapping table. Name the components responsible for each. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The documentation accurately reflects the current launcher, backend, OpenVMM, and guest implementations.
0 open findings
What changed in this PR
Updates the component responsibility map to identify ownership of aggregate host-share composition, policy, transport, and guest-side binding.
Changes:
- Expands OpenVMM and NVX launcher ownership for aggregate virtio-fs shares.
- Documents backend and guest responsibilities for host mappings and binds.
| File | Description |
|---|---|
doc/design/code-ownership-map.md |
Adds aggregate host-share responsibilities to the ownership map. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Pedro Henrique Penna (ppenna)
deleted the
doc-sync/ownership-map-shares
branch
October 10, 2026 13:37
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
The component responsibility map predates the aggregate virtio-fs work. The pinned OpenVMM now shares several host directories through the microVM's single virtio-fs slot as children of one aggregate. NVX's
runandsandboxcommands attach several shares that way, the guest binds each child at its target, and theaci_edge_sandboxesOpenVMM backend exports mapped paths as aggregate children and sends the guest a host-mapping table. The map named no owner for any of this, so contributors following it from the design index could not find where share composition, per-child policy, or the guest-side binds live. This PR names those owners. The contracts themselves stay in Sandbox filesystem and agent architecture, which already describes them.OpenVMM SHA (pinned
openvmmgitlink):7bf0ee28b826374a2d386067df0456b81bcae818. The NVX base isorigin/devat3184c76f9afebe8be793965dfcb164070b166e71.Changes
All changes are in
doc/design/code-ownership-map.md.openvmm/openvmm/openvmm_defs/src/microvm.rs(MICROVM_FILESYSTEM_SLOTS: [_; 1]);openvmm/openvmm/openvmm_entry/src/cli_args/microvm.rs(--mount-aggregate: "The aggregate's root is read-only, only the guest's root user may enter it";--mount-child NAME,HOST_PATH[,ro|rw]; policy paths attributed to the containing child);openvmm/vm/devices/virtio/virtiofs/src/aggregate.rs; OpenVMM commits3072d7a91,3bb911803,efdf5df20,7bf0ee28brun/sandboxhost shares: one share attached directly or several as aggregate children, their pre-launch checks, and thenvx_share=tokens.scripts/nvx_tools/sandbox.py(mounts_openvmm_arguments,aggregate_child_name,aggregate_share_tokens);scripts/nvx.py(--mount-aggregate); commit74bb05291aci_edge_sandboxesdefault backend row: host-path export is aggregate children and their access policy, and the backend delivers the host-mapping table.aci_edge_sandboxes/src/openvmm/filesystem.rs(--mount-aggregate,nvx_maps=);aci_edge_sandboxes/src/openvmm/session.rs(sendsAPP_MAPS); commit55c31c4a5guest/common/init(calls/sbin/nvx-hostmount);guest/common/nvx-hostmount(virtfs_aggregate=1,nvx_share=);guest/common/nvx-init-agent(mount_live_shares)MAPSrequests rather thannvx_map=tokens.guest/common/nvx-managed-agent.c(APP_MAPS,MAPS_TOKEN "nvx_maps="); commit55c31c4a5Conservative choices:
55c31c4a5states that the host does not enforce a read-only path inside a read-write mapping.Follow-ups (out of scope)
doc/openvmm-upstream-roadmap.mddescribes OpenVMM fork tip2728f33ea(2026-10-01). The pin is now 139 commits past it, so its upstream status and commit-to-PR mapping are stale. It needs a refresh against the current fork, or a clearly dated status note.scripts/setup/README.mdis documentation outsidedoc/. Relocating it means editing links indoc/setup.mdanddoc/ci.md, which open PRs Adopt bind-once microVM image slots #406 and test-microvm: pause and resume a microVM through OpenVMM state control #405 touch. CI also classifies that path as a runner input (scripts/test_nvx_tools.py,test_ci_change_classification_selects_suites_by_input), so moving it is not a documentation-only change.unittest_results.txtis a tracked test-output file at the repository root, present since the initial commit, and appears to be a stray artifact. It's a code-side cleanup, not a doc change.ci.md,usage.md,run.md,setup.md,benchmarks.md, and several design chapters) were left alone.Validation
python -m unittest scripts.test_nvx_tools.CliTests scripts.test_performance.PerformanceTests: Ran 110 tests, OK (skipped=1).doc/design.md, which links to it: every relative link and anchor resolves, the changed file has one H1 and balanced fences, anddoc/design.mdlinks every chapter indoc/design/. Result: OK.git diff --check: clean.python scripts\nvx.py verify: passed (submodule at7bf0ee28bmatchesHEAD:openvmm).doc/design/code-ownership-map.mdonly (documentation-only).