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.

Based on main at d7b616895. Stacked on feat/4668-discovery-readers/TaylorMutch.

Related Issue

Closes #4954. Part of RFC 0017.

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

  • Hostname integration: 111 standalone application-URL-layer tests and 120 combined-stack routing/schema regressions passed, including shared shutdown fencing and ingress URL stability. Go SDK CI, 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.
  • Real Go SDK 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

  • 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
@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
@TaylorMutch
TaylorMutch force-pushed the feat/4668-discovery-readers/TaylorMutch branch from 8d568c1 to de13e31 Compare October 27, 2026 21:06
@TaylorMutch
TaylorMutch force-pushed the feat/4954-sandbox-proxy/TaylorMutch branch 2 times, most recently from 7cae154 to 299e56b Compare October 28, 2026 17:05
@TaylorMutch
TaylorMutch force-pushed the feat/4668-discovery-readers/TaylorMutch branch from de13e31 to 05974d6 Compare October 28, 2026 17:05
@TaylorMutch
TaylorMutch force-pushed the feat/4954-sandbox-proxy/TaylorMutch branch from 299e56b to 2fa7511 Compare October 28, 2026 22:52
@TaylorMutch
TaylorMutch force-pushed the feat/4668-discovery-readers/TaylorMutch branch from 05974d6 to 2441c08 Compare October 28, 2026 22:52
@TaylorMutch
TaylorMutch force-pushed the feat/4954-sandbox-proxy/TaylorMutch branch from 2fa7511 to 43d66d7 Compare October 29, 2026 01:16
@TaylorMutch
TaylorMutch force-pushed the feat/4668-discovery-readers/TaylorMutch branch 2 times, most recently from 1c8e5a4 to 5ec14a7 Compare October 30, 2026 17:57
@TaylorMutch
TaylorMutch force-pushed the feat/4954-sandbox-proxy/TaylorMutch branch from 43d66d7 to b74077d Compare October 30, 2026 17:57
@TaylorMutch
TaylorMutch force-pushed the feat/4668-discovery-readers/TaylorMutch branch from 5ec14a7 to d4a1630 Compare October 30, 2026 18:13
@TaylorMutch
TaylorMutch force-pushed the feat/4954-sandbox-proxy/TaylorMutch branch 2 times, most recently from 310d2a2 to 7e291af Compare October 30, 2026 21:11
@TaylorMutch
TaylorMutch force-pushed the feat/4668-discovery-readers/TaylorMutch branch from d4a1630 to a3be433 Compare October 30, 2026 21:11
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/4954-sandbox-proxy/TaylorMutch branch from 7e291af to 5f04422 Compare October 30, 2026 23:00
@TaylorMutch
TaylorMutch force-pushed the feat/4668-discovery-readers/TaylorMutch branch from a3be433 to 65dd109 Compare October 30, 2026 23:00

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