Skip to content

Provide an official Helm chart for Gateway API CRDs #4809

@omerhanegbi

Description

@omerhanegbi

What would you like to be added:

An officially-maintained Helm chart published by SIG Network that installs the Gateway API CRDs (standard and experimental channels), versioned in lockstep with the existing release artifacts. Distribution model similar to karpenter-crd, cert-manager (installCRDs), or kube-prometheus-stack's CRD sub-chart — CRDs in templates/ with helm.sh/resource-policy: keep, supporting helm upgrade for schema updates.

This would supplement, not replace, the existing kubectl apply -f .../standard-install.yaml flow. Both distribution paths would remain supported.

Why this is needed:

The CRD Management guide correctly identifies CRDs as cluster-admin-owned infrastructure and asks implementations not to overwrite newer CRD versions they encounter. In practice, the ecosystem today does the opposite of what that guidance intends:

  • Most implementation charts (Istio, Traefik, kgateway, NGINX Gateway Fabric, etc.) either bundle their own copy of the CRDs behind a flag or tell users to kubectl apply the upstream YAML out-of-band.
  • When a cluster has multiple Gateway API consumers — increasingly common as ambient mesh, AWS LBC Gateway API, and per-tenant gateways coexist — there is no Helm-level coordination over CRD ownership. Whoever applied last wins, silently.
  • Users managing clusters via Helm-native tooling (Helmfile, Argo CD with Helm sources, Flux HelmReleases) currently have to special-case Gateway API CRDs as a separate kubectl/raw-manifest step outside their Helm workflow. This is friction that other foundational projects have already solved.
  • Several unofficial charts have appeared (e.g. dev2prod-hub/gateway-api-chart, jimangel/unofficial-gateway-api-helm) which demonstrates real demand but fragments the ecosystem and provides no upgrade-path guarantees from SIG Network.

An official chart would:

  1. Give implementation charts a single canonical dependency to declare, eliminating the "everyone bundles their own copy" pattern that the CRD Management guide already discourages.
  2. Make Helm's release ownership the enforcement mechanism for the "don't overwrite newer versions" rule, instead of relying on implementation authors to remember it.
  3. Bring Gateway API in line with the distribution pattern already established by other widely-deployed CRD-driven projects (cert-manager, Karpenter, Prometheus Operator), which cluster operators are already familiar with.
  4. Integrate cleanly with GitOps tooling without requiring a parallel raw-manifest pipeline alongside the Helm pipeline.

Prior discussion: #1590 (closed via stale bot, no technical resolution).

Happy to contribute a draft chart and CI integration if there's directional agreement from maintainers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.

    Type

    No type
    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