diff --git a/builder/alicloud/ecs/access_config.go b/builder/alicloud/ecs/access_config.go index b7a5fe26b..bc1968dc8 100644 --- a/builder/alicloud/ecs/access_config.go +++ b/builder/alicloud/ecs/access_config.go @@ -26,6 +26,9 @@ type AlicloudAccessConfig struct { // The region validation can be skipped if this value is true, the default // value is false. AlicloudSkipValidation bool `mapstructure:"skip_region_validation" required:"false"` + // The image validation can be skipped if this value is true, the default + // value is false. + AlicloudSkipImageValidation bool `mapstructure:"skip_image_validation" required:"false"` // STS access token, can be set through template or by exporting as // environment variable such as `export SECURITY_TOKEN=value`. SecurityToken string `mapstructure:"security_token" required:"false"` diff --git a/builder/alicloud/ecs/builder.hcl2spec.go b/builder/alicloud/ecs/builder.hcl2spec.go index 9b5a36e73..d1f603845 100644 --- a/builder/alicloud/ecs/builder.hcl2spec.go +++ b/builder/alicloud/ecs/builder.hcl2spec.go @@ -57,6 +57,7 @@ type FlatConfig struct { AlicloudSecretKey *string `mapstructure:"secret_key" required:"true" cty:"secret_key"` AlicloudRegion *string `mapstructure:"region" required:"true" cty:"region"` AlicloudSkipValidation *bool `mapstructure:"skip_region_validation" required:"false" cty:"skip_region_validation"` + AlicloudSkipImageValidation *bool `mapstructure:"skip_image_validation" required:"false" cty:"skip_image_validation"` SecurityToken *string `mapstructure:"security_token" required:"false" cty:"security_token"` AlicloudImageName *string `mapstructure:"image_name" required:"true" cty:"image_name"` AlicloudImageVersion *string `mapstructure:"image_version" required:"false" cty:"image_version"` @@ -160,6 +161,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec { "secret_key": &hcldec.AttrSpec{Name: "secret_key", Type: cty.String, Required: false}, "region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false}, "skip_region_validation": &hcldec.AttrSpec{Name: "skip_region_validation", Type: cty.Bool, Required: false}, + "skip_image_validation": &hcldec.AttrSpec{Name: "skip_image_validation", Type: cty.Bool, Required: false}, "security_token": &hcldec.AttrSpec{Name: "security_token", Type: cty.String, Required: false}, "image_name": &hcldec.AttrSpec{Name: "image_name", Type: cty.String, Required: false}, "image_version": &hcldec.AttrSpec{Name: "image_version", Type: cty.String, Required: false}, diff --git a/builder/alicloud/ecs/step_check_source_image.go b/builder/alicloud/ecs/step_check_source_image.go index 541bd19eb..3eedec595 100644 --- a/builder/alicloud/ecs/step_check_source_image.go +++ b/builder/alicloud/ecs/step_check_source_image.go @@ -21,6 +21,9 @@ func (s *stepCheckAlicloudSourceImage) Run(ctx context.Context, state multistep. describeImagesRequest := ecs.CreateDescribeImagesRequest() describeImagesRequest.RegionId = config.AlicloudRegion describeImagesRequest.ImageId = config.AlicloudSourceImage + if config.AlicloudSkipImageValidation { + describeImagesRequest.ShowExpired = "true" + } imagesResponse, err := client.DescribeImages(describeImagesRequest) if err != nil { return halt(state, err, "Error querying alicloud image") diff --git a/post-processor/alicloud-import/post-processor.hcl2spec.go b/post-processor/alicloud-import/post-processor.hcl2spec.go index d92036608..4049af42e 100644 --- a/post-processor/alicloud-import/post-processor.hcl2spec.go +++ b/post-processor/alicloud-import/post-processor.hcl2spec.go @@ -21,6 +21,7 @@ type FlatConfig struct { AlicloudSecretKey *string `mapstructure:"secret_key" required:"true" cty:"secret_key"` AlicloudRegion *string `mapstructure:"region" required:"true" cty:"region"` AlicloudSkipValidation *bool `mapstructure:"skip_region_validation" required:"false" cty:"skip_region_validation"` + AlicloudSkipImageValidation *bool `mapstructure:"skip_image_validation" required:"false" cty:"skip_image_validation"` SecurityToken *string `mapstructure:"security_token" required:"false" cty:"security_token"` AlicloudImageName *string `mapstructure:"image_name" required:"true" cty:"image_name"` AlicloudImageVersion *string `mapstructure:"image_version" required:"false" cty:"image_version"` @@ -132,6 +133,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec { "secret_key": &hcldec.AttrSpec{Name: "secret_key", Type: cty.String, Required: false}, "region": &hcldec.AttrSpec{Name: "region", Type: cty.String, Required: false}, "skip_region_validation": &hcldec.AttrSpec{Name: "skip_region_validation", Type: cty.Bool, Required: false}, + "skip_image_validation": &hcldec.AttrSpec{Name: "skip_image_validation", Type: cty.Bool, Required: false}, "security_token": &hcldec.AttrSpec{Name: "security_token", Type: cty.String, Required: false}, "image_name": &hcldec.AttrSpec{Name: "image_name", Type: cty.String, Required: false}, "image_version": &hcldec.AttrSpec{Name: "image_version", Type: cty.String, Required: false}, diff --git a/website/source/partials/builder/alicloud/ecs/_AlicloudAccessConfig-not-required.html.md b/website/source/partials/builder/alicloud/ecs/_AlicloudAccessConfig-not-required.html.md index 3ed83f123..7e3448a7b 100644 --- a/website/source/partials/builder/alicloud/ecs/_AlicloudAccessConfig-not-required.html.md +++ b/website/source/partials/builder/alicloud/ecs/_AlicloudAccessConfig-not-required.html.md @@ -3,6 +3,9 @@ - `skip_region_validation` (bool) - The region validation can be skipped if this value is true, the default value is false. +- `skip_image_validation` (bool) - The image validation can be skipped if this value is true, the default + value is false. + - `security_token` (string) - STS access token, can be set through template or by exporting as environment variable such as `export SECURITY_TOKEN=value`. \ No newline at end of file