mirror of
https://github.com/rancher/steve.git
synced 2025-07-06 11:36:33 +00:00
Merge pull request #253 from MbolotSuse/schema-less
Handle Schema-less CRDs
This commit is contained in:
commit
1d42891f81
@ -63,6 +63,26 @@ spec:
|
|||||||
nullable: true
|
nullable: true
|
||||||
served: true
|
served: true
|
||||||
storage: true
|
storage: true
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name: schemaless.management.cattle.io
|
||||||
|
spec:
|
||||||
|
conversion:
|
||||||
|
strategy: None
|
||||||
|
group: management.cattle.io
|
||||||
|
names:
|
||||||
|
kind: Schemaless
|
||||||
|
listKind: SchemalessList
|
||||||
|
plural: schemalese
|
||||||
|
singular: schemaless
|
||||||
|
scope: Cluster
|
||||||
|
preserveUnkownFields: true
|
||||||
|
versions:
|
||||||
|
- name: v2
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
`
|
`
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -346,6 +366,35 @@ definitions:
|
|||||||
- group: "management.cattle.io"
|
- group: "management.cattle.io"
|
||||||
version: "v2"
|
version: "v2"
|
||||||
kind: "Nullable"
|
kind: "Nullable"
|
||||||
|
io.cattle.management.v2.Schemaless:
|
||||||
|
description: "this kind has no schema"
|
||||||
|
type: "object"
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: "The APIVersion of this resource"
|
||||||
|
type: "string"
|
||||||
|
kind:
|
||||||
|
description: "The kind"
|
||||||
|
type: "string"
|
||||||
|
metadata:
|
||||||
|
description: "The metadata"
|
||||||
|
$ref: "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
|
||||||
|
spec:
|
||||||
|
description: "The spec for the resource"
|
||||||
|
type: "object"
|
||||||
|
required:
|
||||||
|
- "name"
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: "The name of the resource"
|
||||||
|
type: "string"
|
||||||
|
notRequired:
|
||||||
|
description: "Some field that isn't required"
|
||||||
|
type: "boolean"
|
||||||
|
x-kubernetes-group-version-kind:
|
||||||
|
- group: "management.cattle.io"
|
||||||
|
version: "v2"
|
||||||
|
kind: "Schemaless"
|
||||||
io.cattle.management.NotAKind:
|
io.cattle.management.NotAKind:
|
||||||
type: "string"
|
type: "string"
|
||||||
description: "Some string which isn't a kind"
|
description: "Some string which isn't a kind"
|
||||||
|
@ -223,7 +223,9 @@ func listGVKModels(models proto.Models, groups *metav1.APIGroupList, crdCache wa
|
|||||||
Version: version.Name,
|
Version: version.Name,
|
||||||
Kind: crd.Spec.Names.Kind,
|
Kind: crd.Spec.Names.Kind,
|
||||||
}
|
}
|
||||||
gvkToCRD[gvk] = version.Schema.OpenAPIV3Schema
|
if version.Schema != nil {
|
||||||
|
gvkToCRD[gvk] = version.Schema.OpenAPIV3Schema
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ func TestRefresh(t *testing.T) {
|
|||||||
require.NotNil(t, userAttributesV2)
|
require.NotNil(t, userAttributesV2)
|
||||||
|
|
||||||
nullableV2 := getJSONSchema(crds, "nullable.management.cattle.io", "v2")
|
nullableV2 := getJSONSchema(crds, "nullable.management.cattle.io", "v2")
|
||||||
require.NotNil(t, userAttributesV2)
|
require.NotNil(t, nullableV2)
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@ -85,6 +85,11 @@ func TestRefresh(t *testing.T) {
|
|||||||
Schema: defaultModels.LookupModel("io.cattle.management.v2.Nullable"),
|
Schema: defaultModels.LookupModel("io.cattle.management.v2.Nullable"),
|
||||||
CRD: nullableV2,
|
CRD: nullableV2,
|
||||||
},
|
},
|
||||||
|
"management.cattle.io.schemaless": {
|
||||||
|
ModelName: "io.cattle.management.v2.Schemaless",
|
||||||
|
Schema: defaultModels.LookupModel("io.cattle.management.v2.Schemaless"),
|
||||||
|
CRD: nil,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -147,6 +152,11 @@ func TestRefresh(t *testing.T) {
|
|||||||
Schema: defaultModels.LookupModel("io.cattle.management.v2.Nullable"),
|
Schema: defaultModels.LookupModel("io.cattle.management.v2.Nullable"),
|
||||||
CRD: nullableV2,
|
CRD: nullableV2,
|
||||||
},
|
},
|
||||||
|
"management.cattle.io.schemaless": {
|
||||||
|
ModelName: "io.cattle.management.v2.Schemaless",
|
||||||
|
Schema: defaultModels.LookupModel("io.cattle.management.v2.Schemaless"),
|
||||||
|
CRD: nil,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user