mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
Strip defaults in new places
This commit is contained in:
parent
07a40273eb
commit
de4abee3ef
@ -42,5 +42,6 @@ go_test(
|
|||||||
deps = [
|
deps = [
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library",
|
||||||
"//vendor/github.com/go-openapi/spec: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"
|
"github.com/go-openapi/spec"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/util/diff"
|
"k8s.io/apimachinery/pkg/util/diff"
|
||||||
|
"k8s.io/kube-openapi/pkg/handler"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestOpenAPIRoundtrip(t *testing.T) {
|
func TestOpenAPIRoundtrip(t *testing.T) {
|
||||||
dummyRef := func(name string) spec.Ref { return spec.MustCreateRef("#/definitions/dummy") }
|
dummyRef := func(name string) spec.Ref { return spec.MustCreateRef("#/definitions/dummy") }
|
||||||
for name, value := range GetOpenAPIDefinitions(dummyRef) {
|
for name, value := range GetOpenAPIDefinitions(dummyRef) {
|
||||||
t.Run(name, func(t *testing.T) {
|
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)
|
data, err := json.Marshal(value.Schema)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
|
@ -1320,7 +1320,8 @@ func buildOpenAPIModelsForApply(staticOpenAPISpec *goopenapispec.Swagger, crd *a
|
|||||||
|
|
||||||
specs := []*goopenapispec.Swagger{}
|
specs := []*goopenapispec.Swagger{}
|
||||||
for _, v := range crd.Spec.Versions {
|
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 {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -1331,7 +1332,6 @@ func buildOpenAPIModelsForApply(staticOpenAPISpec *goopenapispec.Swagger, crd *a
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
models, err := utilopenapi.ToProtoModels(mergedOpenAPI)
|
models, err := utilopenapi.ToProtoModels(mergedOpenAPI)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -202,7 +202,8 @@ func buildVersionSpecs(crd *apiextensionsv1.CustomResourceDefinition, oldSpecs m
|
|||||||
if !v.Served {
|
if !v.Served {
|
||||||
continue
|
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 {
|
if err != nil {
|
||||||
return nil, false, err
|
return nil, false, err
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ func (oa OpenAPI) Install(c *restful.Container, mux *mux.PathRecorderMux) (*hand
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Fatalf("Failed to build open api spec for root: %v", err)
|
klog.Fatalf("Failed to build open api spec for root: %v", err)
|
||||||
}
|
}
|
||||||
|
spec.Definitions = handler.PruneDefaults(spec.Definitions)
|
||||||
openAPIVersionedService, err := handler.NewOpenAPIService(spec)
|
openAPIVersionedService, err := handler.NewOpenAPIService(spec)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Fatalf("Failed to create OpenAPIService: %v", err)
|
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 {
|
if specInfo.spec == nil {
|
||||||
continue
|
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 {
|
if len(specs) == 0 {
|
||||||
return &spec.Swagger{}, nil
|
return &spec.Swagger{}, nil
|
||||||
|
Loading…
Reference in New Issue
Block a user