add max_retries option to aws builders
This commit is contained in:
parent
6d7c6ba18c
commit
7d5f0c11af
|
@ -41,6 +41,7 @@ type FlatConfig struct {
|
||||||
CustomEndpointEc2 *string `mapstructure:"custom_endpoint_ec2" required:"false" cty:"custom_endpoint_ec2"`
|
CustomEndpointEc2 *string `mapstructure:"custom_endpoint_ec2" required:"false" cty:"custom_endpoint_ec2"`
|
||||||
DecodeAuthZMessages *bool `mapstructure:"decode_authorization_messages" required:"false" cty:"decode_authorization_messages"`
|
DecodeAuthZMessages *bool `mapstructure:"decode_authorization_messages" required:"false" cty:"decode_authorization_messages"`
|
||||||
InsecureSkipTLSVerify *bool `mapstructure:"insecure_skip_tls_verify" required:"false" cty:"insecure_skip_tls_verify"`
|
InsecureSkipTLSVerify *bool `mapstructure:"insecure_skip_tls_verify" required:"false" cty:"insecure_skip_tls_verify"`
|
||||||
|
MaxRetries *int `mapstructure:"max_retries" required:"false" cty:"max_retries"`
|
||||||
MFACode *string `mapstructure:"mfa_code" required:"false" cty:"mfa_code"`
|
MFACode *string `mapstructure:"mfa_code" required:"false" cty:"mfa_code"`
|
||||||
ProfileName *string `mapstructure:"profile" required:"false" cty:"profile"`
|
ProfileName *string `mapstructure:"profile" required:"false" cty:"profile"`
|
||||||
RawRegion *string `mapstructure:"region" required:"true" cty:"region"`
|
RawRegion *string `mapstructure:"region" required:"true" cty:"region"`
|
||||||
|
@ -112,6 +113,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"custom_endpoint_ec2": &hcldec.AttrSpec{Name: "custom_endpoint_ec2", Type: cty.String, Required: false},
|
"custom_endpoint_ec2": &hcldec.AttrSpec{Name: "custom_endpoint_ec2", Type: cty.String, Required: false},
|
||||||
"decode_authorization_messages": &hcldec.AttrSpec{Name: "decode_authorization_messages", Type: cty.Bool, Required: false},
|
"decode_authorization_messages": &hcldec.AttrSpec{Name: "decode_authorization_messages", Type: cty.Bool, Required: false},
|
||||||
"insecure_skip_tls_verify": &hcldec.AttrSpec{Name: "insecure_skip_tls_verify", Type: cty.Bool, Required: false},
|
"insecure_skip_tls_verify": &hcldec.AttrSpec{Name: "insecure_skip_tls_verify", Type: cty.Bool, Required: false},
|
||||||
|
"max_retries": &hcldec.AttrSpec{Name: "max_retries", Type: cty.Number, Required: false},
|
||||||
"mfa_code": &hcldec.AttrSpec{Name: "mfa_code", Type: cty.String, Required: false},
|
"mfa_code": &hcldec.AttrSpec{Name: "mfa_code", Type: cty.String, Required: false},
|
||||||
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
||||||
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -60,6 +60,10 @@ type AccessConfig struct {
|
||||||
// This allows skipping TLS
|
// This allows skipping TLS
|
||||||
// verification of the AWS EC2 endpoint. The default is false.
|
// verification of the AWS EC2 endpoint. The default is false.
|
||||||
InsecureSkipTLSVerify bool `mapstructure:"insecure_skip_tls_verify" required:"false"`
|
InsecureSkipTLSVerify bool `mapstructure:"insecure_skip_tls_verify" required:"false"`
|
||||||
|
// This is the maximum number of times an API call is retried, in the case
|
||||||
|
// where requests are being throttled or experiencing transient failures.
|
||||||
|
// The delay between the subsequent API calls increases exponentially.
|
||||||
|
MaxRetries int `mapstructure:"max_retries" required:"false"`
|
||||||
// The MFA
|
// The MFA
|
||||||
// [TOTP](https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm)
|
// [TOTP](https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm)
|
||||||
// code. This should probably be a user variable since it changes all the
|
// code. This should probably be a user variable since it changes all the
|
||||||
|
@ -134,6 +138,9 @@ func (c *AccessConfig) Session() (*session.Session, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
config := aws.NewConfig().WithCredentialsChainVerboseErrors(true)
|
config := aws.NewConfig().WithCredentialsChainVerboseErrors(true)
|
||||||
|
if c.MaxRetries > 0 {
|
||||||
|
config = config.WithMaxRetries(c.MaxRetries)
|
||||||
|
}
|
||||||
|
|
||||||
staticCreds := credentials.NewStaticCredentials(c.AccessKey, c.SecretKey, c.Token)
|
staticCreds := credentials.NewStaticCredentials(c.AccessKey, c.SecretKey, c.Token)
|
||||||
if _, err := staticCreds.Get(); err != credentials.ErrStaticCredentialsEmpty {
|
if _, err := staticCreds.Get(); err != credentials.ErrStaticCredentialsEmpty {
|
||||||
|
|
|
@ -21,6 +21,7 @@ type FlatConfig struct {
|
||||||
CustomEndpointEc2 *string `mapstructure:"custom_endpoint_ec2" required:"false" cty:"custom_endpoint_ec2"`
|
CustomEndpointEc2 *string `mapstructure:"custom_endpoint_ec2" required:"false" cty:"custom_endpoint_ec2"`
|
||||||
DecodeAuthZMessages *bool `mapstructure:"decode_authorization_messages" required:"false" cty:"decode_authorization_messages"`
|
DecodeAuthZMessages *bool `mapstructure:"decode_authorization_messages" required:"false" cty:"decode_authorization_messages"`
|
||||||
InsecureSkipTLSVerify *bool `mapstructure:"insecure_skip_tls_verify" required:"false" cty:"insecure_skip_tls_verify"`
|
InsecureSkipTLSVerify *bool `mapstructure:"insecure_skip_tls_verify" required:"false" cty:"insecure_skip_tls_verify"`
|
||||||
|
MaxRetries *int `mapstructure:"max_retries" required:"false" cty:"max_retries"`
|
||||||
MFACode *string `mapstructure:"mfa_code" required:"false" cty:"mfa_code"`
|
MFACode *string `mapstructure:"mfa_code" required:"false" cty:"mfa_code"`
|
||||||
ProfileName *string `mapstructure:"profile" required:"false" cty:"profile"`
|
ProfileName *string `mapstructure:"profile" required:"false" cty:"profile"`
|
||||||
RawRegion *string `mapstructure:"region" required:"true" cty:"region"`
|
RawRegion *string `mapstructure:"region" required:"true" cty:"region"`
|
||||||
|
@ -147,6 +148,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"custom_endpoint_ec2": &hcldec.AttrSpec{Name: "custom_endpoint_ec2", Type: cty.String, Required: false},
|
"custom_endpoint_ec2": &hcldec.AttrSpec{Name: "custom_endpoint_ec2", Type: cty.String, Required: false},
|
||||||
"decode_authorization_messages": &hcldec.AttrSpec{Name: "decode_authorization_messages", Type: cty.Bool, Required: false},
|
"decode_authorization_messages": &hcldec.AttrSpec{Name: "decode_authorization_messages", Type: cty.Bool, Required: false},
|
||||||
"insecure_skip_tls_verify": &hcldec.AttrSpec{Name: "insecure_skip_tls_verify", Type: cty.Bool, Required: false},
|
"insecure_skip_tls_verify": &hcldec.AttrSpec{Name: "insecure_skip_tls_verify", Type: cty.Bool, Required: false},
|
||||||
|
"max_retries": &hcldec.AttrSpec{Name: "max_retries", Type: cty.Number, Required: false},
|
||||||
"mfa_code": &hcldec.AttrSpec{Name: "mfa_code", Type: cty.String, Required: false},
|
"mfa_code": &hcldec.AttrSpec{Name: "mfa_code", Type: cty.String, Required: false},
|
||||||
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
||||||
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -64,6 +64,7 @@ type FlatConfig struct {
|
||||||
CustomEndpointEc2 *string `mapstructure:"custom_endpoint_ec2" required:"false" cty:"custom_endpoint_ec2"`
|
CustomEndpointEc2 *string `mapstructure:"custom_endpoint_ec2" required:"false" cty:"custom_endpoint_ec2"`
|
||||||
DecodeAuthZMessages *bool `mapstructure:"decode_authorization_messages" required:"false" cty:"decode_authorization_messages"`
|
DecodeAuthZMessages *bool `mapstructure:"decode_authorization_messages" required:"false" cty:"decode_authorization_messages"`
|
||||||
InsecureSkipTLSVerify *bool `mapstructure:"insecure_skip_tls_verify" required:"false" cty:"insecure_skip_tls_verify"`
|
InsecureSkipTLSVerify *bool `mapstructure:"insecure_skip_tls_verify" required:"false" cty:"insecure_skip_tls_verify"`
|
||||||
|
MaxRetries *int `mapstructure:"max_retries" required:"false" cty:"max_retries"`
|
||||||
MFACode *string `mapstructure:"mfa_code" required:"false" cty:"mfa_code"`
|
MFACode *string `mapstructure:"mfa_code" required:"false" cty:"mfa_code"`
|
||||||
ProfileName *string `mapstructure:"profile" required:"false" cty:"profile"`
|
ProfileName *string `mapstructure:"profile" required:"false" cty:"profile"`
|
||||||
RawRegion *string `mapstructure:"region" required:"true" cty:"region"`
|
RawRegion *string `mapstructure:"region" required:"true" cty:"region"`
|
||||||
|
@ -191,6 +192,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"custom_endpoint_ec2": &hcldec.AttrSpec{Name: "custom_endpoint_ec2", Type: cty.String, Required: false},
|
"custom_endpoint_ec2": &hcldec.AttrSpec{Name: "custom_endpoint_ec2", Type: cty.String, Required: false},
|
||||||
"decode_authorization_messages": &hcldec.AttrSpec{Name: "decode_authorization_messages", Type: cty.Bool, Required: false},
|
"decode_authorization_messages": &hcldec.AttrSpec{Name: "decode_authorization_messages", Type: cty.Bool, Required: false},
|
||||||
"insecure_skip_tls_verify": &hcldec.AttrSpec{Name: "insecure_skip_tls_verify", Type: cty.Bool, Required: false},
|
"insecure_skip_tls_verify": &hcldec.AttrSpec{Name: "insecure_skip_tls_verify", Type: cty.Bool, Required: false},
|
||||||
|
"max_retries": &hcldec.AttrSpec{Name: "max_retries", Type: cty.Number, Required: false},
|
||||||
"mfa_code": &hcldec.AttrSpec{Name: "mfa_code", Type: cty.String, Required: false},
|
"mfa_code": &hcldec.AttrSpec{Name: "mfa_code", Type: cty.String, Required: false},
|
||||||
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
||||||
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -64,6 +64,7 @@ type FlatConfig struct {
|
||||||
CustomEndpointEc2 *string `mapstructure:"custom_endpoint_ec2" required:"false" cty:"custom_endpoint_ec2"`
|
CustomEndpointEc2 *string `mapstructure:"custom_endpoint_ec2" required:"false" cty:"custom_endpoint_ec2"`
|
||||||
DecodeAuthZMessages *bool `mapstructure:"decode_authorization_messages" required:"false" cty:"decode_authorization_messages"`
|
DecodeAuthZMessages *bool `mapstructure:"decode_authorization_messages" required:"false" cty:"decode_authorization_messages"`
|
||||||
InsecureSkipTLSVerify *bool `mapstructure:"insecure_skip_tls_verify" required:"false" cty:"insecure_skip_tls_verify"`
|
InsecureSkipTLSVerify *bool `mapstructure:"insecure_skip_tls_verify" required:"false" cty:"insecure_skip_tls_verify"`
|
||||||
|
MaxRetries *int `mapstructure:"max_retries" required:"false" cty:"max_retries"`
|
||||||
MFACode *string `mapstructure:"mfa_code" required:"false" cty:"mfa_code"`
|
MFACode *string `mapstructure:"mfa_code" required:"false" cty:"mfa_code"`
|
||||||
ProfileName *string `mapstructure:"profile" required:"false" cty:"profile"`
|
ProfileName *string `mapstructure:"profile" required:"false" cty:"profile"`
|
||||||
RawRegion *string `mapstructure:"region" required:"true" cty:"region"`
|
RawRegion *string `mapstructure:"region" required:"true" cty:"region"`
|
||||||
|
@ -171,6 +172,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"custom_endpoint_ec2": &hcldec.AttrSpec{Name: "custom_endpoint_ec2", Type: cty.String, Required: false},
|
"custom_endpoint_ec2": &hcldec.AttrSpec{Name: "custom_endpoint_ec2", Type: cty.String, Required: false},
|
||||||
"decode_authorization_messages": &hcldec.AttrSpec{Name: "decode_authorization_messages", Type: cty.Bool, Required: false},
|
"decode_authorization_messages": &hcldec.AttrSpec{Name: "decode_authorization_messages", Type: cty.Bool, Required: false},
|
||||||
"insecure_skip_tls_verify": &hcldec.AttrSpec{Name: "insecure_skip_tls_verify", Type: cty.Bool, Required: false},
|
"insecure_skip_tls_verify": &hcldec.AttrSpec{Name: "insecure_skip_tls_verify", Type: cty.Bool, Required: false},
|
||||||
|
"max_retries": &hcldec.AttrSpec{Name: "max_retries", Type: cty.Number, Required: false},
|
||||||
"mfa_code": &hcldec.AttrSpec{Name: "mfa_code", Type: cty.String, Required: false},
|
"mfa_code": &hcldec.AttrSpec{Name: "mfa_code", Type: cty.String, Required: false},
|
||||||
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
||||||
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -21,6 +21,7 @@ type FlatConfig struct {
|
||||||
CustomEndpointEc2 *string `mapstructure:"custom_endpoint_ec2" required:"false" cty:"custom_endpoint_ec2"`
|
CustomEndpointEc2 *string `mapstructure:"custom_endpoint_ec2" required:"false" cty:"custom_endpoint_ec2"`
|
||||||
DecodeAuthZMessages *bool `mapstructure:"decode_authorization_messages" required:"false" cty:"decode_authorization_messages"`
|
DecodeAuthZMessages *bool `mapstructure:"decode_authorization_messages" required:"false" cty:"decode_authorization_messages"`
|
||||||
InsecureSkipTLSVerify *bool `mapstructure:"insecure_skip_tls_verify" required:"false" cty:"insecure_skip_tls_verify"`
|
InsecureSkipTLSVerify *bool `mapstructure:"insecure_skip_tls_verify" required:"false" cty:"insecure_skip_tls_verify"`
|
||||||
|
MaxRetries *int `mapstructure:"max_retries" required:"false" cty:"max_retries"`
|
||||||
MFACode *string `mapstructure:"mfa_code" required:"false" cty:"mfa_code"`
|
MFACode *string `mapstructure:"mfa_code" required:"false" cty:"mfa_code"`
|
||||||
ProfileName *string `mapstructure:"profile" required:"false" cty:"profile"`
|
ProfileName *string `mapstructure:"profile" required:"false" cty:"profile"`
|
||||||
RawRegion *string `mapstructure:"region" required:"true" cty:"region"`
|
RawRegion *string `mapstructure:"region" required:"true" cty:"region"`
|
||||||
|
@ -154,6 +155,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"custom_endpoint_ec2": &hcldec.AttrSpec{Name: "custom_endpoint_ec2", Type: cty.String, Required: false},
|
"custom_endpoint_ec2": &hcldec.AttrSpec{Name: "custom_endpoint_ec2", Type: cty.String, Required: false},
|
||||||
"decode_authorization_messages": &hcldec.AttrSpec{Name: "decode_authorization_messages", Type: cty.Bool, Required: false},
|
"decode_authorization_messages": &hcldec.AttrSpec{Name: "decode_authorization_messages", Type: cty.Bool, Required: false},
|
||||||
"insecure_skip_tls_verify": &hcldec.AttrSpec{Name: "insecure_skip_tls_verify", Type: cty.Bool, Required: false},
|
"insecure_skip_tls_verify": &hcldec.AttrSpec{Name: "insecure_skip_tls_verify", Type: cty.Bool, Required: false},
|
||||||
|
"max_retries": &hcldec.AttrSpec{Name: "max_retries", Type: cty.Number, Required: false},
|
||||||
"mfa_code": &hcldec.AttrSpec{Name: "mfa_code", Type: cty.String, Required: false},
|
"mfa_code": &hcldec.AttrSpec{Name: "mfa_code", Type: cty.String, Required: false},
|
||||||
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
||||||
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -21,6 +21,7 @@ type FlatConfig struct {
|
||||||
CustomEndpointEc2 *string `mapstructure:"custom_endpoint_ec2" required:"false" cty:"custom_endpoint_ec2"`
|
CustomEndpointEc2 *string `mapstructure:"custom_endpoint_ec2" required:"false" cty:"custom_endpoint_ec2"`
|
||||||
DecodeAuthZMessages *bool `mapstructure:"decode_authorization_messages" required:"false" cty:"decode_authorization_messages"`
|
DecodeAuthZMessages *bool `mapstructure:"decode_authorization_messages" required:"false" cty:"decode_authorization_messages"`
|
||||||
InsecureSkipTLSVerify *bool `mapstructure:"insecure_skip_tls_verify" required:"false" cty:"insecure_skip_tls_verify"`
|
InsecureSkipTLSVerify *bool `mapstructure:"insecure_skip_tls_verify" required:"false" cty:"insecure_skip_tls_verify"`
|
||||||
|
MaxRetries *int `mapstructure:"max_retries" required:"false" cty:"max_retries"`
|
||||||
MFACode *string `mapstructure:"mfa_code" required:"false" cty:"mfa_code"`
|
MFACode *string `mapstructure:"mfa_code" required:"false" cty:"mfa_code"`
|
||||||
ProfileName *string `mapstructure:"profile" required:"false" cty:"profile"`
|
ProfileName *string `mapstructure:"profile" required:"false" cty:"profile"`
|
||||||
RawRegion *string `mapstructure:"region" required:"true" cty:"region"`
|
RawRegion *string `mapstructure:"region" required:"true" cty:"region"`
|
||||||
|
@ -69,6 +70,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"custom_endpoint_ec2": &hcldec.AttrSpec{Name: "custom_endpoint_ec2", Type: cty.String, Required: false},
|
"custom_endpoint_ec2": &hcldec.AttrSpec{Name: "custom_endpoint_ec2", Type: cty.String, Required: false},
|
||||||
"decode_authorization_messages": &hcldec.AttrSpec{Name: "decode_authorization_messages", Type: cty.Bool, Required: false},
|
"decode_authorization_messages": &hcldec.AttrSpec{Name: "decode_authorization_messages", Type: cty.Bool, Required: false},
|
||||||
"insecure_skip_tls_verify": &hcldec.AttrSpec{Name: "insecure_skip_tls_verify", Type: cty.Bool, Required: false},
|
"insecure_skip_tls_verify": &hcldec.AttrSpec{Name: "insecure_skip_tls_verify", Type: cty.Bool, Required: false},
|
||||||
|
"max_retries": &hcldec.AttrSpec{Name: "max_retries", Type: cty.Number, Required: false},
|
||||||
"mfa_code": &hcldec.AttrSpec{Name: "mfa_code", Type: cty.String, Required: false},
|
"mfa_code": &hcldec.AttrSpec{Name: "mfa_code", Type: cty.String, Required: false},
|
||||||
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
"profile": &hcldec.AttrSpec{Name: "profile", Type: cty.String, Required: false},
|
||||||
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
"region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -12,6 +12,10 @@
|
||||||
- `insecure_skip_tls_verify` (bool) - This allows skipping TLS
|
- `insecure_skip_tls_verify` (bool) - This allows skipping TLS
|
||||||
verification of the AWS EC2 endpoint. The default is false.
|
verification of the AWS EC2 endpoint. The default is false.
|
||||||
|
|
||||||
|
- `max_retries` (int) - This is the maximum number of times an API call is retried, in the case
|
||||||
|
where requests are being throttled or experiencing transient failures.
|
||||||
|
The delay between the subsequent API calls increases exponentially.
|
||||||
|
|
||||||
- `mfa_code` (string) - The MFA
|
- `mfa_code` (string) - The MFA
|
||||||
[TOTP](https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm)
|
[TOTP](https://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm)
|
||||||
code. This should probably be a user variable since it changes all the
|
code. This should probably be a user variable since it changes all the
|
||||||
|
|
Loading…
Reference in New Issue