@@ -26,21 +26,17 @@ import (
26
26
"github.com/aws/aws-sdk-go-v2/service/iam"
27
27
rgapi "github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi"
28
28
"github.com/aws/aws-sdk-go-v2/service/s3"
29
+ "github.com/aws/aws-sdk-go-v2/service/secretsmanager"
29
30
"github.com/aws/aws-sdk-go-v2/service/sqs"
30
31
"github.com/aws/aws-sdk-go-v2/service/ssm"
31
- "github.com/aws/aws-sdk-go/aws "
32
+ "github.com/aws/aws-sdk-go-v2/service/sts "
32
33
"github.com/aws/aws-sdk-go/aws/awserr"
33
34
"github.com/aws/aws-sdk-go/aws/request"
34
- "github.com/aws/aws-sdk-go/service/secretsmanager"
35
- "github.com/aws/aws-sdk-go/service/secretsmanager/secretsmanageriface"
36
- "github.com/aws/aws-sdk-go/service/sts"
37
- "github.com/aws/aws-sdk-go/service/sts/stsiface"
38
35
"k8s.io/apimachinery/pkg/runtime"
39
36
40
37
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud"
41
38
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/endpointsv2"
42
39
awslogs "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/logs"
43
- awsmetrics "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/metrics"
44
40
awsmetricsv2 "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/metricsv2"
45
41
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/throttle"
46
42
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/logger"
@@ -50,7 +46,7 @@ import (
50
46
51
47
// NewASGClient creates a new ASG API client for a given session.
52
48
func NewASGClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * autoscaling.Client {
53
- cfg := session .SessionV2 ()
49
+ cfg := session .Session ()
54
50
55
51
autoscalingOpts := []func (* autoscaling.Options ){
56
52
func (o * autoscaling.Options ) {
@@ -68,7 +64,7 @@ func NewASGClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
68
64
69
65
// NewEC2Client creates a new EC2 API client for a given session.
70
66
func NewEC2Client (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * ec2.Client {
71
- cfg := session .SessionV2 ()
67
+ cfg := session .Session ()
72
68
multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
73
69
ec2EndpointResolver := & endpointsv2.EC2EndpointResolver {
74
70
MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -92,7 +88,7 @@ func NewEC2Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
92
88
93
89
// NewELBClient creates a new ELB API client for a given session.
94
90
func NewELBClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * elb.Client {
95
- cfg := session .SessionV2 ()
91
+ cfg := session .Session ()
96
92
multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
97
93
endpointResolver := & endpointsv2.ELBEndpointResolver {
98
94
MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -116,7 +112,7 @@ func NewELBClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
116
112
117
113
// NewELBv2Client creates a new ELB v2 API client for a given session.
118
114
func NewELBv2Client (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * elbv2.Client {
119
- cfg := session .SessionV2 ()
115
+ cfg := session .Session ()
120
116
multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
121
117
endpointResolver := & endpointsv2.ELBV2EndpointResolver {
122
118
MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -140,7 +136,7 @@ func NewELBv2Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger lo
140
136
141
137
// NewEventBridgeClient creates a new EventBridge API client for a given session.
142
138
func NewEventBridgeClient (scopeUser cloud.ScopeUsage , session cloud.Session , target runtime.Object ) * eventbridge.Client {
143
- cfg := session .SessionV2 ()
139
+ cfg := session .Session ()
144
140
multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
145
141
endpointResolver := & endpointsv2.EventBridgeEndpointResolver {
146
142
MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -161,7 +157,7 @@ func NewEventBridgeClient(scopeUser cloud.ScopeUsage, session cloud.Session, tar
161
157
162
158
// NewSQSClient creates a new SQS API client for a given session.
163
159
func NewSQSClient (scopeUser cloud.ScopeUsage , session cloud.Session , target runtime.Object ) * sqs.Client {
164
- cfg := session .SessionV2 ()
160
+ cfg := session .Session ()
165
161
multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
166
162
endpointResolver := & endpointsv2.SQSEndpointResolver {
167
163
MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -182,7 +178,7 @@ func NewSQSClient(scopeUser cloud.ScopeUsage, session cloud.Session, target runt
182
178
183
179
// NewGlobalSQSClient for creating a new SQS API client that isn't tied to a cluster.
184
180
func NewGlobalSQSClient (scopeUser cloud.ScopeUsage , session cloud.Session ) * sqs.Client {
185
- cfg := session .SessionV2 ()
181
+ cfg := session .Session ()
186
182
multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
187
183
endpointResolver := & endpointsv2.SQSEndpointResolver {
188
184
MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -203,7 +199,7 @@ func NewGlobalSQSClient(scopeUser cloud.ScopeUsage, session cloud.Session) *sqs.
203
199
204
200
// NewResourgeTaggingClient creates a new Resource Tagging API client for a given session.
205
201
func NewResourgeTaggingClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * rgapi.Client {
206
- cfg := session .SessionV2 ()
202
+ cfg := session .Session ()
207
203
multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
208
204
endpointResolver := & endpointsv2.RGAPIEndpointResolver {
209
205
MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -215,27 +211,38 @@ func NewResourgeTaggingClient(scopeUser cloud.ScopeUsage, session cloud.Session,
215
211
o .ClientLogMode = awslogs .GetAWSLogLevelV2 (logger .GetLogger ())
216
212
o .EndpointResolverV2 = endpointResolver
217
213
},
218
- rgapi .WithAPIOptions (awsmetricsv2 .WithMiddlewares (scopeUser .ControllerName (), target ), awsmetricsv2 .WithCAPAUserAgentMiddleware ()),
214
+ rgapi .WithAPIOptions (
215
+ awsmetricsv2 .WithMiddlewares (scopeUser .ControllerName (), target ),
216
+ awsmetricsv2 .WithCAPAUserAgentMiddleware (),
217
+ throttle .WithServiceLimiterMiddleware (session .ServiceLimiter (rgapi .ServiceID )),
218
+ ),
219
219
}
220
220
221
221
return rgapi .NewFromConfig (cfg , opts ... )
222
222
}
223
223
224
224
// NewSecretsManagerClient creates a new Secrets API client for a given session..
225
- func NewSecretsManagerClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) secretsmanageriface.SecretsManagerAPI {
226
- secretsClient := secretsmanager .New (session .Session (), aws .NewConfig ().WithLogLevel (awslogs .GetAWSLogLevel (logger .GetLogger ())).WithLogger (awslogs .NewWrapLogr (logger .GetLogger ())))
227
- secretsClient .Handlers .Build .PushFrontNamed (getUserAgentHandler ())
228
- secretsClient .Handlers .Sign .PushFront (session .ServiceLimiter (secretsClient .ServiceID ).LimitRequest )
229
- secretsClient .Handlers .CompleteAttempt .PushFront (awsmetrics .CaptureRequestMetrics (scopeUser .ControllerName ()))
230
- secretsClient .Handlers .CompleteAttempt .PushFront (session .ServiceLimiter (secretsClient .ServiceID ).ReviewResponse )
231
- secretsClient .Handlers .Complete .PushBack (recordAWSPermissionsIssue (target ))
232
-
233
- return secretsClient
225
+ func NewSecretsManagerClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * secretsmanager.Client {
226
+ cfg := session .Session ()
227
+
228
+ secretsOpts := []func (* secretsmanager.Options ){
229
+ func (o * secretsmanager.Options ) {
230
+ o .Logger = logger .GetAWSLogger ()
231
+ o .ClientLogMode = awslogs .GetAWSLogLevelV2 (logger .GetLogger ())
232
+ },
233
+ secretsmanager .WithAPIOptions (
234
+ awsmetricsv2 .WithMiddlewares (scopeUser .ControllerName (), target ),
235
+ awsmetricsv2 .WithCAPAUserAgentMiddleware (),
236
+ throttle .WithServiceLimiterMiddleware (session .ServiceLimiter (secretsmanager .ServiceID )),
237
+ ),
238
+ }
239
+
240
+ return secretsmanager .NewFromConfig (cfg , secretsOpts ... )
234
241
}
235
242
236
243
// NewEKSClient creates a new EKS API client for a given session.
237
244
func NewEKSClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * eks.Client {
238
- cfg := session .SessionV2 ()
245
+ cfg := session .Session ()
239
246
multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
240
247
eksEndpointResolver := & endpointsv2.EKSEndpointResolver {
241
248
MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -253,7 +260,7 @@ func NewEKSClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
253
260
254
261
// NewIAMClient creates a new IAM API client for a given session.
255
262
func NewIAMClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * iam.Client {
256
- cfg := session .SessionV2 ()
263
+ cfg := session .Session ()
257
264
258
265
iamOpts := []func (* iam.Options ){
259
266
func (o * iam.Options ) {
@@ -270,18 +277,26 @@ func NewIAMClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
270
277
}
271
278
272
279
// NewSTSClient creates a new STS API client for a given session.
273
- func NewSTSClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) stsiface.STSAPI {
274
- stsClient := sts .New (session .Session (), aws .NewConfig ().WithLogLevel (awslogs .GetAWSLogLevel (logger .GetLogger ())).WithLogger (awslogs .NewWrapLogr (logger .GetLogger ())))
275
- stsClient .Handlers .Build .PushFrontNamed (getUserAgentHandler ())
276
- stsClient .Handlers .CompleteAttempt .PushFront (awsmetrics .CaptureRequestMetrics (scopeUser .ControllerName ()))
277
- stsClient .Handlers .Complete .PushBack (recordAWSPermissionsIssue (target ))
280
+ func NewSTSClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * sts.Client {
281
+ cfg := session .Session ()
282
+
283
+ stsOpts := []func (* sts.Options ){
284
+ func (o * sts.Options ) {
285
+ o .Logger = logger .GetAWSLogger ()
286
+ o .ClientLogMode = awslogs .GetAWSLogLevelV2 (logger .GetLogger ())
287
+ },
288
+ sts .WithAPIOptions (
289
+ awsmetricsv2 .WithMiddlewares (scopeUser .ControllerName (), target ),
290
+ awsmetricsv2 .WithCAPAUserAgentMiddleware (),
291
+ ),
292
+ }
278
293
279
- return stsClient
294
+ return sts . NewFromConfig ( cfg , stsOpts ... )
280
295
}
281
296
282
297
// NewSSMClient creates a new Secrets API client for a given session.
283
298
func NewSSMClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * ssm.Client {
284
- cfg := session .SessionV2 ()
299
+ cfg := session .Session ()
285
300
multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
286
301
ssmEndpointResolver := & endpointsv2.SSMEndpointResolver {
287
302
MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -303,7 +318,7 @@ func NewSSMClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
303
318
304
319
// NewS3Client creates a new S3 API client for a given session.
305
320
func NewS3Client (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * s3.Client {
306
- cfg := session .SessionV2 ()
321
+ cfg := session .Session ()
307
322
multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
308
323
s3EndpointResolver := & endpointsv2.S3EndpointResolver {
309
324
MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -340,7 +355,7 @@ func getUserAgentHandler() request.NamedHandler {
340
355
// AWSClients contains all the aws clients used by the scopes.
341
356
type AWSClients struct {
342
357
ELB * elb.Client
343
- SecretsManager secretsmanageriface. SecretsManagerAPI
358
+ SecretsManager * secretsmanager. Client
344
359
ResourceTagging * rgapi.Client
345
360
ASG * autoscaling.Client
346
361
EC2 * ec2.Client
0 commit comments