feat(helm): Gateway API support; deprecate Ingress - #154
Merged
Conversation
Adds Gateway API resources to the chart and marks the Ingress block as deprecated, per @sansmoraxz's review feedback on wind-c#150 about ingress-nginx retirement (https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/). New resources: - `templates/httproute.yaml` (gateway.networking.k8s.io/v1) — routes the dashboard to a user-supplied Gateway via parentRefs. - `templates/tcproute.yaml` (gateway.networking.k8s.io/v1alpha2) — routes raw MQTT TCP. Requires a TCP-aware Gateway implementation (Envoy Gateway, Cilium, etc.). New `gateway:` values block with a master toggle, default parentRefs, and per-route overrides. Each route inherits the chart-level parentRefs when its own list is empty. Ingress deprecation: - values.yaml comment marks the block DEPRECATED with the upstream retirement reference. - values.schema.json marks the property `deprecated: true`. - NOTES.txt prints a migration warning when ingress.enabled=true. - README replaces the "Exposing MQTT externally" section with a Gateway-API-first guide; legacy Ingress kept as a fallback. The existing Ingress template is retained for back-compat. New deployments should set `gateway.enabled=true`. Render paths verified via helm template: - gateway.enabled=true with both routes + ingress.enabled=true (deprecation warning + both routes rendered) - gateway.dashboard.enabled=false, gateway.mqtt.enabled=true (TCPRoute only) - default values (no gateway resources rendered)
This was referenced May 6, 2026
Closed
The HTTPRoute now targets the broker's HTTP listener (REST API + /metrics on port 8080) rather than a dashboard, since wind-c#151 closed and the dashboard moved to a separate add-on module. Renames: - values.yaml: gateway.dashboard -> gateway.api - HTTPRoute resource name: <release>-dashboard -> <release>-api - README, NOTES.txt, schema, sub-path limitation updated to match - Chart.yaml changelog reframed (REST API + metrics, not dashboard) The HTTPRoute itself is still useful for users who want to expose the REST API or /metrics through Gateway API, just no longer dashboard-specific.
Contributor
Author
|
Pushed Changes from the previous push:
Render verified for the renamed values ( |
debsahu
marked this pull request as ready for review
May 8, 2026 16:21
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.
Adds Gateway API resources to the chart and marks the Ingress block as deprecated, per @sansmoraxz's review feedback on #150 about ingress-nginx retirement.
What's in
New resources
templates/httproute.yamlgateway.networking.k8s.io/v1templates/tcproute.yamlgateway.networking.k8s.io/v1alpha2New
gateway:values blockPer-route
parentRefsfalls back togateway.parentRefswhen empty, so the common case is oneparentRefs:entry on the chart-level block.Ingress deprecation
values.yamlcomment marks the block DEPRECATED with the upstream retirement reference.values.schema.jsonflags the propertydeprecated: true.NOTES.txtprints a migration warning wheningress.enabled=true.The existing
templates/ingress.yamlis retained for back-compat so existing users aren't broken on upgrade. Removal can land in a future major chart bump.Verification (
helm template ci .)gateway.enabled=true, both routes +ingress.enabled=truegateway.networking.k8s.io/v1) + TCPRoute (gateway.networking.k8s.io/v1alpha2) + Ingress all rendered; deprecation warning fires in NOTESgateway.dashboard.enabled=false,gateway.mqtt.enabled=truehelm lint .clean.Out of scope
templates/ingress.yaml. Defer to a future major bump (e.g. chart1.0.0) when enough time has passed for users to migrate.Gatewayresource. Convention is for the chart to ship Routes; users supply the Gateway viaparentRefs. Bundling a Gateway would couple the chart to one provider.Gatewaylistener; for TLS at the broker, the existingtls.*values still apply.Refs