Repository navigation
feat: route node-web-app through the ionic-platform Envoy Gateway - #2
Merged
Merged
Conversation
ionic-platform is moving from ingress-nginx to Envoy Gateway. Replace the base's Ingress with an HTTPRoute on the shared ionic-platform Gateway and a per-route BackendTrafficPolicy that restates nginx's 1 MiB body cap and 60s limits, and closes idle upstream connections before Node's 5s keep-alive timeout. Overlays now patch /spec/hostnames/0 on HTTPRoute/server. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01UPgWv27ehWiLwH4a9MdeTF
MarshallOfSound
enabled auto-merge (squash)
October 22, 2026 05:43
MarshallOfSound
approved these changes
Oct 22, 2026
MarshallOfSound
approved these changes
Oct 22, 2026
Member
|
@claude review |
Contributor
Author
There was a problem hiding this comment.
Beyond the inline finding, I also checked whether the switch from the named port "http" to numeric port 80 matches the Service. It does: kustomize/node-web-app/service.yaml exposes port 80. I also checked that both overlays now patch HTTPRoute/server at /spec/hostnames/0, which matches the new base, and that no Ingress references are left in the manifests.
Extended reasoning...
The change swaps the node-web-app base's Ingress for an HTTPRoute and a BackendTrafficPolicy and updates two overlays and two READMEs to match. It touches no auth, crypto or data-handling code. I checked the backendRef port against service.yaml and the overlay patch paths against the new HTTPRoute, and neither is a problem.
…le limit ingress-nginx's 60s was proxy_read_timeout, a gap between reads, not a cap on the whole response. A 60s request timeout would cut off streams and downloads that are still sending data. Set the HTTPRoute's timeouts.request to 0s (which also overrides Envoy's 15s default) and rely on the BackendTrafficPolicy's streamIdleTimeout: 60s as the idle limit, as sudowoodo's trail route and agent-workflows already do. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01UPgWv27ehWiLwH4a9MdeTF
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.
ionic-platform is swapping ingress-nginx for Envoy Gateway, and since no app consumes the kit yet, this ships only the Gateway path: the node-web-app base's Ingress is replaced by an HTTPRoute on the shared
ionic-platformGateway plus a per-route BackendTrafficPolicy, both modelled on the ones already in sudowoodo and faraday. The policy keeps nginx's old behaviour (1 MiB body cap, 60s limit between reads with no cap on total duration) and closes idle upstream connections at 4s so Envoy never reuses one Node's 5s keep-alive timeout has just closed. Overlays now set the hostname by patching/spec/hostnames/0onHTTPRoute/server, and the template, CI example overlay and READMEs are updated to match. An adopting app's infra entry will needgateway_hostnamesset so its DNS points at the Gateway; the migration runbook in electron/infra is being updated separately.Generated by Claude Code