Skip to content

Feature request: Add Gateway API HTTPRoute support as alternative to Ingress #285

Description

@BenjaminBanwart

Summary

Add support for generating a Gateway API HTTPRoute resource as an alternative to the existing Ingress resource in the Connect Helm chart.

Use cases

The Kubernetes Gateway API is the successor to the Ingress API and has been GA since Kubernetes 1.26. Many clusters are migrating from Ingress controllers to Gateway API implementations (e.g., Envoy Gateway, Istio, Cilium, Traefik). Users running these environments currently cannot use the chart's built-in ingress support and must manage HTTPRoute resources outside of the chart, which defeats the purpose of a Helm-managed deployment.

Proposed solution

Add a new connect.httpRoute values section (parallel to connect.ingress) that generates a gateway.networking.k8s.io/v1 HTTPRoute resource. Key design points:

  • Mutually exclusive with connect.ingress — Helm fails with a clear error if both are enabled.
  • parentRefs is required — references the user's existing Gateway resource (replaces the role of ingressClassName). Helm fails if enabled without any parentRefs.
  • Auto-generates a default rule routing all traffic (PathPrefix: /) to the Connect service on the correct port (TLS-aware), with an option to override via connect.httpRoute.rules.
  • No TLS block on the HTTPRoute — TLS termination is configured on the Gateway resource per Gateway API's separation of concerns.
  • Supports hostnames, labels, and annotations.

I have a working implementation ready to submit as a PR.

Is there a workaround to accomplish this today?

Users can manually create an HTTPRoute resource outside of the Helm chart, but this means the routing configuration is not managed alongside the rest of the Connect deployment, making upgrades and rollbacks more error-prone.

References & Prior Work

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions