@@ -5,15 +5,20 @@ import (
55 "crypto/sha1"
66 "fmt"
77
8- cfntypes "github.com/aws/aws-sdk-go-v2/service/cloudformation/types "
9- ekstypes "github.com/aws/aws-sdk-go-v2/service/eks/types "
8+ . "github.com/onsi/ginkgo/v2 "
9+ . "github.com/onsi/gomega "
1010
11- "github.com/aws/aws-sdk-go-v2/aws"
12- "github.com/aws/aws-sdk-go-v2/service/eks"
1311 "github.com/stretchr/testify/mock"
1412
15- . "github.com/onsi/ginkgo/v2"
16- . "github.com/onsi/gomega"
13+ corev1 "k8s.io/api/core/v1"
14+ "k8s.io/apimachinery/pkg/runtime"
15+ kubeclientfakes "k8s.io/client-go/kubernetes/fake"
16+ kubeclienttesting "k8s.io/client-go/testing"
17+
18+ "github.com/aws/aws-sdk-go-v2/aws"
19+ cfntypes "github.com/aws/aws-sdk-go-v2/service/cloudformation/types"
20+ "github.com/aws/aws-sdk-go-v2/service/eks"
21+ ekstypes "github.com/aws/aws-sdk-go-v2/service/eks/types"
1722
1823 "github.com/weaveworks/eksctl/pkg/actions/podidentityassociation"
1924 api "github.com/weaveworks/eksctl/pkg/apis/eksctl.io/v1alpha5"
@@ -25,7 +30,7 @@ import (
2530var _ = Describe ("Pod Identity Deleter" , func () {
2631 type deleteEntry struct {
2732 podIdentityAssociations []api.PodIdentityAssociation
28- mockCalls func (stackManager * managerfakes.FakeStackManager , eksAPI * mocksv2.EKS )
33+ mockCalls func (stackManager * managerfakes.FakeStackManager , clientSet * kubeclientfakes. Clientset , eksAPI * mocksv2.EKS )
2934
3035 expectedCalls func (stackManager * managerfakes.FakeStackManager , eksAPI * mocksv2.EKS )
3136 expectedErr string
@@ -40,14 +45,23 @@ var _ = Describe("Pod Identity Deleter", func() {
4045 return nil
4146 }
4247 }
43- mockCalls := func (stackManager * managerfakes.FakeStackManager , eksAPI * mocksv2.EKS , podID podidentityassociation.Identifier ) {
48+ mockClientSet := func (clientSet * kubeclientfakes.Clientset ) {
49+ clientSet .PrependReactor ("delete" , "serviceaccounts" , func (action kubeclienttesting.Action ) (bool , runtime.Object , error ) {
50+ return true , nil , nil
51+ })
52+ clientSet .PrependReactor ("get" , "serviceaccounts" , func (action kubeclienttesting.Action ) (bool , runtime.Object , error ) {
53+ return true , & corev1.ServiceAccount {}, nil
54+ })
55+ }
56+ mockCalls := func (stackManager * managerfakes.FakeStackManager , clientSet * kubeclientfakes.Clientset , eksAPI * mocksv2.EKS , podID podidentityassociation.Identifier ) {
4457 stackName := makeIRSAv2StackName (podID )
4558 associationID := fmt .Sprintf ("%x" , sha1 .Sum ([]byte (stackName )))
4659 mockListPodIdentityAssociations (eksAPI , podID , []ekstypes.PodIdentityAssociationSummary {
4760 {
4861 AssociationId : aws .String (associationID ),
4962 },
5063 }, nil )
64+ mockClientSet (clientSet )
5165 eksAPI .On ("DeletePodIdentityAssociation" , mock .Anything , & eks.DeletePodIdentityAssociationInput {
5266 ClusterName : aws .String (clusterName ),
5367 AssociationId : aws .String (associationID ),
@@ -57,12 +71,14 @@ var _ = Describe("Pod Identity Deleter", func() {
5771
5872 DescribeTable ("delete pod identity association" , func (e deleteEntry ) {
5973 provider := mockprovider .NewMockProvider ()
74+ clientSet := kubeclientfakes .NewSimpleClientset ()
6075 var stackManager managerfakes.FakeStackManager
61- e .mockCalls (& stackManager , provider .MockEKS ())
76+ e .mockCalls (& stackManager , clientSet , provider .MockEKS ())
6277 deleter := podidentityassociation.Deleter {
6378 ClusterName : clusterName ,
6479 StackDeleter : & stackManager ,
6580 APIDeleter : provider .EKS (),
81+ ClientSet : clientSet ,
6682 }
6783 err := deleter .Delete (context .Background (), podidentityassociation .ToIdentifiers (e .podIdentityAssociations ))
6884
@@ -80,13 +96,13 @@ var _ = Describe("Pod Identity Deleter", func() {
8096 ServiceAccountName : "default" ,
8197 },
8298 },
83- mockCalls : func (stackManager * managerfakes.FakeStackManager , eksAPI * mocksv2.EKS ) {
99+ mockCalls : func (stackManager * managerfakes.FakeStackManager , fakeClientSet * kubeclientfakes. Clientset , eksAPI * mocksv2.EKS ) {
84100 podID := podidentityassociation.Identifier {
85101 Namespace : "default" ,
86102 ServiceAccountName : "default" ,
87103 }
88104 mockListStackNames (stackManager , []podidentityassociation.Identifier {podID })
89- mockCalls (stackManager , eksAPI , podID )
105+ mockCalls (stackManager , fakeClientSet , eksAPI , podID )
90106 },
91107
92108 expectedCalls : func (stackManager * managerfakes.FakeStackManager , eksAPI * mocksv2.EKS ) {
@@ -107,7 +123,7 @@ var _ = Describe("Pod Identity Deleter", func() {
107123 ServiceAccountName : "aws-node" ,
108124 },
109125 },
110- mockCalls : func (stackManager * managerfakes.FakeStackManager , eksAPI * mocksv2.EKS ) {
126+ mockCalls : func (stackManager * managerfakes.FakeStackManager , clientSet * kubeclientfakes. Clientset , eksAPI * mocksv2.EKS ) {
111127 podIDs := []podidentityassociation.Identifier {
112128 {
113129 Namespace : "default" ,
@@ -120,7 +136,7 @@ var _ = Describe("Pod Identity Deleter", func() {
120136 }
121137 mockListStackNamesWithIRSAv1 (stackManager , podIDs [:1 ], podIDs [1 :])
122138 for _ , podID := range podIDs {
123- mockCalls (stackManager , eksAPI , podID )
139+ mockCalls (stackManager , clientSet , eksAPI , podID )
124140 }
125141 },
126142
@@ -167,7 +183,7 @@ var _ = Describe("Pod Identity Deleter", func() {
167183 ServiceAccountName : "coredns" ,
168184 },
169185 },
170- mockCalls : func (stackManager * managerfakes.FakeStackManager , eksAPI * mocksv2.EKS ) {
186+ mockCalls : func (stackManager * managerfakes.FakeStackManager , clientSet * kubeclientfakes. Clientset , eksAPI * mocksv2.EKS ) {
171187 podIDs := []podidentityassociation.Identifier {
172188 {
173189 Namespace : "default" ,
@@ -184,7 +200,7 @@ var _ = Describe("Pod Identity Deleter", func() {
184200 }
185201 mockListStackNames (stackManager , podIDs )
186202 for _ , podID := range podIDs {
187- mockCalls (stackManager , eksAPI , podID )
203+ mockCalls (stackManager , clientSet , eksAPI , podID )
188204 }
189205 mockListPodIdentityAssociations (eksAPI , podidentityassociation.Identifier {
190206 Namespace : "kube-system" ,
@@ -207,7 +223,7 @@ var _ = Describe("Pod Identity Deleter", func() {
207223 ServiceAccountName : "aws-node" ,
208224 },
209225 },
210- mockCalls : func (stackManager * managerfakes.FakeStackManager , eksAPI * mocksv2.EKS ) {
226+ mockCalls : func (stackManager * managerfakes.FakeStackManager , clientSet * kubeclientfakes. Clientset , eksAPI * mocksv2.EKS ) {
211227 podID := podidentityassociation.Identifier {
212228 Namespace : "kube-system" ,
213229 ServiceAccountName : "aws-node" ,
@@ -236,7 +252,7 @@ var _ = Describe("Pod Identity Deleter", func() {
236252 ServiceAccountName : "aws-node" ,
237253 },
238254 },
239- mockCalls : func (stackManager * managerfakes.FakeStackManager , eksAPI * mocksv2.EKS ) {
255+ mockCalls : func (stackManager * managerfakes.FakeStackManager , clientSet * kubeclientfakes. Clientset , eksAPI * mocksv2.EKS ) {
240256 podIDs := []podidentityassociation.Identifier {
241257 {
242258 Namespace : "default" ,
@@ -263,7 +279,7 @@ var _ = Describe("Pod Identity Deleter", func() {
263279
264280 Entry ("delete IAM resources on cluster deletion" , deleteEntry {
265281 podIdentityAssociations : []api.PodIdentityAssociation {},
266- mockCalls : func (stackManager * managerfakes.FakeStackManager , eksAPI * mocksv2.EKS ) {
282+ mockCalls : func (stackManager * managerfakes.FakeStackManager , clientSet * kubeclientfakes. Clientset , eksAPI * mocksv2.EKS ) {
267283 podIDs := []podidentityassociation.Identifier {
268284 {
269285 Namespace : "default" ,
0 commit comments