diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index c66df3721d2..3310c3058c5 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -16340,7 +16340,7 @@ "type": "array" }, "strategy": { - "description": "`strategy` specifies the conversion strategy. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the CR. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.", + "description": "`strategy` specifies the conversion strategy. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the CR. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information\n is needed for this option. This requires spec.preserveUnknownFields to be false.", "type": "string" }, "webhookClientConfig": { diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index 911f8c5a4c1..7b72759d1f9 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -531,7 +531,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS // unintentionally on either side: apiextensionsfeatures.CustomResourceValidation: {Default: true, PreRelease: featuregate.Beta}, apiextensionsfeatures.CustomResourceSubresources: {Default: true, PreRelease: featuregate.Beta}, - apiextensionsfeatures.CustomResourceWebhookConversion: {Default: false, PreRelease: featuregate.Alpha}, + apiextensionsfeatures.CustomResourceWebhookConversion: {Default: true, PreRelease: featuregate.Beta}, apiextensionsfeatures.CustomResourcePublishOpenAPI: {Default: true, PreRelease: featuregate.Beta}, apiextensionsfeatures.CustomResourceDefaulting: {Default: false, PreRelease: featuregate.Alpha}, diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto index 9308988f70e..47c06a296ad 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto @@ -107,7 +107,8 @@ message CustomResourceColumnDefinition { message CustomResourceConversion { // `strategy` specifies the conversion strategy. Allowed values are: // - `None`: The converter only change the apiVersion and would not touch any other field in the CR. - // - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option. + // - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information + // is needed for this option. This requires spec.preserveUnknownFields to be false. optional string strategy = 1; // `webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go index e5ed44f3cbf..e72a3c18e07 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go @@ -71,7 +71,7 @@ func init() { var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{ CustomResourceValidation: {Default: true, PreRelease: featuregate.Beta}, CustomResourceSubresources: {Default: true, PreRelease: featuregate.Beta}, - CustomResourceWebhookConversion: {Default: false, PreRelease: featuregate.Alpha}, + CustomResourceWebhookConversion: {Default: true, PreRelease: featuregate.Beta}, CustomResourcePublishOpenAPI: {Default: true, PreRelease: featuregate.Beta}, CustomResourceDefaulting: {Default: false, PreRelease: featuregate.Alpha}, }