From 0dd970d261dd285fcfcf590c0864103e77e633ad Mon Sep 17 00:00:00 2001 From: Sheehan Alam Date: Fri, 29 Mar 2019 13:50:37 -0700 Subject: [PATCH 1/2] added support for tags --- main.tf | 32 ++++++++++++++++++-------------- variables.tf | 6 ++++++ 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/main.tf b/main.tf index 2e90d3f..2d12a51 100644 --- a/main.tf +++ b/main.tf @@ -160,6 +160,13 @@ * ``` */ +locals { + default_tags = { + envname = "${var.envname}" + envtype = "${var.envtype}" + } +} + // DB Subnet Group creation resource "aws_db_subnet_group" "main" { count = "${var.enabled ? 1 : 0}" @@ -167,15 +174,13 @@ resource "aws_db_subnet_group" "main" { description = "Group of DB subnets" subnet_ids = ["${var.subnets}"] - tags { - envname = "${var.envname}" - envtype = "${var.envtype}" - } + tags = "${merge("${local.default_tags}","${var.tags}")}" } // Create single DB instance resource "aws_rds_cluster_instance" "cluster_instance_0" { - count = "${var.enabled ? 1 : 0}" + count = "${var.enabled ? 1 : 0}" + depends_on = [ "aws_iam_role_policy_attachment.rds-enhanced-monitoring-policy-attach", ] @@ -196,10 +201,7 @@ resource "aws_rds_cluster_instance" "cluster_instance_0" { promotion_tier = "0" performance_insights_enabled = "${var.performance_insights_enabled}" - tags { - envname = "${var.envname}" - envtype = "${var.envtype}" - } + tags = "${merge("${local.default_tags}","${var.tags}")}" } // Create 'n' number of additional DB instance(s) in same cluster @@ -222,10 +224,7 @@ resource "aws_rds_cluster_instance" "cluster_instance_n" { promotion_tier = "${count.index + 1}" performance_insights_enabled = "${var.performance_insights_enabled}" - tags { - envname = "${var.envname}" - envtype = "${var.envtype}" - } + tags = "${merge("${local.default_tags}","${var.tags}")}" } // Create DB Cluster @@ -251,11 +250,14 @@ resource "aws_rds_cluster" "default" { apply_immediately = "${var.apply_immediately}" db_cluster_parameter_group_name = "${var.db_cluster_parameter_group_name}" iam_database_authentication_enabled = "${var.iam_database_authentication_enabled}" + + tags = "${merge("${local.default_tags}","${var.tags}")}" } // Geneate an ID when an environment is initialised resource "random_id" "server" { - count = "${var.enabled ? 1 : 0}" + count = "${var.enabled ? 1 : 0}" + keepers = { id = "${aws_db_subnet_group.main.name}" } @@ -266,6 +268,7 @@ resource "random_id" "server" { // IAM Role + Policy attach for Enhanced Monitoring data "aws_iam_policy_document" "monitoring-rds-assume-role-policy" { count = "${var.enabled ? 1 : 0}" + statement { actions = ["sts:AssumeRole"] @@ -280,6 +283,7 @@ resource "aws_iam_role" "rds-enhanced-monitoring" { count = "${var.enabled && var.monitoring_interval > 0 ? 1 : 0}" name_prefix = "rds-enhanced-mon-${var.envname}-" assume_role_policy = "${data.aws_iam_policy_document.monitoring-rds-assume-role-policy.json}" + tags = "${merge("${local.default_tags}","${var.tags}")}" } resource "aws_iam_role_policy_attachment" "rds-enhanced-monitoring-policy-attach" { diff --git a/variables.tf b/variables.tf index b3301d6..d8ddee7 100644 --- a/variables.tf +++ b/variables.tf @@ -253,3 +253,9 @@ variable "enabled" { default = true description = "Whether the database resources should be created" } + +variable "tags" { + type = "map" + description = "Map of tags to apply to RDS cluster and resources" + default = {} +} From 62cccc591e647d632f575c8c96c9bfa97049478b Mon Sep 17 00:00:00 2001 From: Sheehan Alam Date: Fri, 29 Mar 2019 14:41:28 -0700 Subject: [PATCH 2/2] removed literals, cleaner merge syntax --- main.tf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/main.tf b/main.tf index 2d12a51..efa6d98 100644 --- a/main.tf +++ b/main.tf @@ -174,7 +174,7 @@ resource "aws_db_subnet_group" "main" { description = "Group of DB subnets" subnet_ids = ["${var.subnets}"] - tags = "${merge("${local.default_tags}","${var.tags}")}" + tags = "${merge(local.default_tags, var.tags)}" } // Create single DB instance @@ -201,7 +201,7 @@ resource "aws_rds_cluster_instance" "cluster_instance_0" { promotion_tier = "0" performance_insights_enabled = "${var.performance_insights_enabled}" - tags = "${merge("${local.default_tags}","${var.tags}")}" + tags = "${merge(local.default_tags, var.tags)}" } // Create 'n' number of additional DB instance(s) in same cluster @@ -224,7 +224,7 @@ resource "aws_rds_cluster_instance" "cluster_instance_n" { promotion_tier = "${count.index + 1}" performance_insights_enabled = "${var.performance_insights_enabled}" - tags = "${merge("${local.default_tags}","${var.tags}")}" + tags = "${merge(local.default_tags, var.tags)}" } // Create DB Cluster @@ -251,7 +251,7 @@ resource "aws_rds_cluster" "default" { db_cluster_parameter_group_name = "${var.db_cluster_parameter_group_name}" iam_database_authentication_enabled = "${var.iam_database_authentication_enabled}" - tags = "${merge("${local.default_tags}","${var.tags}")}" + tags = "${merge(local.default_tags, var.tags)}" } // Geneate an ID when an environment is initialised @@ -283,7 +283,7 @@ resource "aws_iam_role" "rds-enhanced-monitoring" { count = "${var.enabled && var.monitoring_interval > 0 ? 1 : 0}" name_prefix = "rds-enhanced-mon-${var.envname}-" assume_role_policy = "${data.aws_iam_policy_document.monitoring-rds-assume-role-policy.json}" - tags = "${merge("${local.default_tags}","${var.tags}")}" + tags = "${merge(local.default_tags, var.tags)}" } resource "aws_iam_role_policy_attachment" "rds-enhanced-monitoring-policy-attach" {