docs(design): streaming timeouts (BackendTrafficPolicy) for NebariApp#122
Closed
viniciusdc wants to merge 1 commit into
Closed
docs(design): streaming timeouts (BackendTrafficPolicy) for NebariApp#122viniciusdc wants to merge 1 commit into
viniciusdc wants to merge 1 commit into
Conversation
…ebariApp Adds a design doc proposing an opt-in routing.streaming flag on RoutingConfig that makes the operator emit an Envoy Gateway BackendTrafficPolicy disabling the default 15s HTTP request timeout and setting a 5-minute connection idle timeout. The policy targets all HTTPRoutes the operator owns for the NebariApp (main plus public when present), is owner-referenced for GC, and uses canned timeout values rather than exposing Envoy-typed knobs on the CRD. The companion proposal in docs/design/multi-backend-routes.md (per-route port overrides + ServiceReference.Namespace removal) is independent of this one.
9 tasks
Collaborator
Author
|
Closing — need to think more about the shape (boolean vs struct, canned values, foreign-policy handling). Branch |
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
Design document (no code in this PR — implementation will follow as a stacked PR). Proposes an opt-in
routing.streaming: trueflag onRoutingConfigthat makes the operator emit an Envoy GatewayBackendTrafficPolicycovering the NebariApp's HTTPRoutes, with canned timeout values that match common SSE / long-poll / gRPC streaming workloads:One policy, one or two
targetRefsentries (main HTTPRoute + public HTTPRoute whenpublicRoutesis set), owner-referenced to the NebariApp for GC.Why now
Envoy Gateway's 15s default
requestTimeoutcuts off any long-lived HTTP connection. The downstream PRopenteams-ai/nebari.openteams.ai#12is hand-rolling two separateBackendTrafficPolicyresources, eachtargetRefs-ing the operator-generated HTTPRoute by name — a fragile contract (the operator could rename its HTTPRoute and the policy silently stops matching) and one that pack authors shouldn't need to learn the Envoygateway.envoyproxy.io/v1alpha1schema for.Relationship to #120
Independent design. The companion design
multi-backend-routes.md(per-route port overrides +ServiceReference.Namespaceremoval) is in PR #120 and can land in either order. The only intersection: this design's policy targets the HTTPRoutes the other one produces, and the operator emits one rule per route — the same policy covers all rules.What the doc covers
streaming.goreconciler, RBAC bump forbackendtrafficpolicies, scheme registration in the main controller.StreamingReady=False (CRDMissing), rest of reconcile continues.ForeignPolicyExists.streamingvslongLived), default idle timeout value, whetherStreamingReadyshould blockReady(lean: no, graceful degradation).Test plan
routing.streaming: boolshape (vs. arouting.streamingTimeouts: { ... }struct)requestTimeout: 0s,connectionIdleTimeout: 300s)ForeignPolicyExistshandling (don't take ownership of foreign resources)Follow-up