-
Notifications
You must be signed in to change notification settings - Fork 97
Description
We are encountering a failure when running cloud-provider-kind on a Kind cluster using Kubernetes v1.30.0.
During startup, cloud-provider-kind attempts to install Gateway API CRDs from the standard channel. However, installation fails when creating the CRD:
tlsroutes.gateway.networking.k8s.io
The failure is caused by a CEL validation rule referencing isIP, which the Kubernetes API server rejects.
As a result:
• cloud-provider-kind exits during startup
• the LoadBalancer controller never starts
• LoadBalancer services in the cluster never receive an external IP
This effectively breaks CI environments that rely on cloud-provider-kind to provide LoadBalancer functionality in Kind clusters.
Error Logs
`Failed to install Gateway API CRDs
error processing embedded CRDs from crds/standard: failed to create CRD "tlsroutes.gateway.networking.k8s.io"
CustomResourceDefinition.apiextensions.k8s.io "tlsroutes.gateway.networking.k8s.io" is invalid:
spec.versions[0].schema.openAPIV3Schema.properties[spec].properties[hostnames].x-kubernetes-validations[0].rule:
Invalid value: apiextensions.ValidationRule{Rule:"self.all(h, !isIP(h))"}
compilation failed: ERROR: :1:18: undeclared reference to 'isIP'
| self.all(h, !isIP(h))
| .................^`
After this error:
Failed to start cloud controller Unable to sync caches Shutting down service controller
Environment
Kind cluster:
kind v0.xx.x
node image: kindest/node:v1.30.0
Kubernetes:
Client Version: v1.30.0
Server Version: v1.30.0
cloud-provider-kind:
built from repository (main branch)
Workaround
Running cloud-provider-kind with Gateway API disabled works:
bin/cloud-provider-kind --gateway-channel=disabled