Skip to content

Commit f4a8d2c

Browse files
committed
Migrate to AWS SDK v2
1 parent 279e432 commit f4a8d2c

File tree

11 files changed

+435
-265
lines changed

11 files changed

+435
-265
lines changed

go.mod

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,14 @@ require (
1515
github.com/Azure/go-autorest/autorest/azure/auth v0.5.13
1616
github.com/Azure/go-autorest/autorest/to v0.4.1
1717
github.com/Masterminds/semver v1.5.0
18-
github.com/aws/aws-sdk-go v1.55.8
18+
github.com/aws/aws-sdk-go-v2 v1.39.4
19+
github.com/aws/aws-sdk-go-v2/config v1.31.15
20+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.258.1
21+
github.com/aws/aws-sdk-go-v2/service/iam v1.49.0
22+
github.com/aws/aws-sdk-go-v2/service/kms v1.46.2
23+
github.com/aws/aws-sdk-go-v2/service/s3 v1.88.7
24+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.9
25+
github.com/aws/smithy-go v1.23.1
1926
github.com/go-logr/zapr v1.3.0
2027
github.com/go-test/deep v1.1.1
2128
github.com/google/go-cmp v0.7.0
@@ -55,6 +62,19 @@ require (
5562
github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // indirect
5663
github.com/Masterminds/semver/v3 v3.4.0 // indirect
5764
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
65+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.2 // indirect
66+
github.com/aws/aws-sdk-go-v2/credentials v1.18.19 // indirect
67+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11 // indirect
68+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.11 // indirect
69+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.11 // indirect
70+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
71+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.11 // indirect
72+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2 // indirect
73+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.2 // indirect
74+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.11 // indirect
75+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.11 // indirect
76+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.8 // indirect
77+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.3 // indirect
5878
github.com/blang/semver/v4 v4.0.0 // indirect
5979
github.com/felixge/httpsnoop v1.0.4 // indirect
6080
github.com/fsnotify/fsnotify v1.9.0 // indirect
@@ -68,7 +88,6 @@ require (
6888
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 // indirect
6989
github.com/google/s2a-go v0.1.9 // indirect
7090
github.com/inconshreveable/mousetrap v1.1.0 // indirect
71-
github.com/jmespath/go-jmespath v0.4.0 // indirect
7291
github.com/kylelemons/godebug v1.1.0 // indirect
7392
github.com/onsi/ginkgo v1.16.5 // indirect
7493
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect

go.sum

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,48 @@ github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1
7171
github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
7272
github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
7373
github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
74-
github.com/aws/aws-sdk-go v1.55.8 h1:JRmEUbU52aJQZ2AjX4q4Wu7t4uZjOu71uyNmaWlUkJQ=
75-
github.com/aws/aws-sdk-go v1.55.8/go.mod h1:ZkViS9AqA6otK+JBBNH2++sx1sgxrPKcSzPPvQkUtXk=
74+
github.com/aws/aws-sdk-go-v2 v1.39.4 h1:qTsQKcdQPHnfGYBBs+Btl8QwxJeoWcOcPcixK90mRhg=
75+
github.com/aws/aws-sdk-go-v2 v1.39.4/go.mod h1:yWSxrnioGUZ4WVv9TgMrNUeLV3PFESn/v+6T/Su8gnM=
76+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.2 h1:t9yYsydLYNBk9cJ73rgPhPWqOh/52fcWDQB5b1JsKSY=
77+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.2/go.mod h1:IusfVNTmiSN3t4rhxWFaBAqn+mcNdwKtPcV16eYdgko=
78+
github.com/aws/aws-sdk-go-v2/config v1.31.15 h1:gE3M4xuNXfC/9bG4hyowGm/35uQTi7bUKeYs5e/6uvU=
79+
github.com/aws/aws-sdk-go-v2/config v1.31.15/go.mod h1:HvnvGJoE2I95KAIW8kkWVPJ4XhdrlvwJpV6pEzFQa8o=
80+
github.com/aws/aws-sdk-go-v2/credentials v1.18.19 h1:Jc1zzwkSY1QbkEcLujwqRTXOdvW8ppND3jRBb/VhBQc=
81+
github.com/aws/aws-sdk-go-v2/credentials v1.18.19/go.mod h1:DIfQ9fAk5H0pGtnqfqkbSIzky82qYnGvh06ASQXXg6A=
82+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11 h1:X7X4YKb+c0rkI6d4uJ5tEMxXgCZ+jZ/D6mvkno8c8Uw=
83+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.11/go.mod h1:EqM6vPZQsZHYvC4Cai35UDg/f5NCEU+vp0WfbVqVcZc=
84+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.11 h1:7AANQZkF3ihM8fbdftpjhken0TP9sBzFbV/Ze/Y4HXA=
85+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.11/go.mod h1:NTF4QCGkm6fzVwncpkFQqoquQyOolcyXfbpC98urj+c=
86+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.11 h1:ShdtWUZT37LCAA4Mw2kJAJtzaszfSHFb5n25sdcv4YE=
87+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.11/go.mod h1:7bUb2sSr2MZ3M/N+VyETLTQtInemHXb/Fl3s8CLzm0Y=
88+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk=
89+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc=
90+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.11 h1:bKgSxk1TW//00PGQqYmrq83c+2myGidEclp+t9pPqVI=
91+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.11/go.mod h1:vrPYCQ6rFHL8jzQA8ppu3gWX18zxjLIDGTeqDxkBmSI=
92+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.258.1 h1:D8cBaI1TsIF+cbB8qPmiZWsMqGsbs1/e7qYQ0NMDscY=
93+
github.com/aws/aws-sdk-go-v2/service/ec2 v1.258.1/go.mod h1:DT0XByGaNaOff3CtLVmj3jKcMeVDfOj5DkLD39UPJY0=
94+
github.com/aws/aws-sdk-go-v2/service/iam v1.49.0 h1:3wiwzsfXBaykcbC4c6vaWkx9B46LXhFR8jyVMCZXK/k=
95+
github.com/aws/aws-sdk-go-v2/service/iam v1.49.0/go.mod h1:QvuzFFqvuknv43XjhxdWTMHt1ESYlQPaLJtb6iBlD3M=
96+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2 h1:xtuxji5CS0JknaXoACOunXOYOQzgfTvGAc9s2QdCJA4=
97+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2/go.mod h1:zxwi0DIR0rcRcgdbl7E2MSOvxDyyXGBlScvBkARFaLQ=
98+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.2 h1:DGFpGybmutVsCuF6vSuLZ25Vh55E3VmsnJmFfjeBx4M=
99+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.2/go.mod h1:hm/wU1HDvXCFEDzOLorQnZZ/CVvPXvWEmHMSmqgQRuA=
100+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.11 h1:GpMf3z2KJa4RnJ0ew3Hac+hRFYLZ9DDjfgXjuW+pB54=
101+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.11/go.mod h1:6MZP3ZI4QQsgUCFTwMZA2V0sEriNQ8k2hmoHF3qjimQ=
102+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.11 h1:weapBOuuFIBEQ9OX/NVW3tFQCvSutyjZYk/ga5jDLPo=
103+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.11/go.mod h1:3C1gN4FmIVLwYSh8etngUS+f1viY6nLCDVtZmrFbDy0=
104+
github.com/aws/aws-sdk-go-v2/service/kms v1.46.2 h1:hz2rJseQXnVQtVbByFpeSCNJBBU7oFN+yenW4biJtvs=
105+
github.com/aws/aws-sdk-go-v2/service/kms v1.46.2/go.mod h1:E4ink1KCQgqIe2pHFD9E+b5CNXovm50rQbWFuh0cM+I=
106+
github.com/aws/aws-sdk-go-v2/service/s3 v1.88.7 h1:Wer3W0GuaedWT7dv/PiWNZGSQFSTcBY2rZpbiUp5xcA=
107+
github.com/aws/aws-sdk-go-v2/service/s3 v1.88.7/go.mod h1:UHKgcRSx8PVtvsc1Poxb/Co3PD3wL7P+f49P0+cWtuY=
108+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.8 h1:M5nimZmugcZUO9wG7iVtROxPhiqyZX6ejS1lxlDPbTU=
109+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.8/go.mod h1:mbef/pgKhtKRwrigPPs7SSSKZgytzP8PQ6P6JAAdqyM=
110+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.3 h1:S5GuJZpYxE0lKeMHKn+BRTz6PTFpgThyJ+5mYfux7BM=
111+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.3/go.mod h1:X4OF+BTd7HIb3L+tc4UlWHVrpgwZZIVENU15pRDVTI0=
112+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.9 h1:Ekml5vGg6sHSZLZJQJagefnVe6PmqC2oiRkBq4F7fU0=
113+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.9/go.mod h1:/e15V+o1zFHWdH3u7lpI3rVBcxszktIKuHKCY2/py+k=
114+
github.com/aws/smithy-go v1.23.1 h1:sLvcH6dfAFwGkHLZ7dGiYF7aK6mg4CgKA/iDKjLDt9M=
115+
github.com/aws/smithy-go v1.23.1/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
76116
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
77117
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
78118
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
@@ -183,10 +223,6 @@ github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld
183223
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
184224
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
185225
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
186-
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
187-
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
188-
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
189-
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
190226
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
191227
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
192228
github.com/joshdk/go-junit v1.0.0 h1:S86cUKIdwBHWwA6xCmFlf3RTLfVXYQfvanM5Uh+K6GE=
@@ -481,7 +517,6 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkep
481517
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
482518
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
483519
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
484-
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
485520
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
486521
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
487522
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=

test/helper/cloud/aws/aws.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,8 @@ package aws
1616

1717
import (
1818
"strings"
19-
20-
"github.com/aws/aws-sdk-go/aws"
21-
"github.com/aws/aws-sdk-go/aws/session"
2219
)
2320

2421
func RegionCode(region string) string {
2522
return strings.ReplaceAll(strings.ToLower(region), "_", "-")
2623
}
27-
28-
func newSession(region string) (*session.Session, error) {
29-
awsSession, err := session.NewSession(aws.NewConfig().WithRegion(region))
30-
if err != nil {
31-
return nil, err
32-
}
33-
return awsSession, nil
34-
}

test/helper/cloud/aws/vpc.go

Lines changed: 46 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -15,43 +15,54 @@
1515
package aws
1616

1717
import (
18+
"context"
1819
"fmt"
1920

20-
"github.com/aws/aws-sdk-go/aws"
21-
"github.com/aws/aws-sdk-go/service/ec2"
21+
"github.com/aws/aws-sdk-go-v2/aws"
22+
"github.com/aws/aws-sdk-go-v2/config"
23+
"github.com/aws/aws-sdk-go-v2/service/ec2"
24+
"github.com/aws/aws-sdk-go-v2/service/ec2/types"
2225

2326
awshelper "github.com/mongodb/mongodb-atlas-kubernetes/v2/test/helper/e2e/api/aws"
2427
)
2528

2629
func CreateVPC(name, cidr, region string) (string, error) {
27-
awsSession, err := newSession(region)
30+
ctx := context.TODO()
31+
32+
cfg, err := config.LoadDefaultConfig(ctx)
2833
if err != nil {
29-
return "", fmt.Errorf("failed to create an AWS session: %w", err)
34+
return "", fmt.Errorf("failed to create an AWS config: %w", err)
3035
}
31-
ec2Client := ec2.New(awsSession)
32-
result, err := ec2Client.CreateVpc(&ec2.CreateVpcInput{
33-
AmazonProvidedIpv6CidrBlock: aws.Bool(false),
34-
CidrBlock: aws.String(cidr),
35-
TagSpecifications: []*ec2.TagSpecification{{
36-
ResourceType: aws.String(ec2.ResourceTypeVpc),
37-
Tags: []*ec2.Tag{
38-
{Key: aws.String("Name"), Value: aws.String(name)},
39-
{Key: aws.String(awshelper.OwnerEmailTag), Value: aws.String(awshelper.AKOEmail)},
40-
{Key: aws.String(awshelper.CostCenterTag), Value: aws.String(awshelper.AKOCostCenter)},
41-
{Key: aws.String(awshelper.EnvironmentTag), Value: aws.String(awshelper.AKOEnvTest)},
42-
},
43-
}},
36+
ec2Client := ec2.NewFromConfig(cfg, func(o *ec2.Options) {
37+
o.Region = region
4438
})
39+
result, err := ec2Client.CreateVpc(
40+
ctx,
41+
&ec2.CreateVpcInput{
42+
AmazonProvidedIpv6CidrBlock: aws.Bool(false),
43+
CidrBlock: aws.String(cidr),
44+
TagSpecifications: []types.TagSpecification{{
45+
ResourceType: types.ResourceTypeVpc,
46+
Tags: []types.Tag{
47+
{Key: aws.String("Name"), Value: aws.String(name)},
48+
{Key: aws.String(awshelper.OwnerEmailTag), Value: aws.String(awshelper.AKOEmail)},
49+
{Key: aws.String(awshelper.CostCenterTag), Value: aws.String(awshelper.AKOCostCenter)},
50+
{Key: aws.String(awshelper.EnvironmentTag), Value: aws.String(awshelper.AKOEnvTest)},
51+
},
52+
}},
53+
})
4554
if err != nil {
4655
return "", fmt.Errorf("failed to create an AWS VPC: %w", err)
4756
}
4857

49-
_, err = ec2Client.ModifyVpcAttribute(&ec2.ModifyVpcAttributeInput{
50-
EnableDnsHostnames: &ec2.AttributeBooleanValue{
51-
Value: aws.Bool(true),
52-
},
53-
VpcId: result.Vpc.VpcId,
54-
})
58+
_, err = ec2Client.ModifyVpcAttribute(
59+
ctx,
60+
&ec2.ModifyVpcAttributeInput{
61+
EnableDnsHostnames: &types.AttributeBooleanValue{
62+
Value: aws.Bool(true),
63+
},
64+
VpcId: result.Vpc.VpcId,
65+
})
5566
if err != nil {
5667
return "", fmt.Errorf("failed to configure AWS VPC: %w", err)
5768
}
@@ -60,14 +71,20 @@ func CreateVPC(name, cidr, region string) (string, error) {
6071
}
6172

6273
func DeleteVPC(vpcID, region string) error {
63-
awsSession, err := newSession(region)
74+
ctx := context.TODO()
75+
76+
cfg, err := config.LoadDefaultConfig(ctx)
6477
if err != nil {
65-
return fmt.Errorf("failed to create an AWS session: %w", err)
78+
return fmt.Errorf("failed to create an AWS config: %w", err)
6679
}
67-
ec2Client := ec2.New(awsSession)
68-
_, err = ec2Client.DeleteVpc(&ec2.DeleteVpcInput{
69-
DryRun: aws.Bool(false),
70-
VpcId: aws.String(vpcID),
80+
ec2Client := ec2.NewFromConfig(cfg, func(o *ec2.Options) {
81+
o.Region = region
7182
})
83+
_, err = ec2Client.DeleteVpc(
84+
ctx,
85+
&ec2.DeleteVpcInput{
86+
DryRun: aws.Bool(false),
87+
VpcId: aws.String(vpcID),
88+
})
7289
return err
7390
}

0 commit comments

Comments
 (0)