From e65fe8627123215a0a3255e8ecc44872f7a5893a Mon Sep 17 00:00:00 2001 From: Byungjin Park Date: Wed, 10 Sep 2025 23:51:28 +0900 Subject: [PATCH] feat: improve how to use resource_group in modules --- modules/eventbridge-event-bus/outputs.tf | 16 ++++++++++ .../eventbridge-event-bus/resource-group.tf | 10 +++--- modules/eventbridge-event-bus/variables.tf | 32 +++++++++---------- modules/eventbridge-rule/outputs.tf | 16 ++++++++++ modules/eventbridge-rule/resource-group.tf | 10 +++--- modules/eventbridge-rule/variables.tf | 32 +++++++++---------- modules/msk-cluster/outputs.tf | 16 ++++++++++ modules/msk-cluster/resource-group.tf | 10 +++--- modules/msk-cluster/variables.tf | 32 +++++++++---------- modules/ses-identity/outputs.tf | 17 +++++++++- modules/ses-identity/resource-group.tf | 10 +++--- modules/ses-identity/variables.tf | 32 +++++++++---------- modules/sns-fifo-topic/outputs.tf | 16 ++++++++++ modules/sns-fifo-topic/resource-group.tf | 10 +++--- modules/sns-fifo-topic/variables.tf | 32 +++++++++---------- modules/sns-standard-topic/outputs.tf | 16 ++++++++++ modules/sns-standard-topic/resource-group.tf | 10 +++--- modules/sns-standard-topic/variables.tf | 32 +++++++++---------- 18 files changed, 216 insertions(+), 133 deletions(-) diff --git a/modules/eventbridge-event-bus/outputs.tf b/modules/eventbridge-event-bus/outputs.tf index 25bde47..6389dff 100644 --- a/modules/eventbridge-event-bus/outputs.tf +++ b/modules/eventbridge-event-bus/outputs.tf @@ -40,3 +40,19 @@ output "schema_discovery" { ) } } + +output "resource_group" { + description = "The resource group created to manage resources in this module." + value = merge( + { + enabled = var.resource_group.enabled && var.module_tags_enabled + }, + (var.resource_group.enabled && var.module_tags_enabled + ? { + arn = module.resource_group[0].arn + name = module.resource_group[0].name + } + : {} + ) + ) +} diff --git a/modules/eventbridge-event-bus/resource-group.tf b/modules/eventbridge-event-bus/resource-group.tf index 7487ba0..85c4fb0 100644 --- a/modules/eventbridge-event-bus/resource-group.tf +++ b/modules/eventbridge-event-bus/resource-group.tf @@ -1,6 +1,6 @@ locals { - resource_group_name = (var.resource_group_name != "" - ? var.resource_group_name + resource_group_name = (var.resource_group.name != "" + ? var.resource_group.name : join(".", [ local.metadata.package, local.metadata.module, @@ -12,12 +12,12 @@ locals { module "resource_group" { source = "tedilabs/misc/aws//modules/resource-group" - version = "~> 0.10.0" + version = "~> 0.12.0" - count = (var.resource_group_enabled && var.module_tags_enabled) ? 1 : 0 + count = (var.resource_group.enabled && var.module_tags_enabled) ? 1 : 0 name = local.resource_group_name - description = var.resource_group_description + description = var.resource_group.description query = { resource_tags = local.module_tags diff --git a/modules/eventbridge-event-bus/variables.tf b/modules/eventbridge-event-bus/variables.tf index 40ec2c8..dcf940e 100644 --- a/modules/eventbridge-event-bus/variables.tf +++ b/modules/eventbridge-event-bus/variables.tf @@ -62,23 +62,21 @@ variable "module_tags_enabled" { # Resource Group ################################################### -variable "resource_group_enabled" { - description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module." - type = bool - default = true - nullable = false -} -variable "resource_group_name" { - 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`." - type = string - default = "" - nullable = false -} -variable "resource_group_description" { - description = "(Optional) The description of Resource Group." - type = string - default = "Managed by Terraform." - nullable = false + +variable "resource_group" { + description = < v # if !contains(["arn", "id", "email_identity", "identity_type", "tags", "tags_all", "dkim_signing_attributes", "verified_for_sending_status", "configuration_set_name"], k) # } -# } \ No newline at end of file +# } +output "resource_group" { + description = "The resource group created to manage resources in this module." + value = merge( + { + enabled = var.resource_group.enabled && var.module_tags_enabled + }, + (var.resource_group.enabled && var.module_tags_enabled + ? { + arn = module.resource_group[0].arn + name = module.resource_group[0].name + } + : {} + ) + ) +} diff --git a/modules/ses-identity/resource-group.tf b/modules/ses-identity/resource-group.tf index 7487ba0..85c4fb0 100644 --- a/modules/ses-identity/resource-group.tf +++ b/modules/ses-identity/resource-group.tf @@ -1,6 +1,6 @@ locals { - resource_group_name = (var.resource_group_name != "" - ? var.resource_group_name + resource_group_name = (var.resource_group.name != "" + ? var.resource_group.name : join(".", [ local.metadata.package, local.metadata.module, @@ -12,12 +12,12 @@ locals { module "resource_group" { source = "tedilabs/misc/aws//modules/resource-group" - version = "~> 0.10.0" + version = "~> 0.12.0" - count = (var.resource_group_enabled && var.module_tags_enabled) ? 1 : 0 + count = (var.resource_group.enabled && var.module_tags_enabled) ? 1 : 0 name = local.resource_group_name - description = var.resource_group_description + description = var.resource_group.description query = { resource_tags = local.module_tags diff --git a/modules/ses-identity/variables.tf b/modules/ses-identity/variables.tf index 8a3c092..bff346c 100644 --- a/modules/ses-identity/variables.tf +++ b/modules/ses-identity/variables.tf @@ -134,23 +134,21 @@ variable "module_tags_enabled" { # Resource Group ################################################### -variable "resource_group_enabled" { - description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module." - type = bool - default = true - nullable = false -} -variable "resource_group_name" { - 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`." - type = string - default = "" - nullable = false -} -variable "resource_group_description" { - description = "(Optional) The description of Resource Group." - type = string - default = "Managed by Terraform." - nullable = false + +variable "resource_group" { + description = <