Skip to content

Commit eef8634

Browse files
committed
feat: Add support for region argument on internal resources per https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/enhanced-region-support
1 parent 2c2de09 commit eef8634

File tree

9 files changed

+45
-10
lines changed

9 files changed

+45
-10
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,13 +168,13 @@ module "parameter" {
168168
| Name | Version |
169169
|------|---------|
170170
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0 |
171-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.37 |
171+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.0.0 |
172172

173173
## Providers
174174

175175
| Name | Version |
176176
|------|---------|
177-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 4.37 |
177+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.0.0 |
178178

179179
## Modules
180180

@@ -199,6 +199,7 @@ No modules.
199199
| <a name="input_key_id"></a> [key\_id](#input\_key\_id) | KMS key ID or ARN for encrypting a parameter (when type is SecureString) | `string` | `null` | no |
200200
| <a name="input_name"></a> [name](#input\_name) | Name of SSM parameter | `string` | `null` | no |
201201
| <a name="input_overwrite"></a> [overwrite](#input\_overwrite) | Overwrite an existing parameter. If not specified, defaults to false during create operations to avoid overwriting existing resources and then true for all subsequent operations once the resource is managed by Terraform. Only relevant if ignore\_value\_changes is false. | `bool` | `false` | no |
202+
| <a name="input_region"></a> [region](#input\_region) | Region where the resource(s) will be managed. Defaults to the Region set in the provider configuration | `string` | `null` | no |
202203
| <a name="input_secure_type"></a> [secure\_type](#input\_secure\_type) | Whether the type of the value should be considered as secure or not? | `bool` | `false` | no |
203204
| <a name="input_tags"></a> [tags](#input\_tags) | A mapping of tags to assign to resources | `map(string)` | `{}` | no |
204205
| <a name="input_tier"></a> [tier](#input\_tier) | Parameter tier to assign to the parameter. If not specified, will use the default parameter tier for the region. Valid tiers are Standard, Advanced, and Intelligent-Tiering. Downgrading an Advanced tier parameter to Standard will recreate the resource. | `string` | `null` | no |

examples/complete/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,21 @@ Note that this example may create resources which cost money. Run `terraform des
2020
| Name | Version |
2121
|------|---------|
2222
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0 |
23-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.37 |
23+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.0.0 |
2424

2525
## Providers
2626

2727
| Name | Version |
2828
|------|---------|
29-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 4.37 |
29+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.0.0 |
3030

3131
## Modules
3232

3333
| Name | Source | Version |
3434
|------|--------|---------|
3535
| <a name="module_disabled"></a> [disabled](#module\_disabled) | ../../ | n/a |
36+
| <a name="module_explicit_region"></a> [explicit\_region](#module\_explicit\_region) | ../../ | n/a |
37+
| <a name="module_explicit_region_ignore_value_changes"></a> [explicit\_region\_ignore\_value\_changes](#module\_explicit\_region\_ignore\_value\_changes) | ../../ | n/a |
3638
| <a name="module_multiple"></a> [multiple](#module\_multiple) | ../../ | n/a |
3739
| <a name="module_multiple_ignore_value_changes"></a> [multiple\_ignore\_value\_changes](#module\_multiple\_ignore\_value\_changes) | ../../ | n/a |
3840
| <a name="module_wrapper"></a> [wrapper](#module\_wrapper) | ../../wrappers | n/a |

examples/complete/main.tf

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ provider "aws" {
33
}
44

55
locals {
6-
name = "ex-${basename(path.cwd)}"
7-
region = "eu-west-1"
6+
name = "ex-${basename(path.cwd)}"
7+
region = "eu-west-1"
8+
explicit_region = "eu-west-2"
89

910
tags = {
1011
Name = local.name
@@ -152,6 +153,28 @@ module "multiple_ignore_value_changes" {
152153
tags = local.tags
153154
}
154155

156+
module "explicit_region" {
157+
source = "../../"
158+
159+
region = local.explicit_region
160+
name = "explicit-region"
161+
value = "test-value"
162+
163+
tags = local.tags
164+
}
165+
166+
module "explicit_region_ignore_value_changes" {
167+
source = "../../"
168+
169+
ignore_value_changes = true
170+
171+
region = local.explicit_region
172+
name = "explicit-region-ignore-value-changes"
173+
value = "test-value"
174+
175+
tags = local.tags
176+
}
177+
155178
##########
156179
# Wrapper
157180
##########
@@ -193,6 +216,6 @@ data "aws_ami" "amazon_linux" {
193216

194217
filter {
195218
name = "name"
196-
values = ["amzn-ami-hvm-*-x86_64-gp2"]
219+
values = ["amzn2-ami-*"]
197220
}
198221
}

examples/complete/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 4.37"
7+
version = ">= 6.0.0"
88
}
99
}
1010
}

main.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ resource "aws_ssm_parameter" "this" {
1515
name = var.name
1616
type = local.type
1717
description = var.description
18+
region = var.region
1819

1920
value = local.secure_type ? local.value : null
2021
insecure_value = local.list_type || local.string_type ? local.value : null
@@ -35,6 +36,7 @@ resource "aws_ssm_parameter" "ignore_value" {
3536
name = var.name
3637
type = local.type
3738
description = var.description
39+
region = var.region
3840

3941
value = local.secure_type ? local.value : null
4042
insecure_value = local.list_type || local.string_type ? local.value : null

variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ variable "secure_type" {
1616
default = false
1717
}
1818

19+
variable "region" {
20+
description = "Region where the resource(s) will be managed. Defaults to the Region set in the provider configuration"
21+
type = string
22+
default = null
23+
}
24+
1925
################################################################################
2026
# SSM Parameter
2127
################################################################################

versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 4.37"
7+
version = ">= 6.0.0"
88
}
99
}
1010
}

wrappers/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ module "wrapper" {
1111
key_id = try(each.value.key_id, var.defaults.key_id, null)
1212
name = try(each.value.name, var.defaults.name, null)
1313
overwrite = try(each.value.overwrite, var.defaults.overwrite, false)
14+
region = try(each.value.region, var.defaults.region, null)
1415
secure_type = try(each.value.secure_type, var.defaults.secure_type, false)
1516
tags = try(each.value.tags, var.defaults.tags, {})
1617
tier = try(each.value.tier, var.defaults.tier, null)

wrappers/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 4.37"
7+
version = ">= 6.0.0"
88
}
99
}
1010
}

0 commit comments

Comments
 (0)