[PR #339] [MERGED] feat(open-webui): add Kubernetes Gateway API support via HTTPRoute #344

Closed
opened 2026-02-15 19:17:29 -05:00 by yindo · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/helm-charts/pull/339
Author: @x64nik
Created: 1/15/2026
Status: Merged
Merged: 2/13/2026
Merged by: @westbrook-ai

Base: mainHead: x64nik/feature/gateway-api-support


📝 Commits (4)

  • 0020bbe added k8s gateway api route template
  • 2879f2a fix - missing filter and matches block
  • 969593f docs: add details about path prefix support
  • f3a6cca fix: merge main, version update

📊 Changes

5 files changed (+142 additions, -5 deletions)

View changed files

📝 charts/open-webui/Chart.lock (+3 -3)
📝 charts/open-webui/Chart.yaml (+1 -1)
📝 charts/open-webui/README.md (+13 -1)
charts/open-webui/templates/route.yaml (+85 -0)
📝 charts/open-webui/values.yaml (+40 -0)

📄 Description

feat(open-webui): add Kubernetes Gateway API support via HTTPRoute

Description

This PR adds support for the Kubernetes Gateway API by introducing an HTTPRoute resource template, enabling modern ingress routing alongside the existing Ingress support.

Use Case

Users with:

  • Kubernetes Gateway API controllers (e.g., Istio, Envoy Gateway, Kong, Cilium) who want to leverage the next-generation routing capabilities
  • Organizations standardizing on Gateway API instead of traditional Ingress resources
  • Need for HTTPS redirect functionality at the Gateway level

Currently, the chart only supports traditional Kubernetes Ingress. This prevents users from utilizing Gateway API's enhanced features like protocol-specific routing, more sophisticated matching rules, and better multi-tenancy support.

Changes

  1. templates/route.yaml: New template for HTTPRoute resource with:

    • Configurable API version and route kind (HTTPRoute, GRPCRoute, etc.)
    • Support for multiple parent Gateway references
    • Optional HTTPS redirect with automatic HTTP→HTTPS route creation
    • Flexible hostname and path matching
    • Custom filters and additional rules support
  2. values.yaml: Added route configuration section with:

    • enabled flag (default: false for backwards compatibility)
    • Configurable apiVersion and kind
    • hostnames, parentRefs, matches, and filters configuration
    • httpsRedirect option for automatic HTTP→HTTPS redirection
    • Support for additionalRules for advanced use cases
  3. Chart.yaml: Version bump required (suggest incrementing MINOR version)

  4. README.md: Auto-generated via helm-docs

Backwards Compatibility

Fully backwards compatible. The feature is opt-in via route.enabled=false by default:

  • Existing Ingress-based deployments are unaffected
  • Users can enable Gateway API support by setting route.enabled=true
  • Both Ingress and HTTPRoute can coexist if needed

Redacted values.yaml Used for Testing

route:
  enabled: true
  hostnames:
    - "open-webui.homelab.local"
  parentRefs:
    - name: open-webui-gw
  matches:
    - path:
        type: PathPrefix
        value: /
  httpsRedirect: true

Verification

  • helm template with default values produces no HTTPRoute (unchanged behavior)
  • helm template --set route.enabled=true --set route.hostnames={example.com} --set route.parentRefs[0].name=my-gateway produces HTTPRoute
  • helm template with httpsRedirect=true produces both HTTP redirect route and main HTTPS route
  • Verified route template renders with various Gateway API versions (v1, v1alpha2)
  • Deployed to talos cluster with Gateway API controller and verified routing works correctly
  • Verified HTTPS redirect functionality routes HTTP traffic to HTTPS

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/open-webui/helm-charts/pull/339 **Author:** [@x64nik](https://github.com/x64nik) **Created:** 1/15/2026 **Status:** ✅ Merged **Merged:** 2/13/2026 **Merged by:** [@westbrook-ai](https://github.com/westbrook-ai) **Base:** `main` ← **Head:** `x64nik/feature/gateway-api-support` --- ### 📝 Commits (4) - [`0020bbe`](https://github.com/open-webui/helm-charts/commit/0020bbea6fcbe696ceb9f6fe7612af5d8df456ff) added k8s gateway api route template - [`2879f2a`](https://github.com/open-webui/helm-charts/commit/2879f2ae60954bea1aa6479b47e4b9cfe1ecb39c) fix - missing filter and matches block - [`969593f`](https://github.com/open-webui/helm-charts/commit/969593f07c4dc26984c0d845c0f0c11fb6dd3a19) docs: add details about path prefix support - [`f3a6cca`](https://github.com/open-webui/helm-charts/commit/f3a6cca82fb70319c9d5ef224d82713df7f147a0) fix: merge main, version update ### 📊 Changes **5 files changed** (+142 additions, -5 deletions) <details> <summary>View changed files</summary> 📝 `charts/open-webui/Chart.lock` (+3 -3) 📝 `charts/open-webui/Chart.yaml` (+1 -1) 📝 `charts/open-webui/README.md` (+13 -1) ➕ `charts/open-webui/templates/route.yaml` (+85 -0) 📝 `charts/open-webui/values.yaml` (+40 -0) </details> ### 📄 Description # feat(open-webui): add Kubernetes Gateway API support via HTTPRoute ## Description This PR adds support for the Kubernetes Gateway API by introducing an `HTTPRoute` resource template, enabling modern ingress routing alongside the existing Ingress support. ## Use Case Users with: * Kubernetes Gateway API controllers (e.g., Istio, Envoy Gateway, Kong, Cilium) who want to leverage the next-generation routing capabilities * Organizations standardizing on Gateway API instead of traditional Ingress resources * Need for HTTPS redirect functionality at the Gateway level Currently, the chart only supports traditional Kubernetes Ingress. This prevents users from utilizing Gateway API's enhanced features like protocol-specific routing, more sophisticated matching rules, and better multi-tenancy support. ## Changes 1. **`templates/route.yaml`**: New template for HTTPRoute resource with: - Configurable API version and route kind (HTTPRoute, GRPCRoute, etc.) - Support for multiple parent Gateway references - Optional HTTPS redirect with automatic HTTP→HTTPS route creation - Flexible hostname and path matching - Custom filters and additional rules support 2. **`values.yaml`**: Added `route` configuration section with: - `enabled` flag (default: `false` for backwards compatibility) - Configurable `apiVersion` and `kind` - `hostnames`, `parentRefs`, `matches`, and `filters` configuration - `httpsRedirect` option for automatic HTTP→HTTPS redirection - Support for `additionalRules` for advanced use cases 3. **`Chart.yaml`**: Version bump required (suggest incrementing MINOR version) 4. **`README.md`**: Auto-generated via `helm-docs` ## Backwards Compatibility ✅ Fully backwards compatible. The feature is opt-in via `route.enabled=false` by default: * Existing Ingress-based deployments are unaffected * Users can enable Gateway API support by setting `route.enabled=true` * Both Ingress and HTTPRoute can coexist if needed ## Redacted `values.yaml` Used for Testing ```yaml route: enabled: true hostnames: - "open-webui.homelab.local" parentRefs: - name: open-webui-gw matches: - path: type: PathPrefix value: / httpsRedirect: true ``` ## Verification * ✅ `helm template` with default values produces no HTTPRoute (unchanged behavior) * ✅ `helm template --set route.enabled=true --set route.hostnames={example.com} --set route.parentRefs[0].name=my-gateway` produces HTTPRoute * ✅ `helm template` with `httpsRedirect=true` produces both HTTP redirect route and main HTTPS route * ✅ Verified route template renders with various Gateway API versions (`v1`, `v1alpha2`) * ✅ Deployed to talos cluster with Gateway API controller and verified routing works correctly * ✅ Verified HTTPS redirect functionality routes HTTP traffic to HTTPS --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
yindo added the pull-request label 2026-02-15 19:17:29 -05:00
yindo closed this issue 2026-02-15 19:17:29 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: open-webui/helm-charts#344