Skip to content

feat(supervisor): advertise accepted application route installations - #4940

Draft
TaylorMutch wants to merge 1 commit into
feat/4666-supervisor-app-endpoints/TaylorMutchfrom
feat/4939-service-advertisements/TaylorMutch
Draft

TaylorMutch wants to merge 1 commit into
feat/4666-supervisor-app-endpoints/TaylorMutchfrom
feat/4939-service-advertisements/TaylorMutch

Conversation

@TaylorMutch

@TaylorMutch TaylorMutch commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Persist validated, expiring evidence of application routes installed by supervisors. Integrate the shared-supervisor ownership authority merged in #4864 so dedicated and shared installations can be advertised safely.

Rebased onto main at 9f1cdb4ef. Stacked on feat/4666-supervisor-app-endpoints/TaylorMutch.

Related Issue

Closes #4939. Part of RFC 0017.

Changes

  • Resolve trusted application endpoints through a dedicated internal ResolveSupervisorAppEndpoint compute RPC, independently of GetSandbox. Unsupported drivers withhold publication; resolution failures cannot fail ordinary sandbox observations.
  • Fence installation reports and discovery eligibility by runtime, configuration, session, credential epoch, current acknowledged pool owner, and process/member readiness.
  • Resolve shared application endpoints from trusted Kubernetes membership and Pod state, independently of runtime control addresses.
  • Revalidate durable authority before each serving lease; enforce absolute lease expiry and a shared listener serving-authority bound of at most 15 seconds, closing stale streams.
  • Preserve workload identity across owner changes; keep gateway-session identity independent of supervisor takeover identity.

Release Notes

Testing

  • Validated against main fdce6ef26: 2,557 server tests passed (34 ignored), 279 supervisor tests, 310 Kubernetes driver tests, 8 proxy tests, full Go SDK CI, and 431 gateway + 6 workspace + 6 proxy Helm tests. All eight PR layers independently passed locked Rust compilation with test targets. Repository pre-commit passed with SETUPTOOLS_SCM_PRETEND_VERSION_FOR_OPENSHELL=0.0.0; plain invocation hits an existing main-branch setuptools-scm failure parsing tag sdk/go/v0.1.6. The final advance to main 9f1cdb4ef changes only tests/suites/features/Cargo.lock in each validated layer. Live HA qualification was not rerun for this rebase.
  • RPC separation: 2,494 server library tests (34 ignored), 306 Kubernetes driver tests, explicit RPC tracing coverage, SDK regeneration, and full repository pre-commit checks passed. Regression coverage includes unsupported/unavailable resolution, wrong-sandbox response binding, independent sandbox observation, and remote forwarding.
  • 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

@TaylorMutch
TaylorMutch added this pull request to stack #4942 October 26, 2026 22:35
@TaylorMutch
TaylorMutch force-pushed the feat/4939-service-advertisements/TaylorMutch branch from 04a0ed7 to b89eaa2 Compare October 27, 2026 03:15
@TaylorMutch
TaylorMutch force-pushed the feat/4939-service-advertisements/TaylorMutch branch from b89eaa2 to c011626 Compare October 27, 2026 05:42
@TaylorMutch
TaylorMutch removed this pull request from stack #4942 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 added this pull request to stack #4966 October 27, 2026 06:24
@TaylorMutch
TaylorMutch force-pushed the feat/4939-service-advertisements/TaylorMutch branch 3 times, most recently from 40b3c69 to e1f8b17 Compare October 27, 2026 06:46
@TaylorMutch
TaylorMutch force-pushed the feat/4939-service-advertisements/TaylorMutch branch from e1f8b17 to 600d3d3 Compare October 27, 2026 21:06
Signed-off-by: Taylor Mutch <taylormutch@gmail.com>
@TaylorMutch
TaylorMutch force-pushed the feat/4939-service-advertisements/TaylorMutch branch from 600d3d3 to 0ce10f0 Compare October 28, 2026 17:05

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): advertise accepted application route installations

1 participant