Repository navigation
feat(proxy): add discovery-driven application TLS passthrough - #4957
Draft
TaylorMutch wants to merge 2 commits into
Draft
TaylorMutch wants to merge 2 commits into
TaylorMutch wants to merge 2 commits into
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-4957.docs.buildwithfern.com/openshell |
This was referenced Oct 26, 2026
TaylorMutch
force-pushed
the
feat/4953-authoritative-app-urls/TaylorMutch
branch
from
October 27, 2026 03:15
a6d0833 to
e6e1927
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
October 27, 2026 03:15
d51549f to
6d0cb1e
Compare
TaylorMutch
force-pushed
the
feat/4953-authoritative-app-urls/TaylorMutch
branch
from
October 27, 2026 05:42
e6e1927 to
2574b9a
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
October 27, 2026 05:42
6d0cb1e to
151ee71
Compare
This was referenced Oct 27, 2026
TaylorMutch
changed the base branch from
feat/4953-authoritative-app-urls/TaylorMutch
to
feat/4668-discovery-readers/TaylorMutch
October 27, 2026 05:45
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
October 27, 2026 06:24
6d1fb23 to
9b730e6
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
October 27, 2026 06:24
151ee71 to
7624c50
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
October 27, 2026 06:25
9b730e6 to
8fef4ac
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
October 27, 2026 06:25
7624c50 to
5415439
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
October 27, 2026 06:46
8fef4ac to
8d568c1
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
October 27, 2026 06:46
5415439 to
8b71a26
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
October 27, 2026 21:06
8d568c1 to
de13e31
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
2 times, most recently
from
October 28, 2026 17:05
7cae154 to
299e56b
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
October 28, 2026 17:05
de13e31 to
05974d6
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
October 28, 2026 22:52
299e56b to
2fa7511
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
2 times, most recently
from
October 31, 2026 04:40
1f20104 to
c7e6faf
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
2 times, most recently
from
November 2, 2026 17:37
b9d8337 to
52a7568
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
2 times, most recently
from
November 2, 2026 23:22
1422643 to
ae5eb28
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
2 times, most recently
from
November 3, 2026 00:08
2428ed1 to
e3c7d16
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
November 3, 2026 00:08
ae5eb28 to
7a96836
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
November 3, 2026 19:09
e3c7d16 to
73fa12a
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
November 3, 2026 19:09
7a96836 to
442869f
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
November 4, 2026 18:43
73fa12a to
88817f9
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
2 times, most recently
from
November 4, 2026 18:52
a6e0702 to
159961a
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
November 4, 2026 18:52
88817f9 to
149f12f
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
November 4, 2026 21:56
159961a to
fe417d2
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
2 times, most recently
from
November 4, 2026 22:22
3726423 to
f7625e7
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
November 4, 2026 22:22
fe417d2 to
6f7d700
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
November 6, 2026 17:27
f7625e7 to
93c7f1e
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
November 6, 2026 17:27
6f7d700 to
f337bf1
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
November 6, 2026 18:48
93c7f1e to
be3684a
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
November 6, 2026 18:48
f337bf1 to
bc80c84
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
November 6, 2026 22:02
be3684a to
4c5a56d
Compare
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
November 6, 2026 22:02
bc80c84 to
052c76c
Compare
Route application TLS directly to discovered supervisor listeners, with bounded caches and connections, expiry and withdrawal, health endpoints, container/release packaging, and a standalone Helm chart. Support one workspace, a finite selected set, or all active workspaces through exclusive CLI and Helm settings. Validate complete snapshot scope before atomic cache replacement and retain credential reload on reconnect. Closes #4954 Refs #4668, #4669 Signed-off-by: Taylor Mutch <taylormutch@gmail.com>
Signed-off-by: Taylor Mutch <taylormutch@gmail.com>
TaylorMutch
force-pushed
the
feat/4668-discovery-readers/TaylorMutch
branch
from
November 9, 2026 19:08
052c76c to
e8603a5
Compare
TaylorMutch
force-pushed
the
feat/4954-sandbox-proxy/TaylorMutch
branch
from
November 9, 2026 19:08
4c5a56d to
90ed107
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
Add the optional openshell-sandbox-proxy discovery consumer. It uses exact TLS SNI and unexpired discovered routes to relay application TLS directly to owning supervisors, keeping payloads off the gateway.
Based on main at
cb836ea9d. Stacked onfeat/4668-discovery-readers/TaylorMutch.Related Issue
Closes #4954. Part of RFC 0017.
Changes
Consume snapshots and watches through the Rust SDK client for the separate
openshell.v1.ServiceDiscoveryservice.Support one workspace, selected workspaces, or all active workspaces with discovery-only credentials.
Bound route caches, connections, ClientHello parsing, retries, and setup deadlines; atomically replace validated snapshots.
Close affected streams on withdrawal, installation replacement, expiry, or authorization loss; reload credentials/trust on reconnect.
Add health/readiness/metrics, container and release wiring, and a standalone Helm chart with deployment and workspace-scope regression cases.
Release Notes
Testing
Discovery-service review integration: combined stack passed 642 core, 2,693 server, 54 Rust SDK, and nine proxy tests, including production TLS discovery-only access and proxy snapshot/watch withdrawal in single, finite, and all-workspace modes. Strict all-target Clippy, TypeScript SDK/protobuf checks, and Markdown/Mermaid validation passed. 42 PostgreSQL-dependent server tests were skipped. No new live-cluster or load qualification was performed.
Hostname integration: 111 standalone application-URL-layer tests and 120 combined-stack routing/schema regressions passed, including shared shutdown fencing and ingress URL stability. Strict Clippy for affected crates, protobuf/docs/Mermaid lint, and lockfile checks passed.
40 focused combined-stack Rust regression tests cover listener routing, route-limit concurrency, shutdown fencing, advertisements, discovery, and proxy behavior.
Local k3d validated the Service removal with dedicated push/poll, abrupt shared-owner takeover, HTTP/WebSockets, network-policy denial, freshness/withdrawal, outage recovery, and disabled-listener gateway access. Workload identity and memory survived owner changes.
Discovery API snapshots/watches and workspace-restricted discovery credentials drove two proxy replicas; both followed Pod-IP endpoints, graceful owner handover, and route withdrawal without per-sandbox app Services.
Helm lint/unit/parser/coherence/scaling checks, Python lint/format/type checks, and topology assertions passed.
Live Kubernetes validation preceded integration of the latest listener hardening;
focused Rust regressions validate that final integration. New-head CI is pending.
Qualification limits
Live HA validation exercised supervisor process/Pod loss on a local k3d cluster. Whole-node failure, real network partitions, metric-driven HPA, sustained production load, and published release artifacts remain unqualified. Grant-file projection contributes to revocation propagation time. Both ingress paths now share the gateway hostname format and label generator. The same installation identity and public HTTPS domain/port preserve service URLs when switching ingress. Installation-status presentation (#4670) remains separate work. Live Kubernetes runs above preceded hostname integration; the naming and shutdown-fence integration is validated by focused Rust regressions.
The example Kubernetes HTTPRoute controller is a deferred compatibility POC outside this stack.
Checklist
PR dependency order: #4941 → #4956 → #4963 → #4964 → #4957.