diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/controller.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/controller.go index a99d95c6ef2..877720539fa 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/controller.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/openapi/controller.go @@ -201,8 +201,10 @@ func buildVersionSpecs(crd *apiextensionsv1.CustomResourceDefinition, oldSpecs m if !v.Served { continue } - // Defaults are not pruned here, but before being served. spec, err := builder.BuildOpenAPIV2(crd, v.Name, builder.Options{V2: true}) + // Defaults must be pruned here for CRDs to cleanly merge with the static + // spec that already has defaults pruned + spec.Definitions = handler.PruneDefaults(spec.Definitions) if err != nil { return nil, false, err }