Skip to content

Commit e5d9fb9

Browse files
committed
feat: improve how to use resource_group in modules
1 parent 7a41afc commit e5d9fb9

File tree

21 files changed

+252
-154
lines changed

21 files changed

+252
-154
lines changed

modules/ecr-repository/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,19 @@ output "encryption" {
4040
kms_key = aws_ecr_repository.this.encryption_configuration[0].kms_key
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/ecr-repository/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/ecr-repository/variables.tf

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

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

121-
variable "resource_group_name" {
122-
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`."
123-
type = string
124-
default = ""
125-
nullable = false
126-
}
127115

128-
variable "resource_group_description" {
129-
description = "(Optional) The description of Resource Group."
130-
type = string
131-
default = "Managed by Terraform."
132-
nullable = false
116+
117+
variable "resource_group" {
118+
description = <<EOF
119+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
120+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
121+
(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.
122+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
123+
EOF
124+
type = object({
125+
enabled = optional(bool, true)
126+
name = optional(string, "")
127+
description = optional(string, "Managed by Terraform.")
128+
})
129+
default = {}
130+
nullable = false
133131
}

modules/eks-access-entry/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,19 @@ output "updated_at" {
4747
description = "Date and time in RFC3339 format that the EKS access entry was updated."
4848
value = aws_eks_access_entry.this.modified_at
4949
}
50+
51+
output "resource_group" {
52+
description = "The resource group created to manage resources in this module."
53+
value = merge(
54+
{
55+
enabled = var.resource_group.enabled && var.module_tags_enabled
56+
},
57+
(var.resource_group.enabled && var.module_tags_enabled
58+
? {
59+
arn = module.resource_group[0].arn
60+
name = module.resource_group[0].name
61+
}
62+
: {}
63+
)
64+
)
65+
}

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

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -102,23 +102,21 @@ variable "module_tags_enabled" {
102102
# Resource Group
103103
###################################################
104104

105-
variable "resource_group_enabled" {
106-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
107-
type = bool
108-
default = true
109-
nullable = false
110-
}
111105

112-
variable "resource_group_name" {
113-
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`."
114-
type = string
115-
default = ""
116-
nullable = false
117-
}
118106

119-
variable "resource_group_description" {
120-
description = "(Optional) The description of Resource Group."
121-
type = string
122-
default = "Managed by Terraform."
123-
nullable = false
107+
108+
variable "resource_group" {
109+
description = <<EOF
110+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
111+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
112+
(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.
113+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
114+
EOF
115+
type = object({
116+
enabled = optional(bool, true)
117+
name = optional(string, "")
118+
description = optional(string, "Managed by Terraform.")
119+
})
120+
default = {}
121+
nullable = false
124122
}

modules/eks-addon/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,19 @@ output "updated_at" {
7070
# if !contains(["id", "arn", "cluster_name", "addon_name", "addon_version", "service_account_role_arn", "resolve_conflicts_on_create", "resolve_conflicts_on_update", "created_at", "modified_at", "tags", "tags_all"], k)
7171
# }
7272
# }
73+
74+
output "resource_group" {
75+
description = "The resource group created to manage resources in this module."
76+
value = merge(
77+
{
78+
enabled = var.resource_group.enabled && var.module_tags_enabled
79+
},
80+
(var.resource_group.enabled && var.module_tags_enabled
81+
? {
82+
arn = module.resource_group[0].arn
83+
name = module.resource_group[0].name
84+
}
85+
: {}
86+
)
87+
)
88+
}

modules/eks-addon/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/eks-addon/variables.tf

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -106,23 +106,21 @@ variable "module_tags_enabled" {
106106
# Resource Group
107107
###################################################
108108

109-
variable "resource_group_enabled" {
110-
description = "(Optional) Whether to create Resource Group to find and group AWS resources which are created by this module."
111-
type = bool
112-
default = true
113-
nullable = false
114-
}
115109

116-
variable "resource_group_name" {
117-
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`."
118-
type = string
119-
default = ""
120-
nullable = false
121-
}
122110

123-
variable "resource_group_description" {
124-
description = "(Optional) The description of Resource Group."
125-
type = string
126-
default = "Managed by Terraform."
127-
nullable = false
111+
112+
variable "resource_group" {
113+
description = <<EOF
114+
(Optional) A configurations of Resource Group for this module. `resource_group` as defined below.
115+
(Optional) `enabled` - Whether to create Resource Group to find and group AWS resources which are created by this module. Defaults to `true`.
116+
(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.
117+
(Optional) `description` - The description of Resource Group. Defaults to `Managed by Terraform.`.
118+
EOF
119+
type = object({
120+
enabled = optional(bool, true)
121+
name = optional(string, "")
122+
description = optional(string, "Managed by Terraform.")
123+
})
124+
default = {}
125+
nullable = false
128126
}

modules/eks-cluster/outputs.tf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,3 +197,19 @@ output "created_at" {
197197
# if !contains(["arn", "access_config", "certificate_authority", "tags", "tags_all", "created_at", "role_arn", "name", "status", "version", "timeouts", "platform_version", "kubernetes_network_config", "id", "endpoint", "encryption_config", "outpost_config", "identity", "vpc_config", "enabled_cluster_log_types", "cluster_id"], k)
198198
# }
199199
# }
200+
201+
output "resource_group" {
202+
description = "The resource group created to manage resources in this module."
203+
value = merge(
204+
{
205+
enabled = var.resource_group.enabled && var.module_tags_enabled
206+
},
207+
(var.resource_group.enabled && var.module_tags_enabled
208+
? {
209+
arn = module.resource_group[0].arn
210+
name = module.resource_group[0].name
211+
}
212+
: {}
213+
)
214+
)
215+
}

0 commit comments

Comments
 (0)