-
Notifications
You must be signed in to change notification settings - Fork 3.8k
feat(helm): add HTTPRoute support for Gateway API v1 #19729
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Add full HTTPRoute support for both gateway and component-level routing. Features: - Gateway HTTPRoute for simple routing through loki-gateway - Main HTTPRoute for component-level routing (distributor, query-frontend, ruler, compactor) - Support for all deployment modes (SingleBinary, SimpleScalable, Distributed) - HTTPRoute filters (header manipulation, redirects, URL rewrites) - Multiple parentRefs support for multi-gateway configurations - CI and integration tests Co-Authored-By: Claude <[email protected]> Signed-off-by: Aleksei Sviridkin <[email protected]>
Co-Authored-By: Claude <[email protected]> Signed-off-by: Aleksei Sviridkin <[email protected]>
Add preInstallScript to install Gateway API v1.4.0 CRDs before deploying the chart to fix integration test failures. Co-Authored-By: Claude <[email protected]> Signed-off-by: Aleksei Sviridkin <[email protected]>
|
hi @lexfrei, mind sharing a bit more about what HTTPRoute is and what issue this PR is addressing? |
|
@trevorwhitney Thanks for taking a look! Regarding the missing issue: HTTPRoute is the official successor to Ingress - it's part of the Kubernetes Gateway API project, which graduated to GA (v1.0) in October 2023 and is now the recommended standard for ingress traffic management in Kubernetes. Why no issue?
Prior art: What this PR provides:
References:
Happy to create a retroactive issue/LID if the team prefers formal process documentation, but I felt this was more of a "parity feature" than something requiring extensive design discussion. |
|
Hey @lexfrei to have the same experience across all Grafana Charts, could you please use the following pattern for values, which is used at Grafana Chart as well? |
Refactor Gateway API configuration to follow the same pattern as Grafana chart: - Rename gateway.httproute -> gateway.route - Rename httproute -> route - Add apiVersion and kind fields for flexibility - Use matches/filters/additionalRules structure - Update templates: httproute-gateway.yaml -> route-gateway.yaml, httproute.yaml -> route.yaml - Update CI and integration tests accordingly - Regenerate documentation This aligns with the pattern used across Grafana Helm charts for consistency. Co-Authored-By: Claude <[email protected]> Signed-off-by: Aleksei Sviridkin <[email protected]>
|
@trevorwhitney Thanks for the feedback! I've refactored the implementation to align with the Grafana chart pattern:
The structure now follows the same pattern as in the Grafana chart. Is this close enough to the established pattern, or are there additional adjustments you'd like to see? |
Add Gateway API CRDs installation step in helm-ci workflow before running chart-testing. This fixes the route integration test failures where HTTPRoute resources couldn't be created due to missing CRDs. The CRDs are installed after prometheus operator and before ct install, ensuring they are available when testing charts with route-values.yaml. Co-Authored-By: Claude <[email protected]> Signed-off-by: Aleksei Sviridkin <[email protected]>
bddd002 to
2fa45fd
Compare
Replace preInstallScript (not supported by helm-chart-toolbox) with dependencies.file to install Gateway API CRDs before Loki deployment. Tested locally: Gateway API CRDs install correctly, HTTPRoute resource created successfully, all pods running. Co-Authored-By: Claude <[email protected]> Signed-off-by: Aleksei Sviridkin <[email protected]>
Replace unsupported preInstallScript with dependencies.url field to install Gateway API CRDs before Loki deployment. Tested locally with helm-chart-toolbox: Gateway API CRDs install correctly, HTTPRoute resource created successfully, all pods running, test completed with exit code 0. Co-Authored-By: Claude <[email protected]> Signed-off-by: Aleksei Sviridkin <[email protected]>
What this PR does / why we need it:
This PR adds full HTTPRoute support (Gateway API v1) to the Loki Helm chart, providing a modern alternative to traditional Ingress resources for routing traffic to Loki components.
Features:
Which issue(s) this PR fixes:
N/A - New feature
Special notes for your reviewer:
Checklist
CONTRIBUTING.mdguide