Skip to content

Commit e65fe86

Browse files
committed
feat: improve how to use resource_group in modules
1 parent d91b8cf commit e65fe86

File tree

18 files changed

+216
-133
lines changed

18 files changed

+216
-133
lines changed

modules/eventbridge-event-bus/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,19 @@ output "schema_discovery" {
4040
)
4141
}
4242
}
43+
44+
output "resource_group" {
45+
description = "The resource group created to manage resources in this module."
46+
value = merge(
47+
{
48+
enabled = var.resource_group.enabled && var.module_tags_enabled
49+
},
50+
(var.resource_group.enabled && var.module_tags_enabled
51+
? {
52+
arn = module.resource_group[0].arn
53+
name = module.resource_group[0].name
54+
}
55+
: {}
56+
)
57+
)
58+
}

modules/eventbridge-event-bus/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/eventbridge-event-bus/variables.tf

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -62,23 +62,21 @@ variable "module_tags_enabled" {
6262
# Resource Group
6363
###################################################
6464

65-
variable "resource_group_enabled" {
66-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
67-
type = bool
68-
default = true
69-
nullable = false
70-
}
7165

72-
variable "resource_group_name" {
73-
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`."
74-
type = string
75-
default = ""
76-
nullable = false
77-
}
7866

79-
variable "resource_group_description" {
80-
description = "(Optional) The description of Resource Group."
81-
type = string
82-
default = "Managed by Terraform."
83-
nullable = false
67+
68+
variable "resource_group" {
69+
description = <<EOF
70+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
71+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
72+
(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.
73+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
74+
EOF
75+
type = object({
76+
enabled = optional(bool, true)
77+
name = optional(string, "")
78+
description = optional(string, "Managed by Terraform.")
79+
})
80+
default = {}
81+
nullable = false
8482
}

modules/eventbridge-rule/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,3 +123,19 @@ output "aws_service_targets" {
123123
}
124124
}
125125
}
126+
127+
output "resource_group" {
128+
description = "The resource group created to manage resources in this module."
129+
value = merge(
130+
{
131+
enabled = var.resource_group.enabled && var.module_tags_enabled
132+
},
133+
(var.resource_group.enabled && var.module_tags_enabled
134+
? {
135+
arn = module.resource_group[0].arn
136+
name = module.resource_group[0].name
137+
}
138+
: {}
139+
)
140+
)
141+
}

modules/eventbridge-rule/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,
@@ -13,12 +13,12 @@ locals {
1313

1414
module "resource_group" {
1515
source = "tedilabs/misc/aws//modules/resource-group"
16-
version = "~> 0.10.0"
16+
version = "~> 0.12.0"
1717

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

2020
name = local.resource_group_name
21-
description = var.resource_group_description
21+
description = var.resource_group.description
2222

2323
query = {
2424
resource_tags = local.module_tags

modules/eventbridge-rule/variables.tf

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -340,23 +340,21 @@ variable "module_tags_enabled" {
340340
# Resource Group
341341
###################################################
342342

343-
variable "resource_group_enabled" {
344-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
345-
type = bool
346-
default = true
347-
nullable = false
348-
}
349343

350-
variable "resource_group_name" {
351-
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`."
352-
type = string
353-
default = ""
354-
nullable = false
355-
}
356344

357-
variable "resource_group_description" {
358-
description = "(Optional) The description of Resource Group."
359-
type = string
360-
default = "Managed by Terraform."
361-
nullable = false
345+
346+
variable "resource_group" {
347+
description = <<EOF
348+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
349+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
350+
(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.
351+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
352+
EOF
353+
type = object({
354+
enabled = optional(bool, true)
355+
name = optional(string, "")
356+
description = optional(string, "Managed by Terraform.")
357+
})
358+
default = {}
359+
nullable = false
362360
}

modules/msk-cluster/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,3 +217,19 @@ output "zookeeper_connections" {
217217
tls = aws_msk_cluster.this.zookeeper_connect_string_tls
218218
}
219219
}
220+
221+
output "resource_group" {
222+
description = "The resource group created to manage resources in this module."
223+
value = merge(
224+
{
225+
enabled = var.resource_group.enabled && var.module_tags_enabled
226+
},
227+
(var.resource_group.enabled && var.module_tags_enabled
228+
? {
229+
arn = module.resource_group[0].arn
230+
name = module.resource_group[0].name
231+
}
232+
: {}
233+
)
234+
)
235+
}

modules/msk-cluster/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/msk-cluster/variables.tf

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -271,23 +271,21 @@ variable "module_tags_enabled" {
271271
# Resource Group
272272
###################################################
273273

274-
variable "resource_group_enabled" {
275-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
276-
type = bool
277-
default = true
278-
nullable = false
279-
}
280274

281-
variable "resource_group_name" {
282-
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`."
283-
type = string
284-
default = ""
285-
nullable = false
286-
}
287275

288-
variable "resource_group_description" {
289-
description = "(Optional) The description of Resource Group."
290-
type = string
291-
default = "Managed by Terraform."
292-
nullable = false
276+
277+
variable "resource_group" {
278+
description = <<EOF
279+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
280+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
281+
(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.
282+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
283+
EOF
284+
type = object({
285+
enabled = optional(bool, true)
286+
name = optional(string, "")
287+
description = optional(string, "Managed by Terraform.")
288+
})
289+
default = {}
290+
nullable = false
293291
}

modules/ses-identity/outputs.tf

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,19 @@ output "custom_mail_from" {
8383
# k => v
8484
# if !contains(["arn", "id", "email_identity", "identity_type", "tags", "tags_all", "dkim_signing_attributes", "verified_for_sending_status", "configuration_set_name"], k)
8585
# }
86-
# }
86+
# }
87+
output "resource_group" {
88+
description = "The resource group created to manage resources in this module."
89+
value = merge(
90+
{
91+
enabled = var.resource_group.enabled && var.module_tags_enabled
92+
},
93+
(var.resource_group.enabled && var.module_tags_enabled
94+
? {
95+
arn = module.resource_group[0].arn
96+
name = module.resource_group[0].name
97+
}
98+
: {}
99+
)
100+
)
101+
}

0 commit comments

Comments
 (0)