From 23de00da6edc811e6d78c38076f73e4203631f31 Mon Sep 17 00:00:00 2001 From: John Gardiner Myers Date: Wed, 5 May 2021 22:08:54 -0700 Subject: [PATCH] Enable reading shared config when possibly from CLI --- .../providers/aws/route53/route53.go | 4 +- upup/pkg/fi/cloudup/awsup/aws_cloud.go | 50 +++++++++++++++---- upup/pkg/fi/cloudup/awsup/aws_utils.go | 5 +- util/pkg/vfs/s3context.go | 10 +++- 4 files changed, 55 insertions(+), 14 deletions(-) diff --git a/dnsprovider/pkg/dnsprovider/providers/aws/route53/route53.go b/dnsprovider/pkg/dnsprovider/providers/aws/route53/route53.go index 574200cc89..4fd81c1e61 100644 --- a/dnsprovider/pkg/dnsprovider/providers/aws/route53/route53.go +++ b/dnsprovider/pkg/dnsprovider/providers/aws/route53/route53.go @@ -66,7 +66,9 @@ func newRoute53(config io.Reader) (*Interface, error) { // To avoid API throttling on busier accounts awsConfig = awsConfig.WithMaxRetries(5) - sess, err := session.NewSession() + sess, err := session.NewSessionWithOptions(session.Options{ + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return nil, err } diff --git a/upup/pkg/fi/cloudup/awsup/aws_cloud.go b/upup/pkg/fi/cloudup/awsup/aws_cloud.go index ba79c87986..696899e7fd 100644 --- a/upup/pkg/fi/cloudup/awsup/aws_cloud.go +++ b/upup/pkg/fi/cloudup/awsup/aws_cloud.go @@ -253,7 +253,10 @@ func NewAWSCloud(region string, tags map[string]string) (AWSCloud, error) { requestLogger := newRequestLogger(2) - sess, err := session.NewSession(config) + sess, err := session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return c, err } @@ -261,7 +264,10 @@ func NewAWSCloud(region string, tags map[string]string) (AWSCloud, error) { c.cf.Handlers.Send.PushFront(requestLogger) c.addHandlers(region, &c.cf.Handlers) - sess, err = session.NewSession(config) + sess, err = session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return c, err } @@ -269,7 +275,10 @@ func NewAWSCloud(region string, tags map[string]string) (AWSCloud, error) { c.ec2.Handlers.Send.PushFront(requestLogger) c.addHandlers(region, &c.ec2.Handlers) - sess, err = session.NewSession(config) + sess, err = session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return c, err } @@ -277,7 +286,10 @@ func NewAWSCloud(region string, tags map[string]string) (AWSCloud, error) { c.iam.Handlers.Send.PushFront(requestLogger) c.addHandlers(region, &c.iam.Handlers) - sess, err = session.NewSession(config) + sess, err = session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return c, err } @@ -285,7 +297,10 @@ func NewAWSCloud(region string, tags map[string]string) (AWSCloud, error) { c.elb.Handlers.Send.PushFront(requestLogger) c.addHandlers(region, &c.elb.Handlers) - sess, err = session.NewSession(config) + sess, err = session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return c, err } @@ -293,7 +308,10 @@ func NewAWSCloud(region string, tags map[string]string) (AWSCloud, error) { c.elbv2.Handlers.Send.PushFront(requestLogger) c.addHandlers(region, &c.elbv2.Handlers) - sess, err = session.NewSession(config) + sess, err = session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return c, err } @@ -301,7 +319,10 @@ func NewAWSCloud(region string, tags map[string]string) (AWSCloud, error) { c.sts.Handlers.Send.PushFront(requestLogger) c.addHandlers(region, &c.sts.Handlers) - sess, err = session.NewSession(config) + sess, err = session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return c, err } @@ -309,7 +330,10 @@ func NewAWSCloud(region string, tags map[string]string) (AWSCloud, error) { c.autoscaling.Handlers.Send.PushFront(requestLogger) c.addHandlers(region, &c.autoscaling.Handlers) - sess, err = session.NewSession(config) + sess, err = session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return c, err } @@ -324,7 +348,10 @@ func NewAWSCloud(region string, tags map[string]string) (AWSCloud, error) { } } - sess, err = session.NewSession(config) + sess, err = session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return c, err } @@ -332,7 +359,10 @@ func NewAWSCloud(region string, tags map[string]string) (AWSCloud, error) { c.sqs.Handlers.Send.PushFront(requestLogger) c.addHandlers(region, &c.sqs.Handlers) - sess, err = session.NewSession(config) + sess, err = session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return c, err } diff --git a/upup/pkg/fi/cloudup/awsup/aws_utils.go b/upup/pkg/fi/cloudup/awsup/aws_utils.go index 884536dff3..22f8da039d 100644 --- a/upup/pkg/fi/cloudup/awsup/aws_utils.go +++ b/upup/pkg/fi/cloudup/awsup/aws_utils.go @@ -75,7 +75,10 @@ func ValidateRegion(region string) error { config := aws.NewConfig().WithRegion(awsRegion) config = config.WithCredentialsChainVerboseErrors(true) - sess, err := session.NewSession(config) + sess, err := session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return fmt.Errorf("error starting a new AWS session: %v", err) } diff --git a/util/pkg/vfs/s3context.go b/util/pkg/vfs/s3context.go index 92d211898d..a32545593d 100644 --- a/util/pkg/vfs/s3context.go +++ b/util/pkg/vfs/s3context.go @@ -96,7 +96,10 @@ func (s *S3Context) getClient(region string) (*s3.S3, error) { } } - sess, err := session.NewSession(config) + sess, err := session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return nil, fmt.Errorf("error starting new AWS session: %v", err) } @@ -284,7 +287,10 @@ func bruteforceBucketLocation(region *string, request *s3.GetBucketLocationInput config := &aws.Config{Region: region} config = config.WithCredentialsChainVerboseErrors(true) - session, err := session.NewSession(config) + session, err := session.NewSessionWithOptions(session.Options{ + Config: *config, + SharedConfigState: session.SharedConfigEnable, + }) if err != nil { return nil, fmt.Errorf("error creating aws session: %v", err) }