Skip to content

Commit 4e6ef24

Browse files
Migrate autoscaling to AWS SDK V2
Signed-off-by: Alexandr Demicev <[email protected]>
1 parent 7b09356 commit 4e6ef24

File tree

24 files changed

+788
-4175
lines changed

24 files changed

+788
-4175
lines changed

go.mod

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ require (
1111
github.com/aws/amazon-vpc-cni-k8s v1.15.5
1212
github.com/aws/aws-lambda-go v1.41.0
1313
github.com/aws/aws-sdk-go v1.55.5
14-
github.com/aws/aws-sdk-go-v2 v1.30.3
14+
github.com/aws/aws-sdk-go-v2 v1.36.3
1515
github.com/aws/aws-sdk-go-v2/config v1.27.11
1616
github.com/aws/aws-sdk-go-v2/credentials v1.17.11
17+
github.com/aws/aws-sdk-go-v2/service/autoscaling v1.52.4
18+
github.com/aws/aws-sdk-go-v2/service/iam v1.32.0
1719
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1
1820
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6
1921
github.com/aws/smithy-go v1.22.2
@@ -77,13 +79,12 @@ require (
7779
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 // indirect
7880
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect
7981
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect
80-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect
81-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 // indirect
82+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect
83+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect
8284
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
8385
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect
8486
github.com/aws/aws-sdk-go-v2/service/cloudformation v1.50.0 // indirect
8587
github.com/aws/aws-sdk-go-v2/service/ec2 v1.159.0 // indirect
86-
github.com/aws/aws-sdk-go-v2/service/iam v1.32.0 // indirect
8788
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
8889
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect
8990
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect

go.sum

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ github.com/aws/aws-lambda-go v1.41.0 h1:l/5fyVb6Ud9uYd411xdHZzSf2n86TakxzpvIoz7l
4444
github.com/aws/aws-lambda-go v1.41.0/go.mod h1:jwFe2KmMsHmffA1X2R09hH6lFzJQxzI8qK17ewzbQMM=
4545
github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU=
4646
github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
47-
github.com/aws/aws-sdk-go-v2 v1.30.3 h1:jUeBtG0Ih+ZIFH0F4UkmL9w3cSpaMv9tYYDbzILP8dY=
48-
github.com/aws/aws-sdk-go-v2 v1.30.3/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc=
47+
github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM=
48+
github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg=
4949
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to=
5050
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg=
5151
github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA=
@@ -54,14 +54,16 @@ github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHH
5454
github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo=
5555
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4=
5656
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg=
57-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 h1:SoNJ4RlFEQEbtDcCEt+QG56MY4fm4W8rYirAmq+/DdU=
58-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15/go.mod h1:U9ke74k1n2bf+RIgoX1SXFed1HLs51OgUSs+Ph0KJP8=
59-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 h1:C6WHdGnTDIYETAm5iErQUiVNsclNx9qbJVPIt03B6bI=
60-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15/go.mod h1:ZQLZqhcu+JhSrA9/NXRm8SkDvsycE+JkV3WGY41e+IM=
57+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q=
58+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY=
59+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0=
60+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34/go.mod h1:dFZsC0BLo346mvKQLWmoJxT+Sjp+qcVR1tRVHQGOH9Q=
6161
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
6262
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
6363
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU=
6464
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0=
65+
github.com/aws/aws-sdk-go-v2/service/autoscaling v1.52.4 h1:vzLD0FyNU4uxf2QE5UDG0jSEitiJXbVEUwf2Sk3usF4=
66+
github.com/aws/aws-sdk-go-v2/service/autoscaling v1.52.4/go.mod h1:CDqMoc3KRdZJ8qziW96J35lKH01Wq3B2aihtHj2JbRs=
6567
github.com/aws/aws-sdk-go-v2/service/cloudformation v1.50.0 h1:Ap5tOJfeAH1hO2UQc3X3uMlwP7uryFeZXMvZCXIlLSE=
6668
github.com/aws/aws-sdk-go-v2/service/cloudformation v1.50.0/go.mod h1:/v2KYdCW4BaHKayenaWEXOOdxItIwEA3oU0XzuQY3F0=
6769
github.com/aws/aws-sdk-go-v2/service/ec2 v1.159.0 h1:DmmVmiLPlcntOcjWMRwDPMNx/wi2kAVrf2ZmSN5gkAg=

pkg/cloud/converters/tags.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ package converters
1919
import (
2020
"sort"
2121

22+
autoscalingtypes "github.com/aws/aws-sdk-go-v2/service/autoscaling/types"
2223
"github.com/aws/aws-sdk-go/aws"
23-
"github.com/aws/aws-sdk-go/service/autoscaling"
2424
"github.com/aws/aws-sdk-go/service/ec2"
2525
"github.com/aws/aws-sdk-go/service/elb"
2626
"github.com/aws/aws-sdk-go/service/elbv2"
@@ -190,7 +190,7 @@ func MapToIAMTags(src infrav1.Tags) []*iam.Tag {
190190
}
191191

192192
// ASGTagsToMap converts a []*autoscaling.TagDescription into a infrav1.Tags.
193-
func ASGTagsToMap(src []*autoscaling.TagDescription) infrav1.Tags {
193+
func ASGTagsToMap(src []autoscalingtypes.TagDescription) infrav1.Tags {
194194
tags := make(infrav1.Tags, len(src))
195195

196196
for _, t := range src {

pkg/cloud/scope/clients.go

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@ limitations under the License.
1717
package scope
1818

1919
import (
20+
"github.com/aws/aws-sdk-go-v2/service/autoscaling"
2021
"github.com/aws/aws-sdk-go-v2/service/s3"
2122
"github.com/aws/aws-sdk-go/aws"
2223
"github.com/aws/aws-sdk-go/aws/awserr"
2324
"github.com/aws/aws-sdk-go/aws/request"
24-
"github.com/aws/aws-sdk-go/service/autoscaling"
25-
"github.com/aws/aws-sdk-go/service/autoscaling/autoscalingiface"
2625
"github.com/aws/aws-sdk-go/service/ec2"
2726
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
2827
"github.com/aws/aws-sdk-go/service/eks"
@@ -58,13 +57,21 @@ import (
5857
)
5958

6059
// NewASGClient creates a new ASG API client for a given session.
61-
func NewASGClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) autoscalingiface.AutoScalingAPI {
62-
asgClient := autoscaling.New(session.Session(), aws.NewConfig().WithLogLevel(awslogs.GetAWSLogLevel(logger.GetLogger())).WithLogger(awslogs.NewWrapLogr(logger.GetLogger())))
63-
asgClient.Handlers.Build.PushFrontNamed(getUserAgentHandler())
64-
asgClient.Handlers.CompleteAttempt.PushFront(awsmetrics.CaptureRequestMetrics(scopeUser.ControllerName()))
65-
asgClient.Handlers.Complete.PushBack(recordAWSPermissionsIssue(target))
60+
func NewASGClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logger.Wrapper, target runtime.Object) *autoscaling.Client {
61+
cfg := session.SessionV2()
62+
63+
autoscalingOpts := []func(*autoscaling.Options){
64+
func(o *autoscaling.Options) {
65+
o.Logger = logger.GetAWSLogger()
66+
o.ClientLogMode = awslogs.GetAWSLogLevelV2(logger.GetLogger())
67+
},
68+
autoscaling.WithAPIOptions(
69+
awsmetricsv2.WithMiddlewares(scopeUser.ControllerName(), target),
70+
awsmetricsv2.WithCAPAUserAgentMiddleware(),
71+
),
72+
}
6673

67-
return asgClient
74+
return autoscaling.NewFromConfig(cfg, autoscalingOpts...)
6875
}
6976

7077
// NewEC2Client creates a new EC2 API client for a given session.
@@ -238,7 +245,7 @@ func getUserAgentHandler() request.NamedHandler {
238245

239246
// AWSClients contains all the aws clients used by the scopes.
240247
type AWSClients struct {
241-
ASG autoscalingiface.AutoScalingAPI
248+
ASG autoscaling.Client
242249
EC2 ec2iface.EC2API
243250
ELB elbiface.ELBAPI
244251
SecretsManager secretsmanageriface.SecretsManagerAPI

0 commit comments

Comments
 (0)