|
6 | 6 | "github.com/aws/aws-sdk-go/aws/session"
|
7 | 7 | "github.com/pkg/errors"
|
8 | 8 | "github.com/prometheus/client_golang/prometheus"
|
| 9 | + "os" |
9 | 10 | "sigs.k8s.io/aws-load-balancer-controller/pkg/aws/metrics"
|
10 | 11 | "sigs.k8s.io/aws-load-balancer-controller/pkg/aws/services"
|
11 | 12 | "sigs.k8s.io/aws-load-balancer-controller/pkg/aws/throttle"
|
@@ -42,24 +43,25 @@ type Cloud interface {
|
42 | 43 |
|
43 | 44 | // NewCloud constructs new Cloud implementation.
|
44 | 45 | func NewCloud(cfg CloudConfig, metricsRegisterer prometheus.Registerer) (Cloud, error) {
|
45 |
| - metadataSess := session.Must(session.NewSession(aws.NewConfig())) |
46 |
| - metadata := services.NewEC2Metadata(metadataSess) |
47 |
| - if len(cfg.Region) == 0 { |
48 |
| - region, err := metadata.Region() |
49 |
| - if err != nil { |
50 |
| - return nil, errors.Wrap(err, "failed to introspect region from EC2Metadata, specify --aws-region instead if EC2Metadata is unavailable") |
51 |
| - } |
52 |
| - cfg.Region = region |
53 |
| - } |
54 | 46 |
|
55 | 47 | if len(cfg.VpcID) == 0 {
|
| 48 | + metadataSess := session.Must(session.NewSession(aws.NewConfig())) |
| 49 | + metadata := services.NewEC2Metadata(metadataSess) |
56 | 50 | vpcId, err := metadata.VpcID()
|
57 | 51 | if err != nil {
|
58 | 52 | return nil, errors.Wrap(err, "failed to introspect vpcID from EC2Metadata, specify --aws-vpc-id instead if EC2Metadata is unavailable")
|
59 | 53 | }
|
60 | 54 | cfg.VpcID = vpcId
|
61 | 55 | }
|
62 | 56 |
|
| 57 | + if len(cfg.Region) == 0 { |
| 58 | + region := os.Getenv("AWS_DEFAULT_REGION") |
| 59 | + if region == "" { |
| 60 | + region = os.Getenv("AWS_REGION") |
| 61 | + } |
| 62 | + cfg.Region = region |
| 63 | + } |
| 64 | + |
63 | 65 | awsCFG := aws.NewConfig().WithRegion(cfg.Region).WithSTSRegionalEndpoint(endpoints.RegionalSTSEndpoint).WithMaxRetries(cfg.MaxRetries)
|
64 | 66 | sess := session.Must(session.NewSession(awsCFG))
|
65 | 67 | injectUserAgent(&sess.Handlers)
|
|
0 commit comments