Skip to content

feat(supervisor): add independent application listener and endpoints - #4936

Draft
TaylorMutch wants to merge 1 commit into
mainfrom
feat/4666-supervisor-app-endpoints/TaylorMutch
Draft

TaylorMutch wants to merge 1 commit into
mainfrom
feat/4666-supervisor-app-endpoints/TaylorMutch

Conversation

@TaylorMutch

@TaylorMutch TaylorMutch commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Add an opt-in supervisor TLS listener for declared HTTP and WebSocket services. Application traffic connects directly to the owning supervisor and sandbox loopback connector, bypassing the gateway.

Related Issue

Closes #4666. Part of RFC 0017.

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

Changes

  • Add listener enablement, domain, app-port, and Kubernetes TLS configuration; default to disabled.
  • Provide optional dedicated supervisor Services. Shared application traffic uses the owning member Pod IP and app port without a shared headless Service.
  • Route exact declared hosts through the sandbox connector, isolate per-sandbox teardown, and document DNS, TLS, and ingress authentication responsibilities.

Release Notes

The application listener remains opt-in and disabled by default.

Testing

  • Latest main rebase (2c31ac7e6): 2,553 server tests passed (34 ignored), 211 supervisor + 310 Kubernetes driver tests, 8 proxy tests, full Go SDK CI, 431 gateway + 6 workspace + 6 proxy Helm tests, and full repository pre-commit checks passed. All eight rebased layers independently passed locked Rust compilation with test targets. Dedicated supervisor rendering also verifies destination-CA delivery with the app listener enabled and disabled. Signed-OIDC browser regression covers hashed-host login, single-use redemption, authenticated sessions, cross-installation rejection, and anonymous denial.
  • This layer independently passed locked Rust compilation with test targets.
  • Combined stack: 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.
  • Live Kubernetes stack: 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. Main now includes #4842 for gateway-mediated hashed hostnames. Direct application-listener/discovery hostnames remain readable; extending hashed naming to that path 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

Draft stack: #4936 → #4940 → #4941 → #4956 → #4963 → #4964 → #4957 → #4958.

@copy-pr-bot

copy-pr-bot Bot commented Oct 26, 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

Signed-off-by: Taylor Mutch <taylormutch@gmail.com>
@TaylorMutch
TaylorMutch force-pushed the feat/4666-supervisor-app-endpoints/TaylorMutch branch from a816fa1 to dfb34da Compare October 27, 2026 21:06

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.

feat(supervisor): add an independent sandbox application listener

1 participant