openapi: Use "group" to look for resources
This commit is contained in:
@@ -51,7 +51,7 @@ func (v *SchemaValidation) ValidateBytes(data []byte) error {
|
||||
|
||||
resource := v.resources.LookupResource(gvk)
|
||||
if resource == nil {
|
||||
return fmt.Errorf("unknown object type %q", gvk)
|
||||
return fmt.Errorf("unknown object type %#v", gvk)
|
||||
}
|
||||
|
||||
rootValidation, err := itemFactory(openapi.NewPath(gvk.Kind), obj)
|
||||
@@ -91,6 +91,7 @@ func getObjectKind(object interface{}) (schema.GroupVersionKind, error) {
|
||||
return schema.GroupVersionKind{}, errors.New("apiVersion isn't string type")
|
||||
}
|
||||
version := apiutil.GetVersion(apiVersion.(string))
|
||||
group := apiutil.GetGroup(apiVersion.(string))
|
||||
kind := fields["kind"]
|
||||
if kind == nil {
|
||||
return schema.GroupVersionKind{}, errors.New("kind not set")
|
||||
@@ -99,5 +100,5 @@ func getObjectKind(object interface{}) (schema.GroupVersionKind, error) {
|
||||
return schema.GroupVersionKind{}, errors.New("kind isn't string type")
|
||||
}
|
||||
|
||||
return schema.GroupVersionKind{Kind: kind.(string), Version: version}, nil
|
||||
return schema.GroupVersionKind{Group: group, Version: version, Kind: kind.(string)}, nil
|
||||
}
|
||||
|
@@ -41,6 +41,28 @@ var _ = Describe("resource validation using OpenAPI Schema", func() {
|
||||
Expect(validator).ToNot(BeNil())
|
||||
})
|
||||
|
||||
It("finds Deployment in Schema and validates it", func() {
|
||||
err := validator.ValidateBytes([]byte(`
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
name: redis-master
|
||||
name: name
|
||||
spec:
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: redis
|
||||
spec:
|
||||
containers:
|
||||
- image: redis
|
||||
name: redis
|
||||
`))
|
||||
Expect(err).To(BeNil())
|
||||
})
|
||||
|
||||
It("validates a valid pod", func() {
|
||||
err := validator.ValidateBytes([]byte(`
|
||||
apiVersion: v1
|
||||
|
Reference in New Issue
Block a user