Skip to content

Commit acf1453

Browse files
committed
Changes made to let ec2 tests as well , that were depending on ssm
1 parent c04a322 commit acf1453

File tree

9 files changed

+54
-32
lines changed

9 files changed

+54
-32
lines changed

pkg/cloud/services/ec2/ami.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ import (
2525
"text/template"
2626
"time"
2727

28-
"github.com/aws/aws-sdk-go/aws"
28+
"github.com/aws/aws-sdk-go-v2/aws"
29+
ssmv2 "github.com/aws/aws-sdk-go-v2/service/ssm"
2930
"github.com/aws/aws-sdk-go/service/ec2"
3031
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
31-
"github.com/aws/aws-sdk-go/service/ssm"
32+
3233
"github.com/blang/semver"
3334
"github.com/pkg/errors"
3435

@@ -224,8 +225,8 @@ func (s *Service) defaultAMIIDLookup(amiNameFormat, ownerID, baseOS, architectur
224225
return "", errors.Wrapf(err, "failed to find ami")
225226
}
226227

227-
s.scope.Debug("Found and using an existing AMI", "ami-id", aws.StringValue(latestImage.ImageId))
228-
return aws.StringValue(latestImage.ImageId), nil
228+
s.scope.Debug("Found and using an existing AMI", "ami-id", latestImage.ImageId)
229+
return aws.ToString(latestImage.ImageId), nil
229230
}
230231

