Skip to content

feat(proxy): add discovery-driven application TLS passthrough - #4957

Draft
TaylorMutch wants to merge 1 commit into
feat/4668-discovery-readers/TaylorMutchfrom
feat/4954-sandbox-proxy/TaylorMutch
Draft

TaylorMutch wants to merge 1 commit into
feat/4668-discovery-readers/TaylorMutchfrom
feat/4954-sandbox-proxy/TaylorMutch

Conversation

@TaylorMutch

@TaylorMutch TaylorMutch commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

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.

Rebased onto main containing #4864. Stacked on feat/4668-discovery-readers/TaylorMutch.

Related Issue

Closes #4954. Part of RFC 0017.

The linked issue has no state:accepted label; the author has verified repository ADMIN access.

Changes

  • 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

  • After the internal RPC separation in feat(supervisor): advertise accepted application route installations #4940, this rebased layer independently passed locked Rust compilation with test targets.
  • Updated stack tip: 2,494 server library tests passed (34 ignored), 306 Kubernetes driver tests, RPC tracing coverage, SDK binding regeneration, and full repository pre-commit checks passed. The public discovery schema and generated SDK bindings are unchanged by the internal RPC refactor.
  • Earlier HA validation, before the internal RPC separation: 3,136 runtime library tests passed (34 ignored), 48 Rust SDK mock tests, 8 proxy tests, full Go SDK CI, and 412 gateway + 6 workspace + 6 proxy Helm tests passed.
  • Combined stack: full repository pre-commit (including strict Clippy), strict docs, and navigation checks passed.
  • Earlier live Kubernetes validation, before the internal RPC separation: two gateways, shared supervisors, and proxy replicas; direct/proxy TLS and HTTP/WebSockets, abrupt owner-process loss/recovery, populated 2→1→2→1 scaling, route renewal/withdrawal, and discovery grant narrowing/regrant passed. Workload Pod identity, PID, and in-memory state survived owner handoff.

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. Common hashed multi-gateway hostname integration (#4842) and installation-status presentation (#4670) remain separate work.

The example Kubernetes HTTPRoute controller is a deferred compatibility POC outside this stack.

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Relevant implementation, configuration, and API documentation updated

PR dependency order: #4936 → #4940 → #4941 → #4956 → #4963 → #4964 → #4957 → #4958.

@copy-pr-bot

copy-pr-bot Bot commented Oct 27, 2026

Copy link
Copy Markdown

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.

@github-actions

Copy link
Copy Markdown

@TaylorMutch
TaylorMutch added this pull request to stack #4942 October 27, 2026 02:54
@TaylorMutch
TaylorMutch force-pushed the feat/4953-authoritative-app-urls/TaylorMutch branch from a6d0833 to e6e1927 Compare October 27, 2026 03:15
@TaylorMutch
TaylorMutch force-pushed the feat/4954-sandbox-proxy/TaylorMutch branch from d51549f to 6d0cb1e Compare October 27, 2026 03:15
@TaylorMutch
TaylorMutch force-pushed the feat/4953-authoritative-app-urls/TaylorMutch branch from e6e1927 to 2574b9a Compare October 27, 2026 05:42
@TaylorMutch
TaylorMutch force-pushed the feat/4954-sandbox-proxy/TaylorMutch branch from 6d0cb1e to 151ee71 Compare October 27, 2026 05:42
@TaylorMutch
TaylorMutch removed this pull request from stack #4942 October 27, 2026 05:45
@TaylorMutch
TaylorMutch changed the base branch from feat/4953-authoritative-app-urls/TaylorMutch to feat/4668-discovery-readers/TaylorMutch October 27, 2026 05:45
@TaylorMutch
TaylorMutch added this pull request to stack #4965 October 27, 2026 05:46
@TaylorMutch
TaylorMutch removed this pull request from stack #4965 October 27, 2026 05:47
@TaylorMutch
TaylorMutch force-pushed the feat/4668-discovery-readers/TaylorMutch branch from 6d1fb23 to 9b730e6 Compare October 27, 2026 06:24
@TaylorMutch
TaylorMutch force-pushed the feat/4954-sandbox-proxy/TaylorMutch branch from 151ee71 to 7624c50 Compare October 27, 2026 06:24
@TaylorMutch
TaylorMutch force-pushed the feat/4668-discovery-readers/TaylorMutch branch from 9b730e6 to 8fef4ac Compare October 27, 2026 06:25
@TaylorMutch
TaylorMutch force-pushed the feat/4954-sandbox-proxy/TaylorMutch branch from 7624c50 to 5415439 Compare October 27, 2026 06:25
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>
@TaylorMutch
TaylorMutch force-pushed the feat/4668-discovery-readers/TaylorMutch branch from 8fef4ac to 8d568c1 Compare October 27, 2026 06:46
@TaylorMutch
TaylorMutch force-pushed the feat/4954-sandbox-proxy/TaylorMutch branch from 5415439 to 8b71a26 Compare October 27, 2026 06:46

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant