Skip to content

Commit 8cf3a86

Browse files
authored
feat: improve how to use resource_group in modules (#112)
1 parent 0ba615a commit 8cf3a86

Some content is hidden

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

43 files changed

+498
-313
lines changed

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,3 +94,19 @@ output "health_check" {
9494
timeout = aws_lb_target_group.this.health_check[0].timeout
9595
}
9696
}
97+
98+
output "resource_group" {
99+
description = "The resource group created to manage resources in this module."
100+
value = merge(
101+
{
102+
enabled = var.resource_group.enabled && var.module_tags_enabled
103+
},
104+
(var.resource_group.enabled && var.module_tags_enabled
105+
? {
106+
arn = module.resource_group[0].arn
107+
name = module.resource_group[0].name
108+
}
109+
: {}
110+
)
111+
)
112+
}

modules/alb-instance-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/alb-instance-target-group/variables.tf

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -224,23 +224,21 @@ variable "module_tags_enabled" {
224224
# Resource Group
225225
###################################################
226226

227-
variable "resource_group_enabled" {
228-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
229-
type = bool
230-
default = true
231-
nullable = false
232-
}
233227

234-
variable "resource_group_name" {
235-
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`."
236-
type = string
237-
default = ""
238-
nullable = false
239-
}
240228

241-
variable "resource_group_description" {
242-
description = "(Optional) The description of Resource Group."
243-
type = string
244-
default = "Managed by Terraform."
245-
nullable = false
229+
230+
variable "resource_group" {
231+
description = <<EOF
232+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
233+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
234+
(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.
235+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
236+
EOF
237+
type = object({
238+
enabled = optional(bool, true)
239+
name = optional(string, "")
240+
description = optional(string, "Managed by Terraform.")
241+
})
242+
default = {}
243+
nullable = false
246244
}

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,19 @@ output "health_check" {
100100
timeout = aws_lb_target_group.this.health_check[0].timeout
101101
}
102102
}
103+
104+
output "resource_group" {
105+
description = "The resource group created to manage resources in this module."
106+
value = merge(
107+
{
108+
enabled = var.resource_group.enabled && var.module_tags_enabled
109+
},
110+
(var.resource_group.enabled && var.module_tags_enabled
111+
? {
112+
arn = module.resource_group[0].arn
113+
name = module.resource_group[0].name
114+
}
115+
: {}
116+
)
117+
)
118+
}

modules/alb-ip-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/alb-ip-target-group/variables.tf

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -236,23 +236,21 @@ variable "module_tags_enabled" {
236236
# Resource Group
237237
###################################################
238238

239-
variable "resource_group_enabled" {
240-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
241-
type = bool
242-
default = true
243-
nullable = false
244-
}
245239

246-
variable "resource_group_name" {
247-
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`."
248-
type = string
249-
default = ""
250-
nullable = false
251-
}
252240

253-
variable "resource_group_description" {
254-
description = "(Optional) The description of Resource Group."
255-
type = string
256-
default = "Managed by Terraform."
257-
nullable = false
241+
242+
variable "resource_group" {
243+
description = <<EOF
244+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
245+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
246+
(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.
247+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
248+
EOF
249+
type = object({
250+
enabled = optional(bool, true)
251+
name = optional(string, "")
252+
description = optional(string, "Managed by Terraform.")
253+
})
254+
default = {}
255+
nullable = false
258256
}

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

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

modules/alb-lambda-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/alb-lambda-target-group/variables.tf

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -92,23 +92,21 @@ variable "module_tags_enabled" {
9292
# Resource Group
9393
###################################################
9494

95-
variable "resource_group_enabled" {
96-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
97-
type = bool
98-
default = true
99-
nullable = false
100-
}
10195

102-
variable "resource_group_name" {
103-
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`."
104-
type = string
105-
default = ""
106-
nullable = false
107-
}
10896

109-
variable "resource_group_description" {
110-
description = "(Optional) The description of Resource Group."
111-
type = string
112-
default = "Managed by Terraform."
113-
nullable = false
97+
98+
variable "resource_group" {
99+
description = <<EOF
100+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
101+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
102+
(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.
103+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
104+
EOF
105+
type = object({
106+
enabled = optional(bool, true)
107+
name = optional(string, "")
108+
description = optional(string, "Managed by Terraform.")
109+
})
110+
default = {}
111+
nullable = false
114112
}

modules/alb-listener/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,3 +171,19 @@ output "rules" {
171171
}
172172
}
173173
}
174+
175+
output "resource_group" {
176+
description = "The resource group created to manage resources in this module."
177+
value = merge(
178+
{
179+
enabled = var.resource_group.enabled && var.module_tags_enabled
180+
},
181+
(var.resource_group.enabled && var.module_tags_enabled
182+
? {
183+
arn = module.resource_group[0].arn
184+
name = module.resource_group[0].name
185+
}
186+
: {}
187+
)
188+
)
189+
}

0 commit comments

Comments
 (0)