Skip to content

feat: route node-web-app through the ionic-platform Envoy Gateway - #2

Merged
MarshallOfSound merged 2 commits into
mainfrom
claude/ionic-kit-envoy-gateway
Oct 22, 2026
Merged

MarshallOfSound merged 2 commits into
mainfrom
claude/ionic-kit-envoy-gateway

Conversation

@claude

@claude claude Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

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-platform Gateway 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/0 on HTTPRoute/server, and the template, CI example overlay and READMEs are updated to match. An adopting app's infra entry will need gateway_hostnames set so its DNS points at the Gateway; the migration runbook in electron/infra is being updated separately.


Generated by Claude Code

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
@claude
claude Bot requested a review from a team as a code owner October 22, 2026 05:23
@MarshallOfSound
MarshallOfSound enabled auto-merge (squash) October 22, 2026 05:43
@MarshallOfSound

Copy link
Copy Markdown
Member

@claude review

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread kustomize/node-web-app/httproute.yaml Outdated
…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

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code review found no issues

No high-confidence issues detected in this change.

@MarshallOfSound
MarshallOfSound merged commit 07503ed into main Oct 22, 2026
7 checks passed
@MarshallOfSound
MarshallOfSound deleted the claude/ionic-kit-envoy-gateway branch October 22, 2026 06:19
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.

2 participants