mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 22:17:14 +00:00
Instantiate unstructured objects with versions in custom resource handler
This commit is contained in:
parent
0e9b06df0f
commit
b51ac8f7d5
@ -477,6 +477,7 @@ func (r *crdHandler) getOrCreateServingInfoFor(crd *apiextensions.CustomResource
|
|||||||
|
|
||||||
storages[v.Name] = customresource.NewStorage(
|
storages[v.Name] = customresource.NewStorage(
|
||||||
schema.GroupResource{Group: crd.Spec.Group, Resource: crd.Status.AcceptedNames.Plural},
|
schema.GroupResource{Group: crd.Spec.Group, Resource: crd.Status.AcceptedNames.Plural},
|
||||||
|
schema.GroupVersionKind{Group: crd.Spec.Group, Version: v.Name, Kind: crd.Status.AcceptedNames.Kind},
|
||||||
schema.GroupVersionKind{Group: crd.Spec.Group, Version: v.Name, Kind: crd.Status.AcceptedNames.ListKind},
|
schema.GroupVersionKind{Group: crd.Spec.Group, Version: v.Name, Kind: crd.Status.AcceptedNames.ListKind},
|
||||||
customresource.NewStrategy(
|
customresource.NewStrategy(
|
||||||
typer,
|
typer,
|
||||||
|
@ -40,8 +40,8 @@ type CustomResourceStorage struct {
|
|||||||
Scale *ScaleREST
|
Scale *ScaleREST
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewStorage(resource schema.GroupResource, listKind schema.GroupVersionKind, strategy customResourceStrategy, optsGetter generic.RESTOptionsGetter, categories []string, tableConvertor rest.TableConvertor) CustomResourceStorage {
|
func NewStorage(resource schema.GroupResource, kind, listKind schema.GroupVersionKind, strategy customResourceStrategy, optsGetter generic.RESTOptionsGetter, categories []string, tableConvertor rest.TableConvertor) CustomResourceStorage {
|
||||||
customResourceREST, customResourceStatusREST := newREST(resource, listKind, strategy, optsGetter, categories, tableConvertor)
|
customResourceREST, customResourceStatusREST := newREST(resource, kind, listKind, strategy, optsGetter, categories, tableConvertor)
|
||||||
|
|
||||||
s := CustomResourceStorage{
|
s := CustomResourceStorage{
|
||||||
CustomResource: customResourceREST,
|
CustomResource: customResourceREST,
|
||||||
@ -75,9 +75,14 @@ type REST struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// newREST returns a RESTStorage object that will work against API services.
|
// newREST returns a RESTStorage object that will work against API services.
|
||||||
func newREST(resource schema.GroupResource, listKind schema.GroupVersionKind, strategy customResourceStrategy, optsGetter generic.RESTOptionsGetter, categories []string, tableConvertor rest.TableConvertor) (*REST, *StatusREST) {
|
func newREST(resource schema.GroupResource, kind, listKind schema.GroupVersionKind, strategy customResourceStrategy, optsGetter generic.RESTOptionsGetter, categories []string, tableConvertor rest.TableConvertor) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
NewFunc: func() runtime.Object { return &unstructured.Unstructured{} },
|
NewFunc: func() runtime.Object {
|
||||||
|
// set the expected group/version/kind in the new object as a signal to the versioning decoder
|
||||||
|
ret := &unstructured.Unstructured{}
|
||||||
|
ret.SetGroupVersionKind(kind)
|
||||||
|
return ret
|
||||||
|
},
|
||||||
NewListFunc: func() runtime.Object {
|
NewListFunc: func() runtime.Object {
|
||||||
// lists are never stored, only manufactured, so stomp in the right kind
|
// lists are never stored, only manufactured, so stomp in the right kind
|
||||||
ret := &unstructured.UnstructuredList{}
|
ret := &unstructured.UnstructuredList{}
|
||||||
|
@ -91,6 +91,7 @@ func newStorage(t *testing.T) (customresource.CustomResourceStorage, *etcdtestin
|
|||||||
|
|
||||||
storage := customresource.NewStorage(
|
storage := customresource.NewStorage(
|
||||||
schema.GroupResource{Group: "mygroup.example.com", Resource: "noxus"},
|
schema.GroupResource{Group: "mygroup.example.com", Resource: "noxus"},
|
||||||
|
kind,
|
||||||
schema.GroupVersionKind{Group: "mygroup.example.com", Version: "v1beta1", Kind: "NoxuItemList"},
|
schema.GroupVersionKind{Group: "mygroup.example.com", Version: "v1beta1", Kind: "NoxuItemList"},
|
||||||
customresource.NewStrategy(
|
customresource.NewStrategy(
|
||||||
typer,
|
typer,
|
||||||
|
Loading…
Reference in New Issue
Block a user