@@ -26,20 +26,17 @@ import (
2626 "github.com/aws/aws-sdk-go-v2/service/iam"
2727 rgapi "github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi"
2828 "github.com/aws/aws-sdk-go-v2/service/s3"
29+ "github.com/aws/aws-sdk-go-v2/service/secretsmanager"
2930 "github.com/aws/aws-sdk-go-v2/service/sqs"
3031 "github.com/aws/aws-sdk-go-v2/service/ssm"
3132 stsv2 "github.com/aws/aws-sdk-go-v2/service/sts"
32- "github.com/aws/aws-sdk-go/aws"
3333 "github.com/aws/aws-sdk-go/aws/awserr"
3434 "github.com/aws/aws-sdk-go/aws/request"
35- "github.com/aws/aws-sdk-go/service/secretsmanager"
36- "github.com/aws/aws-sdk-go/service/secretsmanager/secretsmanageriface"
3735 "k8s.io/apimachinery/pkg/runtime"
3836
3937 "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud"
4038 "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/endpointsv2"
4139 awslogs "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/logs"
42- awsmetrics "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/metrics"
4340 awsmetricsv2 "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/metricsv2"
4441 stsservice "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/services/sts"
4542 "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/throttle"
@@ -50,7 +47,7 @@ import (
5047
5148// NewASGClient creates a new ASG API client for a given session.
5249func NewASGClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * autoscaling.Client {
53- cfg := session .SessionV2 ()
50+ cfg := session .Session ()
5451
5552 autoscalingOpts := []func (* autoscaling.Options ){
5653 func (o * autoscaling.Options ) {
@@ -68,7 +65,7 @@ func NewASGClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
6865
6966// NewEC2Client creates a new EC2 API client for a given session.
7067func NewEC2Client (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * ec2.Client {
71- cfg := session .SessionV2 ()
68+ cfg := session .Session ()
7269 multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
7370 ec2EndpointResolver := & endpointsv2.EC2EndpointResolver {
7471 MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -92,7 +89,7 @@ func NewEC2Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
9289
9390// NewELBClient creates a new ELB API client for a given session.
9491func NewELBClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * elb.Client {
95- cfg := session .SessionV2 ()
92+ cfg := session .Session ()
9693 multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
9794 endpointResolver := & endpointsv2.ELBEndpointResolver {
9895 MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -116,7 +113,7 @@ func NewELBClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
116113
117114// NewELBv2Client creates a new ELB v2 API client for a given session.
118115func NewELBv2Client (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * elbv2.Client {
119- cfg := session .SessionV2 ()
116+ cfg := session .Session ()
120117 multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
121118 endpointResolver := & endpointsv2.ELBV2EndpointResolver {
122119 MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -140,7 +137,7 @@ func NewELBv2Client(scopeUser cloud.ScopeUsage, session cloud.Session, logger lo
140137
141138// NewEventBridgeClient creates a new EventBridge API client for a given session.
142139func NewEventBridgeClient (scopeUser cloud.ScopeUsage , session cloud.Session , target runtime.Object ) * eventbridge.Client {
143- cfg := session .SessionV2 ()
140+ cfg := session .Session ()
144141 multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
145142 endpointResolver := & endpointsv2.EventBridgeEndpointResolver {
146143 MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -161,7 +158,7 @@ func NewEventBridgeClient(scopeUser cloud.ScopeUsage, session cloud.Session, tar
161158
162159// NewSQSClient creates a new SQS API client for a given session.
163160func NewSQSClient (scopeUser cloud.ScopeUsage , session cloud.Session , target runtime.Object ) * sqs.Client {
164- cfg := session .SessionV2 ()
161+ cfg := session .Session ()
165162 multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
166163 endpointResolver := & endpointsv2.SQSEndpointResolver {
167164 MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -182,7 +179,7 @@ func NewSQSClient(scopeUser cloud.ScopeUsage, session cloud.Session, target runt
182179
183180// NewGlobalSQSClient for creating a new SQS API client that isn't tied to a cluster.
184181func NewGlobalSQSClient (scopeUser cloud.ScopeUsage , session cloud.Session ) * sqs.Client {
185- cfg := session .SessionV2 ()
182+ cfg := session .Session ()
186183 multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
187184 endpointResolver := & endpointsv2.SQSEndpointResolver {
188185 MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -203,7 +200,7 @@ func NewGlobalSQSClient(scopeUser cloud.ScopeUsage, session cloud.Session) *sqs.
203200
204201// NewResourgeTaggingClient creates a new Resource Tagging API client for a given session.
205202func NewResourgeTaggingClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * rgapi.Client {
206- cfg := session .SessionV2 ()
203+ cfg := session .Session ()
207204 multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
208205 endpointResolver := & endpointsv2.RGAPIEndpointResolver {
209206 MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -222,20 +219,27 @@ func NewResourgeTaggingClient(scopeUser cloud.ScopeUsage, session cloud.Session,
222219}
223220
224221// 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
222+ func NewSecretsManagerClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * secretsmanager.Client {
223+ cfg := session .Session ()
224+
225+ secretsOpts := []func (* secretsmanager.Options ){
226+ func (o * secretsmanager.Options ) {
227+ o .Logger = logger .GetAWSLogger ()
228+ o .ClientLogMode = awslogs .GetAWSLogLevelV2 (logger .GetLogger ())
229+ },
230+ secretsmanager .WithAPIOptions (
231+ awsmetricsv2 .WithMiddlewares (scopeUser .ControllerName (), target ),
232+ awsmetricsv2 .WithCAPAUserAgentMiddleware (),
233+ throttle .WithServiceLimiterMiddleware (session .ServiceLimiter (secretsmanager .ServiceID )),
234+ ),
235+ }
236+
237+ return secretsmanager .NewFromConfig (cfg , secretsOpts ... )
234238}
235239
236240// NewEKSClient creates a new EKS API client for a given session.
237241func NewEKSClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * eks.Client {
238- cfg := session .SessionV2 ()
242+ cfg := session .Session ()
239243 multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
240244 eksEndpointResolver := & endpointsv2.EKSEndpointResolver {
241245 MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -253,7 +257,7 @@ func NewEKSClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
253257
254258// NewIAMClient creates a new IAM API client for a given session.
255259func NewIAMClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * iam.Client {
256- cfg := session .SessionV2 ()
260+ cfg := session .Session ()
257261
258262 iamOpts := []func (* iam.Options ){
259263 func (o * iam.Options ) {
@@ -271,7 +275,7 @@ func NewIAMClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
271275
272276// NewSTSClient creates a new STS API client for a given session.
273277func NewSTSClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) stsservice.STSClient {
274- cfg := session .SessionV2 ()
278+ cfg := session .Session ()
275279 multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
276280 stsEndpointResolver := & endpointsv2.STSEndpointResolver {
277281 MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -294,7 +298,7 @@ func NewSTSClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
294298
295299// NewSSMClient creates a new Secrets API client for a given session.
296300func NewSSMClient (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * ssm.Client {
297- cfg := session .SessionV2 ()
301+ cfg := session .Session ()
298302 multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
299303 ssmEndpointResolver := & endpointsv2.SSMEndpointResolver {
300304 MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -316,7 +320,7 @@ func NewSSMClient(scopeUser cloud.ScopeUsage, session cloud.Session, logger logg
316320
317321// NewS3Client creates a new S3 API client for a given session.
318322func NewS3Client (scopeUser cloud.ScopeUsage , session cloud.Session , logger logger.Wrapper , target runtime.Object ) * s3.Client {
319- cfg := session .SessionV2 ()
323+ cfg := session .Session ()
320324 multiSvcEndpointResolver := endpointsv2 .NewMultiServiceEndpointResolver ()
321325 s3EndpointResolver := & endpointsv2.S3EndpointResolver {
322326 MultiServiceEndpointResolver : multiSvcEndpointResolver ,
@@ -353,7 +357,7 @@ func getUserAgentHandler() request.NamedHandler {
353357// AWSClients contains all the aws clients used by the scopes.
354358type AWSClients struct {
355359 ELB * elb.Client
356- SecretsManager secretsmanageriface. SecretsManagerAPI
360+ SecretsManager * secretsmanager. Client
357361 ResourceTagging * rgapi.Client
358362 ASG * autoscaling.Client
359363 EC2 * ec2.Client
0 commit comments