Skip to content

Commit c1335d5

Browse files
committed
feat: improve how to use resource_group in modules
1 parent 9ce5874 commit c1335d5

File tree

18 files changed

+216
-132
lines changed

18 files changed

+216
-132
lines changed

modules/access-analyzer/outputs.tf

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

modules/access-analyzer/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/access-analyzer/variables.tf

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -85,23 +85,21 @@ variable "module_tags_enabled" {
8585
# Resource Group
8686
###################################################
8787

88-
variable "resource_group_enabled" {
89-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
90-
type = bool
91-
default = true
92-
nullable = false
93-
}
9488

95-
variable "resource_group_name" {
96-
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`."
97-
type = string
98-
default = ""
99-
nullable = false
100-
}
10189

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

modules/cloudtrail-event-data-store/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,19 @@ output "import_trail_events_iam_role" {
6565
}
6666
])
6767
}
68+
69+
output "resource_group" {
70+
description = "The resource group created to manage resources in this module."
71+
value = merge(
72+
{
73+
enabled = var.resource_group.enabled && var.module_tags_enabled
74+
},
75+
(var.resource_group.enabled && var.module_tags_enabled
76+
? {
77+
arn = module.resource_group[0].arn
78+
name = module.resource_group[0].name
79+
}
80+
: {}
81+
)
82+
)
83+
}

modules/cloudtrail-event-data-store/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/cloudtrail-event-data-store/variables.tf

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -251,23 +251,21 @@ variable "module_tags_enabled" {
251251
# Resource Group
252252
###################################################
253253

254-
variable "resource_group_enabled" {
255-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
256-
type = bool
257-
default = true
258-
nullable = false
259-
}
260254

261-
variable "resource_group_name" {
262-
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`."
263-
type = string
264-
default = ""
265-
nullable = false
266-
}
267255

268-
variable "resource_group_description" {
269-
description = "(Optional) The description of Resource Group."
270-
type = string
271-
default = "Managed by Terraform."
272-
nullable = false
256+
257+
variable "resource_group" {
258+
description = <<EOF
259+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
260+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
261+
(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.
262+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
263+
EOF
264+
type = object({
265+
enabled = optional(bool, true)
266+
name = optional(string, "")
267+
description = optional(string, "Managed by Terraform.")
268+
})
269+
default = {}
270+
nullable = false
273271
}

modules/cloudtrail-trail/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,19 @@ output "insight_event" {
8383
# if !contains(["id", "arn", "name", "enable_logging", "home_region", "s3_bucket_name", "s3_key_prefix", "enable_log_file_validation", "kms_key_id", "sns_topic_name", "cloud_watch_logs_group_arn", "tags", "tags_all", "is_multi_region_trail", "is_organization_trail", "include_global_service_events", "insight_selector", "event_selector", "advanced_event_selector"], k)
8484
# }
8585
# }
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+
}

modules/cloudtrail-trail/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/cloudtrail-trail/variables.tf

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

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

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

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

modules/config-managed-rule/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,19 @@ output "excluded_accounts" {
8686
description = "A list of AWS account identifiers excluded from the rule."
8787
value = try(aws_config_organization_managed_rule.this[0].excluded_accounts, [])
8888
}
89+
90+
output "resource_group" {
91+
description = "The resource group created to manage resources in this module."
92+
value = merge(
93+
{
94+
enabled = var.resource_group.enabled && var.module_tags_enabled
95+
},
96+
(var.resource_group.enabled && var.module_tags_enabled
97+
? {
98+
arn = module.resource_group[0].arn
99+
name = module.resource_group[0].name
100+
}
101+
: {}
102+
)
103+
)
104+
}

0 commit comments

Comments
 (0)