231232
type images []*ec2.Image
@@ -239,8 +240,8 @@ func (i images) Len() int {
239240
// index i should sort before the element with index j.
240241
// At this point all CreationDates have been checked for errors so ignoring the error is ok.
241242
func (i images) Less(k, j int) bool {
242-
firstTime, _ := time.Parse(createDateTimestampFormat, aws.StringValue(i[k].CreationDate))
243-
secondTime, _ := time.Parse(createDateTimestampFormat, aws.StringValue(i[j].CreationDate))
243+
firstTime, _ := time.Parse(createDateTimestampFormat, aws.ToString(i[k].CreationDate))
244+
secondTime, _ := time.Parse(createDateTimestampFormat, aws.ToString(i[j].CreationDate))
244245
return firstTime.Before(secondTime)
245246
}
246247

@@ -252,7 +253,7 @@ func (i images) Swap(k, j int) {
252253
// GetLatestImage assumes imgs is not empty. Responsibility of the caller to check.
253254
func GetLatestImage(imgs []*ec2.Image) (*ec2.Image, error) {
254255
for _, img := range imgs {
255-
if _, err := time.Parse(createDateTimestampFormat, aws.StringValue(img.CreationDate)); err != nil {
256+
if _, err := time.Parse(createDateTimestampFormat, aws.ToString(img.CreationDate)); err != nil {
256257
return nil, err
257258
}
258259
}
@@ -336,11 +337,11 @@ func (s *Service) eksAMILookup(kubernetesVersion string, architecture string, am
336337
}
337338
}
338339

339-
input := &ssm.GetParameterInput{
340+
input := &ssmv2.GetParameterInput{
340341
Name: aws.String(paramName),
341342
}
342343

343-
out, err := s.SSMClient.GetParameter(input)
344+
out, err := s.SSMClient.GetParameter(context.TODO(), input)
344345
if err != nil {
345346
record.Eventf(s.scope.InfraCluster(), "FailedGetParameter", "Failed to get ami SSM parameter %q: %v", paramName, err)
346347

@@ -351,7 +352,7 @@ func (s *Service) eksAMILookup(kubernetesVersion string, architecture string, am
351352
return "", errors.Errorf("SSM parameter returned with nil value: %q", paramName)
352353
}
353354

354-
id := aws.StringValue(out.Parameter.Value)
355+
id := aws.ToString(out.Parameter.Value)
355356
s.scope.Info("found AMI", "id", id, "version", formattedVersion)
356357

357358
return id, nil

pkg/cloud/services/ec2/ami_test.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ import (
2020
"context"
2121
"testing"
2222

23+
ssmv2 "github.com/aws/aws-sdk-go-v2/service/ssm"
24+
ssmv2type "github.com/aws/aws-sdk-go-v2/service/ssm/types"
2325
"github.com/aws/aws-sdk-go/aws"
2426
"github.com/aws/aws-sdk-go/service/ec2"
25-
"github.com/aws/aws-sdk-go/service/ssm"
2627
"github.com/golang/mock/gomock"
2728
. "github.com/onsi/gomega"
2829
"sigs.k8s.io/controller-runtime/pkg/client/fake"
@@ -495,10 +496,10 @@ func TestEKSAMILookUp(t *testing.T) {
495496
arch: "x86_64",
496497
amiType: &gpuAMI,
497498
expect: func(m *mock_ssmiface.MockSSMAPIMockRecorder) {
498-
m.GetParameter(gomock.Eq(&ssm.GetParameterInput{
499+
m.GetParameter(context.TODO(), gomock.Eq(&ssmv2.GetParameterInput{
499500
Name: aws.String("/aws/service/eks/optimized-ami/1.23/amazon-linux-2-gpu/recommended/image_id"),
500-
})).Return(&ssm.GetParameterOutput{
501-
Parameter: &ssm.Parameter{
501+
})).Return(&ssmv2.GetParameterOutput{
502+
Parameter: &ssmv2type.Parameter{
502503
Value: aws.String("id"),
503504
},
504505
}, nil)
@@ -511,10 +512,10 @@ func TestEKSAMILookUp(t *testing.T) {
511512
k8sVersion: "v1.23.3",
512513
arch: "x86_64",
513514
expect: func(m *mock_ssmiface.MockSSMAPIMockRecorder) {
514-
m.GetParameter(gomock.Eq(&ssm.GetParameterInput{
515+
m.GetParameter(context.TODO(), gomock.Eq(&ssmv2.GetParameterInput{
515516
Name: aws.String("/aws/service/eks/optimized-ami/1.23/amazon-linux-2/recommended/image_id"),
516-
})).Return(&ssm.GetParameterOutput{
517-
Parameter: &ssm.Parameter{
517+
})).Return(&ssmv2.GetParameterOutput{
518+
Parameter: &ssmv2type.Parameter{
518519
Value: aws.String("id"),
519520
},
520521
}, nil)
@@ -527,7 +528,7 @@ func TestEKSAMILookUp(t *testing.T) {
527528
k8sVersion: "v1.23.3",
528529
arch: "x86_64",
529530
expect: func(m *mock_ssmiface.MockSSMAPIMockRecorder) {
530-
m.GetParameter(gomock.Eq(&ssm.GetParameterInput{
531+
m.GetParameter(context.TODO(), gomock.Eq(&ssmv2.GetParameterInput{
531532
Name: aws.String("/aws/service/eks/optimized-ami/1.23/amazon-linux-2/recommended/image_id"),
532533
})).Return(nil, awserrors.NewFailedDependency("dependency failure"))
533534
},
@@ -544,9 +545,9 @@ func TestEKSAMILookUp(t *testing.T) {
544545
k8sVersion: "v1.23.3",
545546
arch: "x86_64",
546547
expect: func(m *mock_ssmiface.MockSSMAPIMockRecorder) {
547-
m.GetParameter(gomock.Eq(&ssm.GetParameterInput{
548+
m.GetParameter(context.TODO(), gomock.Eq(&ssmv2.GetParameterInput{
548549
Name: aws.String("/aws/service/eks/optimized-ami/1.23/amazon-linux-2/recommended/image_id"),
549-
})).Return(&ssm.GetParameterOutput{}, nil)
550+
})).Return(&ssmv2.GetParameterOutput{}, nil)
550551
},
551552
wantErr: true,
552553
},

pkg/cloud/services/ec2/launchtemplate_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,18 @@ import (
2121
"encoding/base64"
2222
"testing"
2323

24+
ssmv2 "github.com/aws/aws-sdk-go-v2/service/ssm"
25+
ssmv2type "github.com/aws/aws-sdk-go-v2/service/ssm/types"
2426
"github.com/aws/aws-sdk-go/aws"
2527
"github.com/aws/aws-sdk-go/aws/awserr"
2628
"github.com/aws/aws-sdk-go/aws/request"
2729
"github.com/aws/aws-sdk-go/service/ec2"
28-
"github.com/aws/aws-sdk-go/service/ssm"
2930
"github.com/golang/mock/gomock"
3031
"github.com/google/go-cmp/cmp"
3132
. "github.com/onsi/gomega"
3233
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3334
"k8s.io/apimachinery/pkg/types"
35+
3436
"k8s.io/utils/ptr"
3537
"sigs.k8s.io/controller-runtime/pkg/client/fake"
3638

@@ -1937,9 +1939,9 @@ func TestDiscoverLaunchTemplateAMIForEKS(t *testing.T) {
19371939
}, nil)
19381940
},
19391941
expectSSM: func(m *mock_ssmiface.MockSSMAPIMockRecorder) {
1940-
m.GetParameter(gomock.AssignableToTypeOf(&ssm.GetParameterInput{})).
1941-
Return(&ssm.GetParameterOutput{
1942-
Parameter: &ssm.Parameter{
1942+
m.GetParameter(context.TODO(), gomock.AssignableToTypeOf(&ssmv2.GetParameterInput{})).
1943+
Return(&ssmv2.GetParameterOutput{
1944+
Parameter: &ssmv2type.Parameter{
19431945
Value: aws.String("latest"),
19441946
},
19451947
}, nil)

pkg/cloud/services/ec2/service.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package ec2
1919

2020
import (
2121
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
22-
"github.com/aws/aws-sdk-go/service/ssm/ssmiface"
22+
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/ssm/ssmiface"
2323

2424
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/scope"
2525
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/network"
@@ -42,7 +42,7 @@ func NewService(clusterScope scope.EC2Scope) *Service {
4242
return &Service{
4343
scope: clusterScope,
4444
EC2Client: scope.NewEC2Client(clusterScope, clusterScope, clusterScope, clusterScope.InfraCluster()),
45-
SSMClient: scope.NewSSMClient(clusterScope, clusterScope, clusterScope, clusterScope.InfraCluster()),
45+
SSMClient: &ssmiface.SSMClientV2{},
4646
netService: network.NewService(clusterScope.(scope.NetworkScope)),
4747
}
4848
}

pkg/cloud/services/ssm/mock_ssmiface/mock_ssmiface.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/cloud/services/ssm/service.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/ssm/ssmiface"
2121

2222
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud"
23-
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/scope"
2423
)
2524

2625
// Service holds a collection of interfaces.
@@ -32,7 +31,7 @@ type Service struct {
3231
}
3332

3433
func NewService(secretsScope cloud.ClusterScoper) *Service {
35-
ssmClient, err := scope.NewSSMClient()
34+
ssmClient, err := ssmiface.NewSSMClient()
3635
if err != nil {
3736
panic(err) // or handle the error gracefully
3837
}

pkg/cloud/services/ssm/ssmiface/interface.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@ type SSMAPI interface {
1717
AssociateOpsItemRelatedItem(ctx context.Context, input *ssm.AssociateOpsItemRelatedItemInput) (*ssm.AssociateOpsItemRelatedItemOutput, error)
1818
PutParameter(ctx context.Context, input *ssm.PutParameterInput) (*ssm.PutParameterOutput, error)
1919
DeleteParameter(ctx context.Context, input *ssm.DeleteParameterInput) (*ssm.DeleteParameterOutput, error)
20+
GetParameter(ctx context.Context, input *ssm.GetParameterInput) (*ssm.GetParameterOutput, error)
2021
// Add more methods as needed
2122
}
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
package scope
1+
package ssmiface
22

33
import (
44
"context"
55

66
"github.com/aws/aws-sdk-go-v2/config"
77
"github.com/aws/aws-sdk-go-v2/service/ssm"
8-
ssmiface "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/ssm/ssmiface"
98
)
109

11-
func NewSSMClient() (ssmiface.SSMAPI, error) {
10+
func NewSSMClient() (SSMAPI, error) {
1211
cfg, err := config.LoadDefaultConfig(context.TODO())
1312
if err != nil {
1413
return nil, err
1514
}
1615

1716
client := ssm.NewFromConfig(cfg)
18-
return &ssmiface.SSMClientV2{Client: client}, nil
17+
return &SSMClientV2{Client: client}, nil
1918
}

pkg/cloud/services/ssm/ssmiface/wrapper.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,7 @@ func (c *SSMClientV2) AddTagsToResource(ctx context.Context, input *ssm.AddTagsT
2525
func (c *SSMClientV2) AssociateOpsItemRelatedItem(ctx context.Context, input *ssm.AssociateOpsItemRelatedItemInput) (*ssm.AssociateOpsItemRelatedItemOutput, error) {
2626
return c.Client.AssociateOpsItemRelatedItem(ctx, input)
2727
}
28+
29+
func (c *SSMClientV2) GetParameter(ctx context.Context, input *ssm.GetParameterInput) (*ssm.GetParameterOutput, error) {
30+
return c.Client.GetParameter(ctx, input)
31+
}

0 commit comments

Comments
 (0)