Skip to content

Commit 896d53c

Browse files
authored
feat: improve how to use resource_group in modules (#58)
* feat: improve how to use resource_group in modules * feat(vpc-peering): replace deprecated data.aws_region's `name` to `region` * fix(vpc-peering): remove `resource_group` output
1 parent 2085631 commit 896d53c

File tree

57 files changed

+643
-415
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+643
-415
lines changed

modules/dx-connection/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,19 @@ output "encryption" {
7676
status = aws_dx_connection.this.port_encryption_status
7777
}
7878
}
79+
80+
output "resource_group" {
81+
description = "The resource group created to manage resources in this module."
82+
value = merge(
83+
{
84+
enabled = var.resource_group.enabled && var.module_tags_enabled
85+
},
86+
(var.resource_group.enabled && var.module_tags_enabled
87+
? {
88+
arn = module.resource_group[0].arn
89+
name = module.resource_group[0].name
90+
}
91+
: {}
92+
)
93+
)
94+
}

modules/dx-connection/resource-group.tf

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
locals {
2-
resource_group_name = (var.resource_group_name != ""
3-
? var.resource_group_name
2+
resource_group_name = (var.resource_group.name != ""
3+
? var.resource_group.name
44
: join(".", [
55
local.metadata.package,
66
local.metadata.module,
@@ -12,12 +12,12 @@ locals {
1212

1313
module "resource_group" {
1414
source = "tedilabs/misc/aws//modules/resource-group"
15-
version = "~> 0.10.0"
15+
version = "~> 0.12.0"
1616

17-
count = (var.resource_group_enabled && var.module_tags_enabled) ? 1 : 0
17+
count = (var.resource_group.enabled && var.module_tags_enabled) ? 1 : 0
1818

1919
name = local.resource_group_name
20-
description = var.resource_group_description
20+
description = var.resource_group.description
2121

2222
query = {
2323
resource_tags = local.module_tags

modules/dx-connection/variables.tf

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -74,23 +74,21 @@ variable "module_tags_enabled" {
7474
# Resource Group
7575
###################################################
7676

77-
variable "resource_group_enabled" {
78-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
79-
type = bool
80-
default = true
81-
nullable = false
82-
}
8377

84-
variable "resource_group_name" {
85-
description = "(Optional) The name of Resource Group. A Resource Group name can have a maximum of 127 characters, including letters, numbers, hyphens, dots, and underscores. The name cannot start with `AWS` or `aws`."
86-
type = string
87-
default = ""
88-
nullable = false
89-
}
9078

91-
variable "resource_group_description" {
92-
description = "(Optional) The description of Resource Group."
93-
type = string
94-
default = "Managed by Terraform."
95-
nullable = false
79+
80+
variable "resource_group" {
81+
description = <<EOF
82+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
83+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
84+
(Optional) `name` - The name of Resource Group. A Resource Group name can have a maximum of 127 characters, including letters, numbers, hyphens, dots, and underscores. The name cannot start with `AWS` or `aws`. If not provided, a name will be generated using the module name and instance name.
85+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
86+
EOF
87+
type = object({
88+
enabled = optional(bool, true)
89+
name = optional(string, "")
90+
description = optional(string, "Managed by Terraform.")
91+
})
92+
default = {}
93+
nullable = false
9694
}

modules/dx-private-virtual-interface/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,19 @@ output "router_configuration" {
105105
output_path = var.router_configuration.output_path
106106
}
107107
}
108+
109+
output "resource_group" {
110+
description = "The resource group created to manage resources in this module."
111+
value = merge(
112+
{
113+
enabled = var.resource_group.enabled && var.module_tags_enabled
114+
},
115+
(var.resource_group.enabled && var.module_tags_enabled
116+
? {
117+
arn = module.resource_group[0].arn
118+
name = module.resource_group[0].name
119+
}
120+
: {}
121+
)
122+
)
123+
}

modules/dx-private-virtual-interface/resource-group.tf

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
locals {
2-
resource_group_name = (var.resource_group_name != ""
3-
? var.resource_group_name
2+
resource_group_name = (var.resource_group.name != ""
3+
? var.resource_group.name
44
: join(".", [
55
local.metadata.package,
66
local.metadata.module,
@@ -12,12 +12,12 @@ locals {
1212

1313
module "resource_group" {
1414
source = "tedilabs/misc/aws//modules/resource-group"
15-
version = "~> 0.10.0"
15+
version = "~> 0.12.0"
1616

17-
count = (var.resource_group_enabled && var.module_tags_enabled) ? 1 : 0
17+
count = (var.resource_group.enabled && var.module_tags_enabled) ? 1 : 0
1818

1919
name = local.resource_group_name
20-
description = var.resource_group_description
20+
description = var.resource_group.description
2121

2222
query = {
2323
resource_tags = local.module_tags

modules/dx-private-virtual-interface/variables.tf

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -132,23 +132,21 @@ variable "module_tags_enabled" {
132132
# Resource Group
133133
###################################################
134134

135-
variable "resource_group_enabled" {
136-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
137-
type = bool
138-
default = true
139-
nullable = false
140-
}
141135

142-
variable "resource_group_name" {
143-
description = "(Optional) The name of Resource Group. A Resource Group name can have a maximum of 127 characters, including letters, numbers, hyphens, dots, and underscores. The name cannot start with `AWS` or `aws`."
144-
type = string
145-
default = ""
146-
nullable = false
147-
}
148136

149-
variable "resource_group_description" {
150-
description = "(Optional) The description of Resource Group."
151-
type = string
152-
default = "Managed by Terraform."
153-
nullable = false
137+
138+
variable "resource_group" {
139+
description = <<EOF
140+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
141+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
142+
(Optional) `name` - The name of Resource Group. A Resource Group name can have a maximum of 127 characters, including letters, numbers, hyphens, dots, and underscores. The name cannot start with `AWS` or `aws`. If not provided, a name will be generated using the module name and instance name.
143+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
144+
EOF
145+
type = object({
146+
enabled = optional(bool, true)
147+
name = optional(string, "")
148+
description = optional(string, "Managed by Terraform.")
149+
})
150+
default = {}
151+
nullable = false
154152
}

modules/lattice-alb-target-group/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,19 @@ output "targets" {
5959
}
6060
}
6161
}
62+
63+
output "resource_group" {
64+
description = "The resource group created to manage resources in this module."
65+
value = merge(
66+
{
67+
enabled = var.resource_group.enabled && var.module_tags_enabled
68+
},
69+
(var.resource_group.enabled && var.module_tags_enabled
70+
? {
71+
arn = module.resource_group[0].arn
72+
name = module.resource_group[0].name
73+
}
74+
: {}
75+
)
76+
)
77+
}

modules/lattice-alb-target-group/resource-group.tf

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
locals {
2-
resource_group_name = (var.resource_group_name != ""
3-
? var.resource_group_name
2+
resource_group_name = (var.resource_group.name != ""
3+
? var.resource_group.name
44
: join(".", [
55
local.metadata.package,
66
local.metadata.module,
@@ -12,12 +12,12 @@ locals {
1212

1313
module "resource_group" {
1414
source = "tedilabs/misc/aws//modules/resource-group"
15-
version = "~> 0.10.0"
15+
version = "~> 0.12.0"
1616

17-
count = (var.resource_group_enabled && var.module_tags_enabled) ? 1 : 0
17+
count = (var.resource_group.enabled && var.module_tags_enabled) ? 1 : 0
1818

1919
name = local.resource_group_name
20-
description = var.resource_group_description
20+
description = var.resource_group.description
2121

2222
query = {
2323
resource_tags = local.module_tags

modules/lattice-alb-target-group/variables.tf

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -112,23 +112,21 @@ variable "module_tags_enabled" {
112112
# Resource Group
113113
###################################################
114114

115-
variable "resource_group_enabled" {
116-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
117-
type = bool
118-
default = true
119-
nullable = false
120-
}
121115

122-
variable "resource_group_name" {
123-
description = "(Optional) The name of Resource Group. A Resource Group name can have a maximum of 127 characters, including letters, numbers, hyphens, dots, and underscores. The name cannot start with `AWS` or `aws`."
124-
type = string
125-
default = ""
126-
nullable = false
127-
}
128116

129-
variable "resource_group_description" {
130-
description = "(Optional) The description of Resource Group."
131-
type = string
132-
default = "Managed by Terraform."
133-
nullable = false
117+
118+
variable "resource_group" {
119+
description = <<EOF
120+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
121+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
122+
(Optional) `name` - The name of Resource Group. A Resource Group name can have a maximum of 127 characters, including letters, numbers, hyphens, dots, and underscores. The name cannot start with `AWS` or `aws`. If not provided, a name will be generated using the module name and instance name.
123+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
124+
EOF
125+
type = object({
126+
enabled = optional(bool, true)
127+
name = optional(string, "")
128+
description = optional(string, "Managed by Terraform.")
129+
})
130+
default = {}
131+
nullable = false
134132
}

modules/lattice-instance-target-group/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,19 @@ output "targets" {
9191
}
9292
}
9393
}
94+
95+
output "resource_group" {
96+
description = "The resource group created to manage resources in this module."
97+
value = merge(
98+
{
99+
enabled = var.resource_group.enabled && var.module_tags_enabled
100+
},
101+
(var.resource_group.enabled && var.module_tags_enabled
102+
? {
103+
arn = module.resource_group[0].arn
104+
name = module.resource_group[0].name
105+
}
106+
: {}
107+
)
108+
)
109+
}

0 commit comments

Comments
 (0)