mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-02 16:29:21 +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"],
|
||||
deps = [
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/util:go_default_library",
|
||||
"//pkg/kubectl/cmd/util/openapi:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||
@ -36,6 +37,7 @@ go_test(
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
":go_default_library",
|
||||
"//pkg/api/testapi:go_default_library",
|
||||
"//pkg/kubectl/cmd/util/openapi:go_default_library",
|
||||
"//pkg/kubectl/cmd/util/openapi/testing:go_default_library",
|
||||
"//vendor/github.com/onsi/ginkgo:go_default_library",
|
||||
|
@ -25,6 +25,7 @@ import (
|
||||
utilerrors "k8s.io/apimachinery/pkg/util/errors"
|
||||
"k8s.io/apimachinery/pkg/util/json"
|
||||
"k8s.io/apimachinery/pkg/util/yaml"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
apiutil "k8s.io/kubernetes/pkg/api/util"
|
||||
"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 {
|
||||
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)
|
||||
if resource == nil {
|
||||
return []error{fmt.Errorf("unknown object type %#v", gvk)}
|
||||
|
@ -23,6 +23,8 @@ import (
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
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"
|
||||
tst "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/testing"
|
||||
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation"
|
||||
|
Loading…
Reference in New Issue
Block a user