You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit a344728
Browse filesBrowse the repository at this point in the historyBrowse files
Require each compute driver to map its native evidence to individual outer-fence guarantees, and reject incomplete projections before a boundary becomes ready. Exercise the assembled remote confirmation path for invalid audit, property, generation, and digest evidence.
BREAKING CHANGE: BoundaryConfig and SandboxRuntimeDescriptor use outer_fence projections rather than the earlier driver_fence representation. State written by earlier builds cannot be decoded; operators must stop and recreate affected sandboxes after upgrading.
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Copy file name to clipboardExpand all lines: architecture/sandbox.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -91,6 +91,21 @@ controller loss fails closed. A digest commits those guarantees to the native
91
91
driver evidence without teaching the shared contract about container networks,
92
92
Kubernetes objects, VM devices, or accelerator resources.
93
93
94
+
Each driver makes that projection explicitly. Non-empty native evidence alone
95
+
does not establish a guarantee:
96
+
97
+
| Driver | Native evidence | Guarantees projected by the driver |
98
+
|---|---|---|
99
+
| Docker | Pinned container ID, `network_mode=none`, and no unexpected network attachments | No workload route establishes default-deny, revocation, and controller-loss behavior; the attachment inspection establishes that no unmanaged route exists. |
100
+
| Podman | Pinned container ID, `--network=none`, and no unexpected network attachments | The same container-network facts establish the same four guarantees. |
101
+
| Kubernetes | NetworkPolicy UID and resource version, ingress and egress isolation, and zero workload egress rules | The persisted, selecting policy establishes default-deny and continued denial after revocation or controller loss; zero egress rules establish that no unmanaged route is permitted. |
102
+
| VM | Generation and zero guest network devices | The absent NIC establishes all four guarantees; approved traffic uses the separate supervisor-owned channel. |
103
+
104
+
The shared contract checks that all four guarantees are present, that the
105
+
projection names the admitted generation, and that its evidence digest matches
106
+
the value passed to the workload-side runtime. It does not infer guarantees or
107
+
interpret the native fields.
108
+
94
109
When the admitted main process exits, its status and retained terminal output
95
110
remain available. The confirmed sandbox and supervisor-owned access plane continue
96
111
to serve policy-authorized exec and loopback forwarding until explicit stop or
0 commit comments