From 283aaaffc09f685545f13972285ccfd109962a77 Mon Sep 17 00:00:00 2001 From: Stephen Kitt Date: Wed, 18 Oct 2023 14:00:31 +0200 Subject: [PATCH] Add a non-subresource genclient:method example Extension methods on the main resource are supported by client-gen, but unused in k/k; to detect regressions in future changes to client-gen, add a minimal example (this should be turned into a proper test). Signed-off-by: Stephen Kitt --- .../examples/crd/apis/example/v1/types.go | 1 + .../versioned/typed/example/v1/fake/fake_testtype.go | 11 +++++++++++ .../clientset/versioned/typed/example/v1/testtype.go | 2 ++ 3 files changed, 14 insertions(+) diff --git a/staging/src/k8s.io/code-generator/examples/crd/apis/example/v1/types.go b/staging/src/k8s.io/code-generator/examples/crd/apis/example/v1/types.go index 8543ad26c26..d92582569c7 100644 --- a/staging/src/k8s.io/code-generator/examples/crd/apis/example/v1/types.go +++ b/staging/src/k8s.io/code-generator/examples/crd/apis/example/v1/types.go @@ -19,6 +19,7 @@ package v1 import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" // +genclient +// +genclient:method=GetClusterTestType,verb=get // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // TestType is a top-level type. A client is created for it. diff --git a/staging/src/k8s.io/code-generator/examples/crd/clientset/versioned/typed/example/v1/fake/fake_testtype.go b/staging/src/k8s.io/code-generator/examples/crd/clientset/versioned/typed/example/v1/fake/fake_testtype.go index 17485b99d0b..c1be6f22caa 100644 --- a/staging/src/k8s.io/code-generator/examples/crd/clientset/versioned/typed/example/v1/fake/fake_testtype.go +++ b/staging/src/k8s.io/code-generator/examples/crd/clientset/versioned/typed/example/v1/fake/fake_testtype.go @@ -195,3 +195,14 @@ func (c *FakeTestTypes) ApplyStatus(ctx context.Context, testType *examplev1.Tes } return obj.(*v1.TestType), err } + +// GetClusterTestType takes name of the testType, and returns the corresponding testType object, and an error if there is any. +func (c *FakeTestTypes) GetClusterTestType(ctx context.Context, name string, options metav1.GetOptions) (result *v1.TestType, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(testtypesResource, c.ns, name), &v1.TestType{}) + + if obj == nil { + return nil, err + } + return obj.(*v1.TestType), err +} diff --git a/staging/src/k8s.io/code-generator/examples/crd/clientset/versioned/typed/example/v1/testtype.go b/staging/src/k8s.io/code-generator/examples/crd/clientset/versioned/typed/example/v1/testtype.go index e6c1e13f062..5adf7dca781 100644 --- a/staging/src/k8s.io/code-generator/examples/crd/clientset/versioned/typed/example/v1/testtype.go +++ b/staging/src/k8s.io/code-generator/examples/crd/clientset/versioned/typed/example/v1/testtype.go @@ -55,6 +55,8 @@ type TestTypeInterface interface { Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.TestType, err error) Apply(ctx context.Context, testType *examplev1.TestTypeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.TestType, err error) ApplyStatus(ctx context.Context, testType *examplev1.TestTypeApplyConfiguration, opts metav1.ApplyOptions) (result *v1.TestType, err error) + GetClusterTestType(ctx context.Context, name string, opts metav1.GetOptions) (*v1.TestType, error) + TestTypeExpansion }