From f07f35f319f4dbcc94342197d89abcc0ac769950 Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Sat, 16 Dec 2017 01:25:56 -0700 Subject: [PATCH] Give access to unstructured client --- clientbase/object_client.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/clientbase/object_client.go b/clientbase/object_client.go index ceb9333a..980fb870 100644 --- a/clientbase/object_client.go +++ b/clientbase/object_client.go @@ -6,6 +6,7 @@ import ( "github.com/pkg/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/watch" @@ -18,6 +19,17 @@ type ObjectFactory interface { List() runtime.Object } +type UnstructuredObjectFactory struct { +} + +func (u *UnstructuredObjectFactory) Object() runtime.Object { + return &unstructured.Unstructured{} +} + +func (u *UnstructuredObjectFactory) List() runtime.Object { + return &unstructured.UnstructuredList{} +} + type ObjectClient struct { restClient rest.Interface resource *metav1.APIResource @@ -36,6 +48,16 @@ func NewObjectClient(namespace string, restClient rest.Interface, apiResource *m } } +func (p *ObjectClient) UnstructuredClient() *ObjectClient { + return &ObjectClient{ + restClient: p.restClient, + resource: p.resource, + gvk: p.gvk, + ns: p.ns, + Factory: &UnstructuredObjectFactory{}, + } +} + func (p *ObjectClient) getAPIPrefix() string { if p.gvk.Group == "" { return "api"