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"
@@ -44,14 +45,6 @@ type Cloud interface {
44
45
func NewCloud (cfg CloudConfig , metricsRegisterer prometheus.Registerer ) (Cloud , error ) {
45
46
metadataSess := session .Must (session .NewSession (aws .NewConfig ()))
46
47
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
-
55
48
if len (cfg .VpcID ) == 0 {
56
49
vpcId , err := metadata .VpcID ()
57
50
if err != nil {
@@ -60,6 +53,22 @@ func NewCloud(cfg CloudConfig, metricsRegisterer prometheus.Registerer) (Cloud,
60
53
cfg .VpcID = vpcId
61
54
}
62
55
56
+ if len (cfg .Region ) == 0 {
57
+ region := os .Getenv ("AWS_DEFAULT_REGION" )
58
+ if region == "" {
59
+ region = os .Getenv ("AWS_REGION" )
60
+ }
61
+
62
+ if region == "" {
63
+ err := (error )(nil )
64
+ region , err = metadata .Region ()
65
+ if err != nil {
66
+ return nil , errors .Wrap (err , "failed to introspect region from EC2Metadata, specify --aws-region instead if EC2Metadata is unavailable" )
67
+ }
68
+ }
69
+ cfg .Region = region
70
+ }
71
+
63
72
awsCFG := aws .NewConfig ().WithRegion (cfg .Region ).WithSTSRegionalEndpoint (endpoints .RegionalSTSEndpoint ).WithMaxRetries (cfg .MaxRetries )
64
73
sess := session .Must (session .NewSession (awsCFG ))
65
74
injectUserAgent (& sess .Handlers )
0 commit comments