Conversation
|
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. |
|
🌿 Preview your docs: https://nvidia-preview-pr-3367.docs.buildwithfern.com/openshell |
ae89968 to
a786dfb
Compare
a786dfb to
9358190
Compare
a786dfb to
fd21261
Compare
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
529d392 to
f69c0fe
Compare
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
|
The limitations section here is unusually clear and it answers most of what I would have asked. Reading it alongside #3366 though, there now look like two ways to add an isolation primitive and I want to check which one to build against. This PR adds gVisor as an adapter inside the OpenShell sandbox runtime, reusing Is the adapter the intended path for new primitives, with the RFC 12 backend aimed at something else? Or are both supported, and is there a line between them? |
Summary
Add a gVisor adapter beneath the existing OpenShell Sandbox Protocol so Kubernetes sandboxes can run with GKE Sandbox on COS nodes without relying on Landlock or seccomp user notification. The native Linux adapter remains the default and retains its existing enforcement model.
This PR is intentionally a reduced-fidelity backend: gVisor provides the workload boundary, Kubernetes NetworkPolicy provides zero direct egress, and proxy-aware HTTP/HTTPS traffic is mediated through an authenticated reverse tunnel.
Related Issue
Related to #3361.
Stacked on #3366; review and merge that PR first.
Changes
native-linuxorgvisoradapter choice through the protected runtime descriptor and bind confirmation evidence to the selected mechanism.OpenShellRuntimeBackendand the authenticated Sandbox Protocol while adding an explicit HTTP/CONNECT proxy stream for gVisor.runtimeClassName: gvisor, inject loopback proxy environment variables, and omit the seccomp profile and unprivileged-port sysctl that GKE Sandbox does not support.Testing
mise run pre-commitpassescargo clippy --workspace --all-targets -- -D warningspassesmise run cicompletes: all relevant code checks passed, but the pre-existing deterministictest:e2e-parityfixture failed because both its baseline and candidate fake wrappers emitted no manifests or reportsKnown limitations
Checklist