From cdbebe78b8cfba2d88414878cfc48bf31b4c2f85 Mon Sep 17 00:00:00 2001 From: Shafeeque E S Date: Wed, 21 Dec 2022 12:26:14 +0530 Subject: [PATCH] Use Subresource client for `shoots/adminkubeconfig` and drop generated clientset --- pkg/apis/core/v1alpha1/types_shoot.go | 1 - pkg/apis/core/v1beta1/types_shoot.go | 1 - .../typed/core/v1alpha1/fake/fake_shoot.go | 12 ------------ .../versioned/typed/core/v1alpha1/shoot.go | 18 ------------------ .../typed/core/v1beta1/fake/fake_shoot.go | 12 ------------ .../versioned/typed/core/v1beta1/mock/mocks.go | 16 ---------------- .../versioned/typed/core/v1beta1/shoot.go | 18 ------------------ test/utils/shoots/access/adminkubeconfig.go | 15 +++++---------- 8 files changed, 5 insertions(+), 88 deletions(-) diff --git a/pkg/apis/core/v1alpha1/types_shoot.go b/pkg/apis/core/v1alpha1/types_shoot.go index 16147985b90..52f2c8cae8b 100644 --- a/pkg/apis/core/v1alpha1/types_shoot.go +++ b/pkg/apis/core/v1alpha1/types_shoot.go @@ -27,7 +27,6 @@ import ( ) // +genclient -// +genclient:method=CreateAdminKubeconfigRequest,verb=create,subresource=adminkubeconfig,input=github.com/gardener/gardener/pkg/apis/authentication/v1alpha1.AdminKubeconfigRequest,result=github.com/gardener/gardener/pkg/apis/authentication/v1alpha1.AdminKubeconfigRequest // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // Shoot represents a Shoot cluster created and managed by Gardener. diff --git a/pkg/apis/core/v1beta1/types_shoot.go b/pkg/apis/core/v1beta1/types_shoot.go index 6d16151476d..028338a28de 100644 --- a/pkg/apis/core/v1beta1/types_shoot.go +++ b/pkg/apis/core/v1beta1/types_shoot.go @@ -27,7 +27,6 @@ import ( ) // +genclient -// +genclient:method=CreateAdminKubeconfigRequest,verb=create,subresource=adminkubeconfig,input=github.com/gardener/gardener/pkg/apis/authentication/v1alpha1.AdminKubeconfigRequest,result=github.com/gardener/gardener/pkg/apis/authentication/v1alpha1.AdminKubeconfigRequest // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // Shoot represents a Shoot cluster created and managed by Gardener. diff --git a/pkg/client/core/clientset/versioned/typed/core/v1alpha1/fake/fake_shoot.go b/pkg/client/core/clientset/versioned/typed/core/v1alpha1/fake/fake_shoot.go index 6e919319c26..a38cfb5921c 100644 --- a/pkg/client/core/clientset/versioned/typed/core/v1alpha1/fake/fake_shoot.go +++ b/pkg/client/core/clientset/versioned/typed/core/v1alpha1/fake/fake_shoot.go @@ -28,7 +28,6 @@ import ( watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - authenticationv1alpha1 "github.com/gardener/gardener/pkg/apis/authentication/v1alpha1" v1alpha1 "github.com/gardener/gardener/pkg/apis/core/v1alpha1" ) @@ -142,14 +141,3 @@ func (c *FakeShoots) Patch(ctx context.Context, name string, pt types.PatchType, } return obj.(*v1alpha1.Shoot), err } - -// CreateAdminKubeconfigRequest takes the representation of a adminKubeconfigRequest and creates it. Returns the server's representation of the adminKubeconfigRequest, and an error, if there is any. -func (c *FakeShoots) CreateAdminKubeconfigRequest(ctx context.Context, shootName string, adminKubeconfigRequest *authenticationv1alpha1.AdminKubeconfigRequest, opts v1.CreateOptions) (result *authenticationv1alpha1.AdminKubeconfigRequest, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateSubresourceAction(shootsResource, shootName, "adminkubeconfig", c.ns, adminKubeconfigRequest), &authenticationv1alpha1.AdminKubeconfigRequest{}) - - if obj == nil { - return nil, err - } - return obj.(*authenticationv1alpha1.AdminKubeconfigRequest), err -} diff --git a/pkg/client/core/clientset/versioned/typed/core/v1alpha1/shoot.go b/pkg/client/core/clientset/versioned/typed/core/v1alpha1/shoot.go index fadc6dc25ac..2410449646f 100644 --- a/pkg/client/core/clientset/versioned/typed/core/v1alpha1/shoot.go +++ b/pkg/client/core/clientset/versioned/typed/core/v1alpha1/shoot.go @@ -27,7 +27,6 @@ import ( watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - authenticationv1alpha1 "github.com/gardener/gardener/pkg/apis/authentication/v1alpha1" v1alpha1 "github.com/gardener/gardener/pkg/apis/core/v1alpha1" scheme "github.com/gardener/gardener/pkg/client/core/clientset/versioned/scheme" ) @@ -49,8 +48,6 @@ type ShootInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ShootList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Shoot, err error) - CreateAdminKubeconfigRequest(ctx context.Context, shootName string, adminKubeconfigRequest *authenticationv1alpha1.AdminKubeconfigRequest, opts v1.CreateOptions) (*authenticationv1alpha1.AdminKubeconfigRequest, error) - ShootExpansion } @@ -197,18 +194,3 @@ func (c *shoots) Patch(ctx context.Context, name string, pt types.PatchType, dat Into(result) return } - -// CreateAdminKubeconfigRequest takes the representation of a adminKubeconfigRequest and creates it. Returns the server's representation of the adminKubeconfigRequest, and an error, if there is any. -func (c *shoots) CreateAdminKubeconfigRequest(ctx context.Context, shootName string, adminKubeconfigRequest *authenticationv1alpha1.AdminKubeconfigRequest, opts v1.CreateOptions) (result *authenticationv1alpha1.AdminKubeconfigRequest, err error) { - result = &authenticationv1alpha1.AdminKubeconfigRequest{} - err = c.client.Post(). - Namespace(c.ns). - Resource("shoots"). - Name(shootName). - SubResource("adminkubeconfig"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(adminKubeconfigRequest). - Do(ctx). - Into(result) - return -} diff --git a/pkg/client/core/clientset/versioned/typed/core/v1beta1/fake/fake_shoot.go b/pkg/client/core/clientset/versioned/typed/core/v1beta1/fake/fake_shoot.go index 56f0d20dcdc..7feb35a332e 100644 --- a/pkg/client/core/clientset/versioned/typed/core/v1beta1/fake/fake_shoot.go +++ b/pkg/client/core/clientset/versioned/typed/core/v1beta1/fake/fake_shoot.go @@ -28,7 +28,6 @@ import ( watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - v1alpha1 "github.com/gardener/gardener/pkg/apis/authentication/v1alpha1" v1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" ) @@ -142,14 +141,3 @@ func (c *FakeShoots) Patch(ctx context.Context, name string, pt types.PatchType, } return obj.(*v1beta1.Shoot), err } - -// CreateAdminKubeconfigRequest takes the representation of a adminKubeconfigRequest and creates it. Returns the server's representation of the adminKubeconfigRequest, and an error, if there is any. -func (c *FakeShoots) CreateAdminKubeconfigRequest(ctx context.Context, shootName string, adminKubeconfigRequest *v1alpha1.AdminKubeconfigRequest, opts v1.CreateOptions) (result *v1alpha1.AdminKubeconfigRequest, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateSubresourceAction(shootsResource, shootName, "adminkubeconfig", c.ns, adminKubeconfigRequest), &v1alpha1.AdminKubeconfigRequest{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.AdminKubeconfigRequest), err -} diff --git a/pkg/client/core/clientset/versioned/typed/core/v1beta1/mock/mocks.go b/pkg/client/core/clientset/versioned/typed/core/v1beta1/mock/mocks.go index 257fd4ef882..09b04caff27 100644 --- a/pkg/client/core/clientset/versioned/typed/core/v1beta1/mock/mocks.go +++ b/pkg/client/core/clientset/versioned/typed/core/v1beta1/mock/mocks.go @@ -8,7 +8,6 @@ import ( context "context" reflect "reflect" - v1alpha1 "github.com/gardener/gardener/pkg/apis/authentication/v1alpha1" v1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" v1beta10 "github.com/gardener/gardener/pkg/client/core/clientset/versioned/typed/core/v1beta1" gomock "github.com/golang/mock/gomock" @@ -247,21 +246,6 @@ func (mr *MockShootInterfaceMockRecorder) Create(arg0, arg1, arg2 interface{}) * return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockShootInterface)(nil).Create), arg0, arg1, arg2) } -// CreateAdminKubeconfigRequest mocks base method. -func (m *MockShootInterface) CreateAdminKubeconfigRequest(arg0 context.Context, arg1 string, arg2 *v1alpha1.AdminKubeconfigRequest, arg3 v1.CreateOptions) (*v1alpha1.AdminKubeconfigRequest, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CreateAdminKubeconfigRequest", arg0, arg1, arg2, arg3) - ret0, _ := ret[0].(*v1alpha1.AdminKubeconfigRequest) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// CreateAdminKubeconfigRequest indicates an expected call of CreateAdminKubeconfigRequest. -func (mr *MockShootInterfaceMockRecorder) CreateAdminKubeconfigRequest(arg0, arg1, arg2, arg3 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAdminKubeconfigRequest", reflect.TypeOf((*MockShootInterface)(nil).CreateAdminKubeconfigRequest), arg0, arg1, arg2, arg3) -} - // Delete mocks base method. func (m *MockShootInterface) Delete(arg0 context.Context, arg1 string, arg2 v1.DeleteOptions) error { m.ctrl.T.Helper() diff --git a/pkg/client/core/clientset/versioned/typed/core/v1beta1/shoot.go b/pkg/client/core/clientset/versioned/typed/core/v1beta1/shoot.go index b7c4d9d6653..16b845916a0 100644 --- a/pkg/client/core/clientset/versioned/typed/core/v1beta1/shoot.go +++ b/pkg/client/core/clientset/versioned/typed/core/v1beta1/shoot.go @@ -27,7 +27,6 @@ import ( watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - v1alpha1 "github.com/gardener/gardener/pkg/apis/authentication/v1alpha1" v1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" scheme "github.com/gardener/gardener/pkg/client/core/clientset/versioned/scheme" ) @@ -49,8 +48,6 @@ type ShootInterface interface { List(ctx context.Context, opts v1.ListOptions) (*v1beta1.ShootList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.Shoot, err error) - CreateAdminKubeconfigRequest(ctx context.Context, shootName string, adminKubeconfigRequest *v1alpha1.AdminKubeconfigRequest, opts v1.CreateOptions) (*v1alpha1.AdminKubeconfigRequest, error) - ShootExpansion } @@ -197,18 +194,3 @@ func (c *shoots) Patch(ctx context.Context, name string, pt types.PatchType, dat Into(result) return } - -// CreateAdminKubeconfigRequest takes the representation of a adminKubeconfigRequest and creates it. Returns the server's representation of the adminKubeconfigRequest, and an error, if there is any. -func (c *shoots) CreateAdminKubeconfigRequest(ctx context.Context, shootName string, adminKubeconfigRequest *v1alpha1.AdminKubeconfigRequest, opts v1.CreateOptions) (result *v1alpha1.AdminKubeconfigRequest, err error) { - result = &v1alpha1.AdminKubeconfigRequest{} - err = c.client.Post(). - Namespace(c.ns). - Resource("shoots"). - Name(shootName). - SubResource("adminkubeconfig"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(adminKubeconfigRequest). - Do(ctx). - Into(result) - return -} diff --git a/test/utils/shoots/access/adminkubeconfig.go b/test/utils/shoots/access/adminkubeconfig.go index a6d2e119394..20342962a7e 100644 --- a/test/utils/shoots/access/adminkubeconfig.go +++ b/test/utils/shoots/access/adminkubeconfig.go @@ -17,13 +17,11 @@ package access import ( "context" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/utils/pointer" "sigs.k8s.io/controller-runtime/pkg/client" authenticationv1alpha1 "github.com/gardener/gardener/pkg/apis/authentication/v1alpha1" gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" - gardencoreversionedclientset "github.com/gardener/gardener/pkg/client/core/clientset/versioned" "github.com/gardener/gardener/pkg/client/kubernetes" ) @@ -43,20 +41,17 @@ func CreateShootClientFromAdminKubeconfig(ctx context.Context, gardenClient kube // RequestAdminKubeconfigForShoot requests an admin kubeconfig for the given shoot. func RequestAdminKubeconfigForShoot(ctx context.Context, gardenClient kubernetes.Interface, shoot *gardencorev1beta1.Shoot, expirationSeconds *int64) ([]byte, error) { - versionedClient, err := gardencoreversionedclientset.NewForConfig(gardenClient.RESTConfig()) - if err != nil { - return nil, err - } - adminKubeconfigRequest := &authenticationv1alpha1.AdminKubeconfigRequest{ Spec: authenticationv1alpha1.AdminKubeconfigRequestSpec{ ExpirationSeconds: expirationSeconds, }, } - adminKubeconfig, err := versionedClient.CoreV1beta1().Shoots(shoot.GetNamespace()).CreateAdminKubeconfigRequest(ctx, shoot.GetName(), adminKubeconfigRequest, metav1.CreateOptions{}) - if err != nil { + if err := gardenClient.Client().SubResource("adminkubeconfig").Create(ctx, shoot, adminKubeconfigRequest); err != nil { + return nil, err + } + if err := gardenClient.Client().SubResource("adminkubeconfig").Get(ctx, shoot, adminKubeconfigRequest); err != nil { return nil, err } - return adminKubeconfig.Status.Kubeconfig, nil + return adminKubeconfigRequest.Status.Kubeconfig, nil }