mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
Strip defaults in new places
This commit is contained in:
parent
07a40273eb
commit
de4abee3ef
@ -42,5 +42,6 @@ go_test(
|
||||
deps = [
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library",
|
||||
"//vendor/github.com/go-openapi/spec:go_default_library",
|
||||
"//vendor/k8s.io/kube-openapi/pkg/handler:go_default_library",
|
||||
],
|
||||
)
|
||||
|
@ -24,12 +24,15 @@ import (
|
||||
"github.com/go-openapi/spec"
|
||||
|
||||
"k8s.io/apimachinery/pkg/util/diff"
|
||||
"k8s.io/kube-openapi/pkg/handler"
|
||||
)
|
||||
|
||||
func TestOpenAPIRoundtrip(t *testing.T) {
|
||||
dummyRef := func(name string) spec.Ref { return spec.MustCreateRef("#/definitions/dummy") }
|
||||
for name, value := range GetOpenAPIDefinitions(dummyRef) {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
// TODO(kubernetes/gengo#193): We currently round-trip ints to floats.
|
||||
value.Schema = *handler.PruneDefaultsSchema(&value.Schema)
|
||||
data, err := json.Marshal(value.Schema)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
|
@ -1320,7 +1320,8 @@ func buildOpenAPIModelsForApply(staticOpenAPISpec *goopenapispec.Swagger, crd *a
|
||||
|
||||
specs := []*goopenapispec.Swagger{}
|
||||
for _, v := range crd.Spec.Versions {
|
||||
s, err := builder.BuildSwagger(crd, v.Name, builder.Options{V2: false, StripDefaults: true, StripValueValidation: true, StripNullable: true, AllowNonStructural: true})
|
||||
// Defaults are not pruned here, but before being served.
|
||||
s, err := builder.BuildSwagger(crd, v.Name, builder.Options{V2: false, StripDefaults: false, StripValueValidation: true, StripNullable: true, AllowNonStructural: true})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -1331,7 +1332,6 @@ func buildOpenAPIModelsForApply(staticOpenAPISpec *goopenapispec.Swagger, crd *a
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
models, err := utilopenapi.ToProtoModels(mergedOpenAPI)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -202,7 +202,8 @@ func buildVersionSpecs(crd *apiextensionsv1.CustomResourceDefinition, oldSpecs m
|
||||
if !v.Served {
|
||||
continue
|
||||
}
|
||||
spec, err := builder.BuildSwagger(crd, v.Name, builder.Options{V2: true, StripDefaults: true})
|
||||
// Defaults are not pruned here, but before being served.
|
||||
spec, err := builder.BuildSwagger(crd, v.Name, builder.Options{V2: true, StripDefaults: false})
|
||||
if err != nil {
|
||||
return nil, false, err
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ func (oa OpenAPI) Install(c *restful.Container, mux *mux.PathRecorderMux) (*hand
|
||||
if err != nil {
|
||||
klog.Fatalf("Failed to build open api spec for root: %v", err)
|
||||
}
|
||||
|
||||
spec.Definitions = handler.PruneDefaults(spec.Definitions)
|
||||
openAPIVersionedService, err := handler.NewOpenAPIService(spec)
|
||||
if err != nil {
|
||||
klog.Fatalf("Failed to create OpenAPIService: %v", err)
|
||||
|
@ -175,7 +175,12 @@ func (s *specAggregator) buildOpenAPISpec() (specToReturn *spec.Swagger, err err
|
||||
if specInfo.spec == nil {
|
||||
continue
|
||||
}
|
||||
specs = append(specs, *specInfo)
|
||||
// Copy the spec before removing the defaults.
|
||||
localSpec := *specInfo.spec
|
||||
localSpecInfo := *specInfo
|
||||
localSpecInfo.spec = &localSpec
|
||||
localSpecInfo.spec.Definitions = handler.PruneDefaults(specInfo.spec.Definitions)
|
||||
specs = append(specs, localSpecInfo)
|
||||
}
|
||||
if len(specs) == 0 {
|
||||
return &spec.Swagger{}, nil
|
||||
|
Loading…
Reference in New Issue
Block a user