feat: release apisix-ingress-controller 2.2.0 - #996
Open
AlinsRan wants to merge 2 commits into
Open
Conversation
The Gateway API CRDs move from v1.3.0 to v1.6.0, which the controller requires from this release, and the bundle now carries ListenerSet and the standard channel's safe-upgrades ValidatingAdmissionPolicy along with it. The chart also grants what 2.2.0 needs and did not have: l4routepolicies and their status for the new L4RoutePolicy, and configmaps, which downstream mTLS reads the CA from. Without them both features fail on a chart install while the release notes say they work.
2.2.0 serves the TCPRoute and UDPRoute validating webhooks at /validate-gateway-networking-k8s-io-v1-* rather than -v1alpha2-*, so the chart sent the API server to paths the controller no longer answers.
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.
Description
Releases apisix-ingress-controller 2.2.0, tagged as 2.2.0.
Chart.yaml:appVersion2.1.0 -> 2.2.0, chartversion1.2.2 -> 1.3.0values.yamland the generatedREADME.md: controller image tag 2.2.0. The ADC sidecar stays at 0.27.1, which is what the release pins.crds/: regenerated withmake helm-build-crdsfrom the 2.2.0 tag.Gateway API 1.6.0
The controller moved to Gateway API 1.6.0 in this release, so the bundled CRDs move with it, from v1.3.0. Two things come along with the standard channel that the v1.3.0 bundle did not carry:
ListenerSet, a new CRD.safe-upgrades, aValidatingAdmissionPolicyand its binding.admissionregistration.k8s.io/v1is GA from Kubernetes 1.30, and 2.2.0 declares 1.31+ as its supported version, so this is inside the supported range. It does mean a cluster older than 1.30 that could install the previous chart cannot install this one.RBAC the release needs and the chart did not grant
Comparing the rendered
ClusterRoleagainstconfig/rbac/role.yamlat the 2.2.0 tag turned up three missing resources, all of which would fail quietly:l4routepoliciesandl4routepolicies/status, for theL4RoutePolicyCRD #2791 adds. The CRD would install and the controller would never reconcile it.configmaps, which downstream mTLS #2792 reads the CA from.frontendValidationwould fail to resolve itscaCertificateRefs.After the change the rendered role covers everything the controller declares. The three resources the chart grants beyond it (
tokenreviews,subjectaccessreviews,endpoints) are the chart's own metrics authentication and endpoint access, unchanged.Webhook paths the release moved
#2839 reads the L4 routes through
gateway.networking.k8s.io/v1, and the webhook paths moved with them. The chart still sent the API server to thev1alpha2paths, which 2.2.0 does not answer, so every TCPRoute and UDPRoute admission would fail against a path that is not there:vtcproute-v1alpha2.kb.iovtcproute-v1.kb.io/validate-gateway-networking-k8s-io-v1alpha2-tcproute…-v1-tcprouteapiVersions: ["v1alpha2"]apiVersions: ["v1"]Same for
udproute. The rendered configuration now matchesconfig/webhook/manifests.yamlat the 2.2.0 tag exactly, all twelve webhooks.Verification
helm lintpasses,helm templaterendersapache/apisix-ingress-controller:2.2.0andghcr.io/api7/adc:0.27.1, the CRD bundles parse and carry 12 and 10 CustomResourceDefinitions withgateway.networking.k8s.io/bundle-version: v1.6.0, andl4routepoliciesis present in the bundle. The renderedClusterRoleandValidatingWebhookConfigurationwere both diffed against their sources at the 2.2.0 tag rather than eyeballed.