feat(apisix-ingress-controller): make Gateway API CRDs optional via crds.gatewayAPI.enabled - #1010
Merged
nic-6443 merged 1 commit intoSep 17, 2026
Conversation
…rds.gatewayAPI.enabled Move the vendored Gateway API v1.6.0 standard bundle out of crds/ into a template gated by crds.gatewayAPI.enabled (default true). CRDs already present in the cluster but not created by this release (for example installed by GKE) are left untouched, chart-managed CRDs get helm.sh/resource-policy: keep and are updated on helm upgrade. Fixes apache#958
AlinsRan
approved these changes
Sep 16, 2026
nic-6443
approved these changes
Sep 17, 2026
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.
Fixes #958. Alternative to #919.
Why
The chart ships the Gateway API CRDs in
crds/, which Helm installs once and never updates, cannot toggle, and cannot reconcile with CRDs that already exist in the cluster.On GKE 1.35 the Gateway API CRDs are pre-installed and guarded by a
ValidatingAdmissionPolicy, so users have to work around the chart with--skip-crdsand manualkubectl apply, which also skips the APISIX CRDs.What
crds/gwapi-crds.yamltogateway-api/standard-install.yaml, rendered by a template behindcrds.gatewayAPI.enabled(defaulttrue).helm.sh/resource-policy: keep, sohelm uninstallandcrds.gatewayAPI.enabled=falsenever delete them.crds/and keep following--skip-crds.Verified
kind, Helm 3.19 and 4.1: fresh install, pre-existing unowned CRDs (GKE-like), upgrade from chart 1.3.0,
helm upgradeupdating chart-owned CRDs,enabled=falseandhelm uninstallkeeping CRDs,helm templatewithout cluster access.