diff --git a/README.md b/README.md
index 2f9b130..442d4c5 100644
--- a/README.md
+++ b/README.md
@@ -45,6 +45,14 @@ module "automq-byoc" {
# Set the target regionId of aws
cloud_provider_region = "ap-southeast-1"
+
+ # Optional: Add additional tags to all resources
+ additional_tags = {
+ Environment = "Production"
+ Project = "MyProject"
+ Owner = "TeamA"
+ CostCenter = "Engineering"
+ }
}
# Necessary outputs
@@ -246,6 +254,7 @@ output "automq_byoc_instance_id" {
| [automq_byoc_env_console_key_name](#input_automq_byoc_env_console_key_name) | Specify the key pair name for accessing the AutoMQ BYOC environment console. If not specified, the console will be deployed without a key pair. | `string` | `""` | no |
| [use_custom_ami](#input_use_custom_ami) | The parameter defaults to false, which means a specific AMI is not specified. If you wish to use a custom AMI, set this parameter to true and specify the `automq_byoc_env_console_ami` parameter with your custom AMI ID. | `bool` | `false` | no |
| [automq_byoc_env_console_ami](#input_automq_byoc_env_console_ami) | When the `use_custom_ami` parameter is set to true, this parameter must be set with a custom AMI Name to deploy the AutoMQ console. | `string` | `""` | no |
+| [additional_tags](#input_additional_tags) | Additional tags to apply to all resources created by this module. | `map(string)` | `{}` | no |
## Outputs
diff --git a/aws.tf b/aws.tf
index 5a319b4..5992e4a 100644
--- a/aws.tf
+++ b/aws.tf
@@ -11,10 +11,7 @@ module "automq_byoc_data_bucket_name" {
bucket = "automq-data-${var.automq_byoc_env_id}"
force_destroy = true
- tags = {
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = local.common_tags
}
# Conditional creation of ops bucket
@@ -26,10 +23,7 @@ module "automq_byoc_ops_bucket_name" {
bucket = "automq-ops-${var.automq_byoc_env_id}"
force_destroy = true
- tags = {
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = local.common_tags
}
data "aws_availability_zones" "available_azs" {}
@@ -54,10 +48,7 @@ module "automq_byoc_vpc" {
enable_nat_gateway = true
single_nat_gateway = true
- tags = {
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = local.common_tags
}
resource "aws_security_group" "vpc_endpoint_sg" {
@@ -80,11 +71,12 @@ resource "aws_security_group" "vpc_endpoint_sg" {
cidr_blocks = ["0.0.0.0/0"]
}
- tags = {
- Name = "automq-byoc-endpoint-sg-${var.automq_byoc_env_id}"
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = merge(
+ local.common_tags,
+ {
+ Name = "automq-byoc-endpoint-sg-${var.automq_byoc_env_id}"
+ }
+ )
}
resource "aws_vpc_endpoint" "ec2_endpoint" {
@@ -98,11 +90,12 @@ resource "aws_vpc_endpoint" "ec2_endpoint" {
private_dns_enabled = true
- tags = {
- Name = "automq-byoc-ec2-endpoint-${var.automq_byoc_env_id}"
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = merge(
+ local.common_tags,
+ {
+ Name = "automq-byoc-ec2-endpoint-${var.automq_byoc_env_id}"
+ }
+ )
}
resource "aws_vpc_endpoint" "s3_endpoint" {
@@ -117,11 +110,12 @@ resource "aws_vpc_endpoint" "s3_endpoint" {
module.automq_byoc_vpc[0].private_route_table_ids
)
- tags = {
- Name = "automq-byoc-s3-endpoint-${var.automq_byoc_env_id}"
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = merge(
+ local.common_tags,
+ {
+ Name = "automq-byoc-s3-endpoint-${var.automq_byoc_env_id}"
+ }
+ )
}
resource "aws_vpc_endpoint" "s3table_endpoint" {
@@ -135,11 +129,12 @@ resource "aws_vpc_endpoint" "s3table_endpoint" {
private_dns_enabled = true
- tags = {
- Name = "automq-byoc-ec2-endpoint-${var.automq_byoc_env_id}"
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = merge(
+ local.common_tags,
+ {
+ Name = "automq-byoc-s3table-endpoint-${var.automq_byoc_env_id}"
+ }
+ )
}
resource "aws_vpc_endpoint" "glue_endpoint" {
@@ -153,11 +148,12 @@ resource "aws_vpc_endpoint" "glue_endpoint" {
private_dns_enabled = true
- tags = {
- Name = "automq-byoc-ec2-endpoint-${var.automq_byoc_env_id}"
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = merge(
+ local.common_tags,
+ {
+ Name = "automq-byoc-glue-endpoint-${var.automq_byoc_env_id}"
+ }
+ )
}
locals {
@@ -166,6 +162,15 @@ locals {
automq_data_bucket = var.automq_byoc_data_bucket_name == "" ? module.automq_byoc_data_bucket_name.s3_bucket_id : "${var.automq_byoc_data_bucket_name}"
automq_ops_bucket = var.automq_byoc_ops_bucket_name == "" ? module.automq_byoc_ops_bucket_name.s3_bucket_id : "${var.automq_byoc_ops_bucket_name}"
zone_id = aws_route53_zone.private_r53.zone_id
+
+ # Common tags that will be applied to all resources
+ common_tags = merge(
+ {
+ automqVendor = "automq"
+ automqEnvironmentID = var.automq_byoc_env_id
+ },
+ var.additional_tags
+ )
}
data "aws_vpc" "vpc_id" {
@@ -211,10 +216,7 @@ resource "aws_security_group" "automq_byoc_console_sg" {
cidr_blocks = ["0.0.0.0/0"]
}
- tags = {
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = local.common_tags
}
resource "aws_iam_role" "automq_byoc_role" {
@@ -234,10 +236,7 @@ resource "aws_iam_role" "automq_byoc_role" {
]
})
- tags = {
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = local.common_tags
}
resource "aws_iam_policy" "automq_byoc_policy" {
@@ -249,10 +248,7 @@ resource "aws_iam_policy" "automq_byoc_policy" {
automq_ops_bucket = local.automq_ops_bucket
})
- tags = {
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = local.common_tags
}
resource "aws_iam_policy" "automq_byoc_k8s_policy" {
@@ -264,10 +260,7 @@ resource "aws_iam_policy" "automq_byoc_k8s_policy" {
automq_ops_bucket = local.automq_ops_bucket
})
- tags = {
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = local.common_tags
}
resource "aws_iam_role_policy_attachment" "automq_byoc_role_attachment_k8s" {
@@ -284,10 +277,7 @@ resource "aws_iam_instance_profile" "automq_byoc_instance_profile" {
name = "automq-byoc-instance-profile-${var.automq_byoc_env_id}"
role = aws_iam_role.automq_byoc_role.name
- tags = {
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = local.common_tags
}
resource "aws_route53_zone" "private_r53" {
@@ -301,18 +291,12 @@ resource "aws_route53_zone" "private_r53" {
create_before_destroy = true
}
- tags = {
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = local.common_tags
}
resource "aws_eip" "web_ip" {
instance = aws_instance.automq_byoc_console.id
- tags = {
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = local.common_tags
}
locals {
diff --git a/main.tf b/main.tf
index fc1a758..f0604f9 100644
--- a/main.tf
+++ b/main.tf
@@ -13,11 +13,12 @@ resource "aws_instance" "automq_byoc_console" {
key_name = var.automq_byoc_env_console_key_name
- tags = {
- Name = "automq-byoc-console-${var.automq_byoc_env_id}"
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = merge(
+ local.common_tags,
+ {
+ Name = "automq-byoc-console-${var.automq_byoc_env_id}"
+ }
+ )
associate_public_ip_address = true
@@ -38,10 +39,7 @@ resource "aws_ebs_volume" "data_volume" {
size = 20
type = "gp3"
- tags = {
- automqVendor = "automq"
- automqEnvironmentID = var.automq_byoc_env_id
- }
+ tags = local.common_tags
}
resource "aws_volume_attachment" "data_volume_attachment" {
diff --git a/variables.tf b/variables.tf
index 6ae3fad..a33c2dc 100644
--- a/variables.tf
+++ b/variables.tf
@@ -77,3 +77,9 @@ variable "automq_byoc_env_console_ami" {
type = string
default = ""
}
+
+variable "additional_tags" {
+ description = "Additional tags to apply to all resources created by this module."
+ type = map(string)
+ default = {}
+}