mirror of https://github.com/kubernetes/kops.git
				
				
				
			Migrate STS client to aws-sdk-go-v2
This commit is contained in:
		
							parent
							
								
									2a1faaa6ef
								
							
						
					
					
						commit
						856b8198ee
					
				
							
								
								
									
										2
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										2
									
								
								go.mod
								
								
								
								
							|  | @ -31,6 +31,7 @@ require ( | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0 | 	github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0 | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4 | 	github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4 | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/ssm v1.49.5 | 	github.com/aws/aws-sdk-go-v2/service/ssm v1.49.5 | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/sts v1.28.5 | ||||||
| 	github.com/aws/smithy-go v1.20.2 | 	github.com/aws/smithy-go v1.20.2 | ||||||
| 	github.com/blang/semver/v4 v4.0.0 | 	github.com/blang/semver/v4 v4.0.0 | ||||||
| 	github.com/cert-manager/cert-manager v1.14.4 | 	github.com/cert-manager/cert-manager v1.14.4 | ||||||
|  | @ -120,7 +121,6 @@ require ( | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.4 // indirect | 	github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.4 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/sso v1.20.3 // indirect | 	github.com/aws/aws-sdk-go-v2/service/sso v1.20.3 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.3 // indirect | 	github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.3 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/sts v1.28.5 // indirect |  | ||||||
| 	github.com/beorn7/perks v1.0.1 // indirect | 	github.com/beorn7/perks v1.0.1 // indirect | ||||||
| 	github.com/cespare/xxhash/v2 v2.2.0 // indirect | 	github.com/cespare/xxhash/v2 v2.2.0 // indirect | ||||||
| 	github.com/chai2010/gettext-go v1.0.2 // indirect | 	github.com/chai2010/gettext-go v1.0.2 // indirect | ||||||
|  |  | ||||||
|  | @ -427,7 +427,7 @@ func (c *ApplyClusterCmd) Run(ctx context.Context) error { | ||||||
| 		{ | 		{ | ||||||
| 			awsCloud := cloud.(awsup.AWSCloud) | 			awsCloud := cloud.(awsup.AWSCloud) | ||||||
| 
 | 
 | ||||||
| 			accountID, partition, err := awsCloud.AccountInfo() | 			accountID, partition, err := awsCloud.AccountInfo(ctx) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
|  | @ -39,6 +39,7 @@ import ( | ||||||
| 	elbv2 "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2" | 	elbv2 "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2" | ||||||
| 	elbv2types "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types" | 	elbv2types "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types" | ||||||
| 	"github.com/aws/aws-sdk-go-v2/service/iam" | 	"github.com/aws/aws-sdk-go-v2/service/iam" | ||||||
|  | 	"github.com/aws/aws-sdk-go-v2/service/sts" | ||||||
| 	"github.com/aws/aws-sdk-go/aws" | 	"github.com/aws/aws-sdk-go/aws" | ||||||
| 	"github.com/aws/aws-sdk-go/aws/awserr" | 	"github.com/aws/aws-sdk-go/aws/awserr" | ||||||
| 	"github.com/aws/aws-sdk-go/aws/credentials/stscreds" | 	"github.com/aws/aws-sdk-go/aws/credentials/stscreds" | ||||||
|  | @ -50,7 +51,6 @@ import ( | ||||||
| 	"github.com/aws/aws-sdk-go/service/ec2/ec2iface" | 	"github.com/aws/aws-sdk-go/service/ec2/ec2iface" | ||||||
| 	"github.com/aws/aws-sdk-go/service/route53" | 	"github.com/aws/aws-sdk-go/service/route53" | ||||||
| 	"github.com/aws/aws-sdk-go/service/route53/route53iface" | 	"github.com/aws/aws-sdk-go/service/route53/route53iface" | ||||||
| 	"github.com/aws/aws-sdk-go/service/sts" |  | ||||||
| 	"k8s.io/klog/v2" | 	"k8s.io/klog/v2" | ||||||
| 
 | 
 | ||||||
| 	v1 "k8s.io/api/core/v1" | 	v1 "k8s.io/api/core/v1" | ||||||
|  | @ -191,7 +191,7 @@ type AWSCloud interface { | ||||||
| 	DescribeInstanceType(instanceType string) (*ec2.InstanceTypeInfo, error) | 	DescribeInstanceType(instanceType string) (*ec2.InstanceTypeInfo, error) | ||||||
| 
 | 
 | ||||||
| 	// AccountInfo returns the AWS account ID and AWS partition that we are deploying into
 | 	// AccountInfo returns the AWS account ID and AWS partition that we are deploying into
 | ||||||
| 	AccountInfo() (string, string, error) | 	AccountInfo(ctx context.Context) (string, string, error) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type awsCloudImplementation struct { | type awsCloudImplementation struct { | ||||||
|  | @ -202,7 +202,7 @@ type awsCloudImplementation struct { | ||||||
| 	autoscaling *autoscaling.AutoScaling | 	autoscaling *autoscaling.AutoScaling | ||||||
| 	route53     *route53.Route53 | 	route53     *route53.Route53 | ||||||
| 	spotinst    spotinst.Cloud | 	spotinst    spotinst.Cloud | ||||||
| 	sts         *sts.STS | 	sts         *sts.Client | ||||||
| 	sqs         *sqs.Client | 	sqs         *sqs.Client | ||||||
| 	eventbridge *eventbridge.Client | 	eventbridge *eventbridge.Client | ||||||
| 	ssm         *ssm.Client | 	ssm         *ssm.Client | ||||||
|  | @ -332,20 +332,15 @@ func NewAWSCloud(region string, tags map[string]string) (AWSCloud, error) { | ||||||
| 		c.ec2.Handlers.Send.PushFront(requestLogger) | 		c.ec2.Handlers.Send.PushFront(requestLogger) | ||||||
| 		c.addHandlers(region, &c.ec2.Handlers) | 		c.addHandlers(region, &c.ec2.Handlers) | ||||||
| 
 | 
 | ||||||
|  | 		cfgV2, err := awsconfig.LoadDefaultConfig(ctx, loadOptions...) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return c, fmt.Errorf("failed to load default aws config: %w", err) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		c.iam = iam.NewFromConfig(cfgV2) | 		c.iam = iam.NewFromConfig(cfgV2) | ||||||
| 		c.elb = elb.NewFromConfig(cfgV2) | 		c.elb = elb.NewFromConfig(cfgV2) | ||||||
| 		c.elbv2 = elbv2.NewFromConfig(cfgV2) | 		c.elbv2 = elbv2.NewFromConfig(cfgV2) | ||||||
| 
 | 		c.sts = sts.NewFromConfig(cfgV2) | ||||||
| 		sess, err = session.NewSessionWithOptions(session.Options{ |  | ||||||
| 			Config:            *config, |  | ||||||
| 			SharedConfigState: session.SharedConfigEnable, |  | ||||||
| 		}) |  | ||||||
| 		if err != nil { |  | ||||||
| 			return c, err |  | ||||||
| 		} |  | ||||||
| 		c.sts = sts.New(sess, config) |  | ||||||
| 		c.sts.Handlers.Send.PushFront(requestLogger) |  | ||||||
| 		c.addHandlers(region, &c.sts.Handlers) |  | ||||||
| 
 | 
 | ||||||
| 		sess, err = session.NewSessionWithOptions(session.Options{ | 		sess, err = session.NewSessionWithOptions(session.Options{ | ||||||
| 			Config:            *config, | 			Config:            *config, | ||||||
|  | @ -2407,17 +2402,17 @@ func describeInstanceType(c AWSCloud, instanceType string) (*ec2.InstanceTypeInf | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // AccountInfo returns the AWS account ID and AWS partition that we are deploying into
 | // AccountInfo returns the AWS account ID and AWS partition that we are deploying into
 | ||||||
| func (c *awsCloudImplementation) AccountInfo() (string, string, error) { | func (c *awsCloudImplementation) AccountInfo(ctx context.Context) (string, string, error) { | ||||||
| 	request := &sts.GetCallerIdentityInput{} | 	request := &sts.GetCallerIdentityInput{} | ||||||
| 
 | 
 | ||||||
| 	response, err := c.sts.GetCallerIdentity(request) | 	response, err := c.sts.GetCallerIdentity(ctx, request) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return "", "", fmt.Errorf("error getting AWS account ID: %v", err) | 		return "", "", fmt.Errorf("error getting AWS account ID: %v", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	arn, err := arn.Parse(aws.StringValue(response.Arn)) | 	arn, err := arn.Parse(aws.StringValue(response.Arn)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return "", "", fmt.Errorf("Failed to parse GetCallerIdentity ARN") | 		return "", "", fmt.Errorf("failed to parse GetCallerIdentity ARN: %w", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if arn.AccountID == "" { | 	if arn.AccountID == "" { | ||||||
|  |  | ||||||
|  | @ -387,7 +387,7 @@ func (c *MockAWSCloud) DescribeInstanceType(instanceType string) (*ec2.InstanceT | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // AccountInfo returns the AWS account ID and AWS partition that we are deploying into
 | // AccountInfo returns the AWS account ID and AWS partition that we are deploying into
 | ||||||
| func (c *MockAWSCloud) AccountInfo() (string, string, error) { | func (c *MockAWSCloud) AccountInfo(ctx context.Context) (string, string, error) { | ||||||
| 	return "123456789012", "aws-test", nil | 	return "123456789012", "aws-test", nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue