mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-05 18:24:07 +00:00
openapi validation: Ignore unknown types
This follows the exact same logic as swagger.
This commit is contained in:
parent
a950afecdc
commit
37aacf30b5
@ -17,6 +17,7 @@ go_library(
|
|||||||
],
|
],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/api/util:go_default_library",
|
"//pkg/api/util:go_default_library",
|
||||||
"//pkg/kubectl/cmd/util/openapi:go_default_library",
|
"//pkg/kubectl/cmd/util/openapi:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||||
@ -36,6 +37,7 @@ go_test(
|
|||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
":go_default_library",
|
":go_default_library",
|
||||||
|
"//pkg/api/testapi:go_default_library",
|
||||||
"//pkg/kubectl/cmd/util/openapi:go_default_library",
|
"//pkg/kubectl/cmd/util/openapi:go_default_library",
|
||||||
"//pkg/kubectl/cmd/util/openapi/testing:go_default_library",
|
"//pkg/kubectl/cmd/util/openapi/testing:go_default_library",
|
||||||
"//vendor/github.com/onsi/ginkgo:go_default_library",
|
"//vendor/github.com/onsi/ginkgo:go_default_library",
|
||||||
|
@ -25,6 +25,7 @@ import (
|
|||||||
utilerrors "k8s.io/apimachinery/pkg/util/errors"
|
utilerrors "k8s.io/apimachinery/pkg/util/errors"
|
||||||
"k8s.io/apimachinery/pkg/util/json"
|
"k8s.io/apimachinery/pkg/util/json"
|
||||||
"k8s.io/apimachinery/pkg/util/yaml"
|
"k8s.io/apimachinery/pkg/util/yaml"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
apiutil "k8s.io/kubernetes/pkg/api/util"
|
apiutil "k8s.io/kubernetes/pkg/api/util"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
||||||
)
|
)
|
||||||
@ -75,6 +76,12 @@ func (v *SchemaValidation) validateList(object interface{}) []error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (v *SchemaValidation) validateResource(obj interface{}, gvk schema.GroupVersionKind) []error {
|
func (v *SchemaValidation) validateResource(obj interface{}, gvk schema.GroupVersionKind) []error {
|
||||||
|
if !api.Registry.IsEnabledVersion(gvk.GroupVersion()) {
|
||||||
|
// if we don't have this in our scheme, just skip
|
||||||
|
// validation because its an object we don't recognize
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
resource := v.resources.LookupResource(gvk)
|
resource := v.resources.LookupResource(gvk)
|
||||||
if resource == nil {
|
if resource == nil {
|
||||||
return []error{fmt.Errorf("unknown object type %#v", gvk)}
|
return []error{fmt.Errorf("unknown object type %#v", gvk)}
|
||||||
|
@ -23,6 +23,8 @@ import (
|
|||||||
. "github.com/onsi/gomega"
|
. "github.com/onsi/gomega"
|
||||||
|
|
||||||
utilerrors "k8s.io/apimachinery/pkg/util/errors"
|
utilerrors "k8s.io/apimachinery/pkg/util/errors"
|
||||||
|
// This dependency is needed to register API types.
|
||||||
|
_ "k8s.io/kubernetes/pkg/api/testapi"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
||||||
tst "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing"
|
tst "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation"
|
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation"
|
||||||
|
Loading…
Reference in New Issue
Block a user