From b487c1499ff0a522839e94c2eae3da7c501f86c8 Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Tue, 27 Apr 2021 14:55:58 +0530 Subject: [PATCH 01/14] Update meanstack-two-tiers.tf --- .../hcl/meanstack/meanstack-two-tiers.tf | 61 ++++++++++++++----- 1 file changed, 46 insertions(+), 15 deletions(-) diff --git a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf index 92507774..b39488bd 100644 --- a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf +++ b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf @@ -249,27 +249,58 @@ variable "mongodb_vm_root_disk_size" { description = "Size of template disk volume. Should be equal to template's disk size" default = "25" } + +#List of tags that will be added from service +variable "service_tag_includes" { + type = list + default = ["environment", "request_user"] +} -resource "vsphere_tag_category" "ibm_terraform_automation_mongodb_vm_category" { - count = length(module.camtags.tagslist) > 0 ? 1 : 0 - name = format("%s %s", "IBM Terraform Automation Tags for", var.mongodb_vm_name) - description = "Category for IBM Terraform Automation" - cardinality = "MULTIPLE" +#Filter tags passed by service. +locals { - associable_types = [ - "VirtualMachine", - "Datastore", - "Network", - ] + taglist = [ + for cat in var.service_tag_includes : { + for k, v in module.camtags.tagsmap : k => v + if k == cat + } + ] + + tagmap = {for v in local.taglist : keys(v)[0] => values(v)[0]} } -resource "vsphere_tag" "ibm_terraform_automation_mongodb_vm_tags" { - count = length(module.camtags.tagslist) - name = element(module.camtags.tagslist, count.index) - category_id = element(vsphere_tag_category.ibm_terraform_automation_mongodb_vm_category.*.id, 0) - description = "Managed by IBM Terraform Automation" + +data "vsphere_tag_category" "category" { + count = length(local.tagmap) + name = keys(local.tagmap)[count.index] } +data "vsphere_tag" "tag" { + count = length(local.tagmap) + name = values(local.tagmap)[count.index] + category_id = data.vsphere_tag_category.category[count.index].id +} + +# resource "vsphere_tag_category" "ibm_terraform_automation_mongodb_vm_category" { +# count = length(module.camtags.tagslist) > 0 ? 1 : 0 +# name = format("%s %s", "IBM Terraform Automation Tags for", var.mongodb_vm_name) +# description = "Category for IBM Terraform Automation" +# cardinality = "MULTIPLE" + +# associable_types = [ +# "VirtualMachine", +# "Datastore", +# "Network", +# ] +# } + +# resource "vsphere_tag" "ibm_terraform_automation_mongodb_vm_tags" { +# count = length(module.camtags.tagslist) +# name = element(module.camtags.tagslist, count.index) +# category_id = element(vsphere_tag_category.ibm_terraform_automation_mongodb_vm_category.*.id, 0) +# description = "Managed by IBM Terraform Automation" +# } + # vsphere vm resource "vsphere_virtual_machine" "mongodb_vm" { name = var.mongodb_vm_name From 89756c1ce5608e8f96369c1861d518b47fb3f059 Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Tue, 27 Apr 2021 15:02:09 +0530 Subject: [PATCH 02/14] Update meanstack-two-tiers.tf --- .../hcl/meanstack/meanstack-two-tiers.tf | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf index b39488bd..545fb629 100644 --- a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf +++ b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf @@ -253,7 +253,7 @@ variable "mongodb_vm_root_disk_size" { #List of tags that will be added from service variable "service_tag_includes" { type = list - default = ["environment", "request_user"] + default = ["environment"] } #Filter tags passed by service. @@ -311,7 +311,7 @@ resource "vsphere_virtual_machine" "mongodb_vm" { datastore_id = data.vsphere_datastore.mongodb_vm_datastore.id guest_id = data.vsphere_virtual_machine.mongodb_vm_template.guest_id scsi_type = data.vsphere_virtual_machine.mongodb_vm_template.scsi_type - tags = vsphere_tag.ibm_terraform_automation_mongodb_vm_tags[*].id + tags = vsphere_tag.tag[*].id clone { template_uuid = data.vsphere_virtual_machine.mongodb_vm_template.id @@ -609,25 +609,26 @@ variable "nodejs_vm_root_disk_size" { default = "25" } -resource "vsphere_tag_category" "ibm_terraform_automation_nodejs_vm_category" { - count = length(module.camtags.tagslist) > 0 ? 1 : 0 - name = format("%s %s", "IBM Terraform Automation Tags for", var.nodejs_vm_name) - description = "Category for IBM Terraform Automation" - cardinality = "MULTIPLE" + +# resource "vsphere_tag_category" "ibm_terraform_automation_nodejs_vm_category" { +# count = length(module.camtags.tagslist) > 0 ? 1 : 0 +# name = format("%s %s", "IBM Terraform Automation Tags for", var.nodejs_vm_name) +# description = "Category for IBM Terraform Automation" +# cardinality = "MULTIPLE" - associable_types = [ - "VirtualMachine", - "Datastore", - "Network", - ] -} +# associable_types = [ +# "VirtualMachine", +# "Datastore", +# "Network", +# ] +# } -resource "vsphere_tag" "ibm_terraform_automation_nodejs_vm_tags" { - count = length(module.camtags.tagslist) - name = element(module.camtags.tagslist, count.index) - category_id = element(vsphere_tag_category.ibm_terraform_automation_nodejs_vm_category.*.id, 0) - description = "Managed by IBM Terraform Automation" -} +# resource "vsphere_tag" "ibm_terraform_automation_nodejs_vm_tags" { +# count = length(module.camtags.tagslist) +# name = element(module.camtags.tagslist, count.index) +# category_id = element(vsphere_tag_category.ibm_terraform_automation_nodejs_vm_category.*.id, 0) +# description = "Managed by IBM Terraform Automation" +# } # vsphere vm resource "vsphere_virtual_machine" "nodejs_vm" { @@ -639,7 +640,7 @@ resource "vsphere_virtual_machine" "nodejs_vm" { datastore_id = data.vsphere_datastore.nodejs_vm_datastore.id guest_id = data.vsphere_virtual_machine.nodejs_vm_template.guest_id scsi_type = data.vsphere_virtual_machine.nodejs_vm_template.scsi_type - tags = vsphere_tag.ibm_terraform_automation_nodejs_vm_tags[*].id + tags = vsphere_tag.tag[*].id clone { template_uuid = data.vsphere_virtual_machine.nodejs_vm_template.id From fd558be07376a72a53b623872439fc94407cf9d7 Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Tue, 27 Apr 2021 17:40:54 +0530 Subject: [PATCH 03/14] Update meanstack-two-tiers.tf --- VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf index 545fb629..50e706ac 100644 --- a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf +++ b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf @@ -270,12 +270,12 @@ locals { } -data "vsphere_tag_category" "category" { +resource "vsphere_tag_category" "category" { count = length(local.tagmap) name = keys(local.tagmap)[count.index] } -data "vsphere_tag" "tag" { +resource "vsphere_tag" "tag" { count = length(local.tagmap) name = values(local.tagmap)[count.index] category_id = data.vsphere_tag_category.category[count.index].id From c0de552982a666984ea11e5439a2c6b8b3862f1a Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Tue, 27 Apr 2021 19:19:40 +0530 Subject: [PATCH 04/14] Update meanstack-two-tiers.tf --- VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf index 50e706ac..7d3bc8fe 100644 --- a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf +++ b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf @@ -273,6 +273,14 @@ locals { resource "vsphere_tag_category" "category" { count = length(local.tagmap) name = keys(local.tagmap)[count.index] + cardinality = "MULTIPLE" + description = "Category for IBM Terraform Automation" + +associable_types = [ + "VirtualMachine", + "Datastore", + "Network", + ] } resource "vsphere_tag" "tag" { From 94ba08dfa3335dc4cc36ae8ebacc5e5b56724c33 Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Tue, 27 Apr 2021 19:23:20 +0530 Subject: [PATCH 05/14] Update meanstack-two-tiers.tf --- VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf index 7d3bc8fe..1823b340 100644 --- a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf +++ b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf @@ -286,7 +286,7 @@ associable_types = [ resource "vsphere_tag" "tag" { count = length(local.tagmap) name = values(local.tagmap)[count.index] - category_id = data.vsphere_tag_category.category[count.index].id + category_id = vsphere_tag_category.category[count.index].id } # resource "vsphere_tag_category" "ibm_terraform_automation_mongodb_vm_category" { From f74c3c4d9c18a76df62735554783aaf8c1da5240 Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Tue, 27 Apr 2021 19:31:53 +0530 Subject: [PATCH 06/14] Update meanstack-two-tiers.tf --- VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf index 1823b340..f5a13a30 100644 --- a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf +++ b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf @@ -270,7 +270,7 @@ locals { } -resource "vsphere_tag_category" "category" { +data "vsphere_tag_category" "category" { count = length(local.tagmap) name = keys(local.tagmap)[count.index] cardinality = "MULTIPLE" From 7060105e0527b147d27cdfbb4caf8ea8b003b1dd Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Tue, 27 Apr 2021 19:42:59 +0530 Subject: [PATCH 07/14] Update meanstack-two-tiers.tf --- .../hcl/meanstack/meanstack-two-tiers.tf | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf index f5a13a30..f76f0f61 100644 --- a/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf +++ b/VMware/terraform/hcl/meanstack/meanstack-two-tiers.tf @@ -273,20 +273,19 @@ locals { data "vsphere_tag_category" "category" { count = length(local.tagmap) name = keys(local.tagmap)[count.index] - cardinality = "MULTIPLE" - description = "Category for IBM Terraform Automation" +# cardinality = "MULTIPLE" +# description = "Category for IBM Terraform Automation" -associable_types = [ - "VirtualMachine", - "Datastore", - "Network", - ] +# associable_types = [ +# "VirtualMachine", +# "Datastore", +# "Network", +# ] } - -resource "vsphere_tag" "tag" { +data "vsphere_tag" "tag" { count = length(local.tagmap) name = values(local.tagmap)[count.index] - category_id = vsphere_tag_category.category[count.index].id + category_id = data.vsphere_tag_category.category[count.index].id } # resource "vsphere_tag_category" "ibm_terraform_automation_mongodb_vm_category" { @@ -319,7 +318,7 @@ resource "vsphere_virtual_machine" "mongodb_vm" { datastore_id = data.vsphere_datastore.mongodb_vm_datastore.id guest_id = data.vsphere_virtual_machine.mongodb_vm_template.guest_id scsi_type = data.vsphere_virtual_machine.mongodb_vm_template.scsi_type - tags = vsphere_tag.tag[*].id + tags = data.vsphere_tag.tag.*.id clone { template_uuid = data.vsphere_virtual_machine.mongodb_vm_template.id @@ -648,7 +647,7 @@ resource "vsphere_virtual_machine" "nodejs_vm" { datastore_id = data.vsphere_datastore.nodejs_vm_datastore.id guest_id = data.vsphere_virtual_machine.nodejs_vm_template.guest_id scsi_type = data.vsphere_virtual_machine.nodejs_vm_template.scsi_type - tags = vsphere_tag.tag[*].id + tags = data.vsphere_tag.tag.*.id clone { template_uuid = data.vsphere_virtual_machine.nodejs_vm_template.id From 6f2d2bfca45e79c3a2d3e172e69dac5a0a4ad3ad Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Fri, 30 Apr 2021 11:56:44 +0530 Subject: [PATCH 08/14] Update main.tf --- VMware/terraform/hcl/singleVMWithPredefinedCategory/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VMware/terraform/hcl/singleVMWithPredefinedCategory/main.tf b/VMware/terraform/hcl/singleVMWithPredefinedCategory/main.tf index 556679cc..fec21c0d 100644 --- a/VMware/terraform/hcl/singleVMWithPredefinedCategory/main.tf +++ b/VMware/terraform/hcl/singleVMWithPredefinedCategory/main.tf @@ -30,7 +30,7 @@ locals { #List of tags that will be added from service variable "service_tag_includes" { type = list - default = ["environment", "request_user"] + default = ["environment"] } #Filter tags passed by service. From 5eb64e9ba7d144c96419556a2bbdd379147a649c Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Fri, 30 Apr 2021 12:01:50 +0530 Subject: [PATCH 09/14] Update main.tf --- VMware/terraform/hcl/singleVM/main.tf | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/VMware/terraform/hcl/singleVM/main.tf b/VMware/terraform/hcl/singleVM/main.tf index 0cbca67c..60eccc37 100644 --- a/VMware/terraform/hcl/singleVM/main.tf +++ b/VMware/terraform/hcl/singleVM/main.tf @@ -155,6 +155,36 @@ variable "vm_1_root_disk_size" { variable "vm_1-image" { description = "Operating system image id / template that should be used when creating the virtual image" } +#List of tags that will be added from service +variable "service_tag_includes" { + type = list + default = ["environment", "request_user"] +} + +#Filter tags passed by service. +locals { + + taglist = [ + for cat in var.service_tag_includes : { + for k, v in module.camtags.tagsmap : k => v + if k == cat + } + ] + + tagmap = {for v in local.taglist : keys(v)[0] => values(v)[0]} +} + + +data "vsphere_tag_category" "category" { + count = length(local.tagmap) + name = keys(local.tagmap)[count.index] +} + +data "vsphere_tag" "tag" { + count = length(local.tagmap) + name = values(local.tagmap)[count.index] + category_id = data.vsphere_tag_category.category[count.index].id +} # vsphere vm resource "vsphere_virtual_machine" "vm_1" { @@ -166,6 +196,7 @@ resource "vsphere_virtual_machine" "vm_1" { datastore_id = data.vsphere_datastore.vm_1_datastore.id guest_id = data.vsphere_virtual_machine.vm_1_template.guest_id scsi_type = data.vsphere_virtual_machine.vm_1_template.scsi_type + tags = data.vsphere_tag.tag.*.id clone { template_uuid = data.vsphere_virtual_machine.vm_1_template.id From b5d91dc810f1ba41bd22af880e0e7860ccbc8760 Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Fri, 30 Apr 2021 12:13:46 +0530 Subject: [PATCH 10/14] Update main.tf --- VMware/terraform/hcl/singleVM/main.tf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/VMware/terraform/hcl/singleVM/main.tf b/VMware/terraform/hcl/singleVM/main.tf index 60eccc37..f05cad9d 100644 --- a/VMware/terraform/hcl/singleVM/main.tf +++ b/VMware/terraform/hcl/singleVM/main.tf @@ -20,6 +20,10 @@ provider "camc" { version = "~> 0.2" } +module "camtags" { + source = "../Modules/camtags" +} + ############################################################## # Define pattern variables ############################################################## From 09b67fa89fe2ddb9c40ae4ccae0baa272451a15e Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Fri, 30 Apr 2021 12:14:25 +0530 Subject: [PATCH 11/14] Update main.tf --- VMware/terraform/hcl/singleVM/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VMware/terraform/hcl/singleVM/main.tf b/VMware/terraform/hcl/singleVM/main.tf index f05cad9d..0daeadb2 100644 --- a/VMware/terraform/hcl/singleVM/main.tf +++ b/VMware/terraform/hcl/singleVM/main.tf @@ -162,7 +162,7 @@ variable "vm_1-image" { #List of tags that will be added from service variable "service_tag_includes" { type = list - default = ["environment", "request_user"] + default = ["environment"] } #Filter tags passed by service. From b81ec858ef2758bfc76a1782cc25676169168ae1 Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Fri, 30 Apr 2021 12:35:23 +0530 Subject: [PATCH 12/14] Update main.tf --- VMware/terraform/hcl/singleVM/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VMware/terraform/hcl/singleVM/main.tf b/VMware/terraform/hcl/singleVM/main.tf index 0daeadb2..f05cad9d 100644 --- a/VMware/terraform/hcl/singleVM/main.tf +++ b/VMware/terraform/hcl/singleVM/main.tf @@ -162,7 +162,7 @@ variable "vm_1-image" { #List of tags that will be added from service variable "service_tag_includes" { type = list - default = ["environment"] + default = ["environment", "request_user"] } #Filter tags passed by service. From 6a5b2e80d50f9d2bed53a8a6332465041a48a601 Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Fri, 30 Apr 2021 15:09:57 +0530 Subject: [PATCH 13/14] Update main.tf --- VMware/terraform/hcl/singleVM/main.tf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/VMware/terraform/hcl/singleVM/main.tf b/VMware/terraform/hcl/singleVM/main.tf index f05cad9d..9edd96f9 100644 --- a/VMware/terraform/hcl/singleVM/main.tf +++ b/VMware/terraform/hcl/singleVM/main.tf @@ -162,7 +162,7 @@ variable "vm_1-image" { #List of tags that will be added from service variable "service_tag_includes" { type = list - default = ["environment", "request_user"] + default = ["environment"] } #Filter tags passed by service. @@ -174,18 +174,18 @@ locals { if k == cat } ] - - tagmap = {for v in local.taglist : keys(v)[0] => values(v)[0]} +count = length(module.camtags.tagslist) +tagmap = count==0 ? {} : {for v in local.taglist : keys(v)[0] => values(v)[0]} } data "vsphere_tag_category" "category" { - count = length(local.tagmap) + count = length(local.tagmap) > 0 ? 1 : 0 name = keys(local.tagmap)[count.index] } data "vsphere_tag" "tag" { - count = length(local.tagmap) + count = length(local.tagmap) > 0 ? 1 : 0 name = values(local.tagmap)[count.index] category_id = data.vsphere_tag_category.category[count.index].id } From b0bd52a28f59275783b381d14385ffd23963b5cc Mon Sep 17 00:00:00 2001 From: Noopur Agarwal <52702093+noopurAg@users.noreply.github.com> Date: Fri, 30 Apr 2021 15:13:37 +0530 Subject: [PATCH 14/14] Update main.tf --- VMware/terraform/hcl/singleVM/main.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VMware/terraform/hcl/singleVM/main.tf b/VMware/terraform/hcl/singleVM/main.tf index 9edd96f9..8e22660f 100644 --- a/VMware/terraform/hcl/singleVM/main.tf +++ b/VMware/terraform/hcl/singleVM/main.tf @@ -174,8 +174,8 @@ locals { if k == cat } ] -count = length(module.camtags.tagslist) -tagmap = count==0 ? {} : {for v in local.taglist : keys(v)[0] => values(v)[0]} + +tagmap = length(module.camtags.tagslist)==0 ? {} : {for v in local.taglist : keys(v)[0] => values(v)[0]} }