Repository navigation
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-4656.docs.buildwithfern.com/openshell |
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
drew
force-pushed
the
feat/4652-sandbox-initiated-control/drew
branch
from
October 16, 2026 22:08
f08c78a to
758a70e
Compare
This branch has not been deployed
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
New dedicated Kubernetes sandbox generations open their protected control connection to the supervisor. Existing running legacy generations keep their current connection; stop/start upgrades them automatically while preserving the boundary Service's UID and ClusterIP. No legacy rollout flag is required.
Only TCP dialing changes. TLS and gRPC roles, pinned runtime identity, supervisor bearer authentication, and isolation-backend lifecycle remain the same. This is an independent precursor to the shared-supervisor design in #4377.
Related Issue
Closes #4652
Changes
runtime-initiatedautomatically; reconciliation does not migrate a running generation. Gateway recovery that recreates both Pods also upgrades the generation.SandboxTransport::RuntimeInitiatedTcpandBoundaryListener::RuntimeInitiatedTlsTcpvariants, preserving legacy encodings and public RPCs.BoundaryTransportfor discovery and attachment. All stream sources share pinned TLS authentication; the private listener bounds pending handshakes and authenticated spares. Reuse existing cancellation, reconnect, and authenticated serving paths, with a spare connection for credential replacement.Testing
Rebased onto main at
35a3390db. Adapted reverse control to the published typed Sandbox Protocol and shared transport descriptor introduced on main. Existing unit suites and the commit checks passed; Kubernetes conformance passed 8/8, and the unchanged full Kubernetes E2E rerun passed 100/100 with four existing skips. The first full run had one SSH restart timing failure; its isolated rerun and the full rerun passed without source changes, so the cause remains unestablished. Earlier checks below predate this rebase. CI will validate the pushed commits.a4c848adb; unchanged running legacy Pod across gateway upgrade; automatic migration of stopped legacy sandboxes; stop/start migration of a running legacy sandbox; new and legacy generations side by side; retry after interruption between Service and Sandbox updates; exec; 300 KB upload/download; network allow/deny and control-port denial; gateway restart. Migrated Service UIDs/ClusterIPs and namespace fence UID/resourceVersion/spec remain unchanged. Fixtures were cleaned up.Cluster verification covers kube-router. Other CNIs and a forced mid-session boundary-network partition were not exercised; the targeted manual exercise was used in place of the full Kubernetes conformance lane. A procfs listener-closure assertion failed once in an earlier sandbox suite run, then passed 30 isolated runs and full suite reruns without code changes; its cause was not established.
Checklist