From 652a98e7561fdd20ce2e676cc6668572078aac5b Mon Sep 17 00:00:00 2001 From: Samir Ribeiro <42391123+Samir-Cit@users.noreply.github.com> Date: Thu, 21 Sep 2023 01:44:45 -0300 Subject: [PATCH] feat: Add resource_manager_tags to module and use it on google_compute_instance_from_template. (#344) Co-authored-by: Awais Malik --- modules/compute_instance/README.md | 1 + modules/compute_instance/main.tf | 4 ++++ modules/compute_instance/variables.tf | 6 ++++++ 3 files changed, 11 insertions(+) diff --git a/modules/compute_instance/README.md b/modules/compute_instance/README.md index b0d28d8b..e85ce4e6 100644 --- a/modules/compute_instance/README.md +++ b/modules/compute_instance/README.md @@ -27,6 +27,7 @@ See the [simple](https://github.com/terraform-google-modules/terraform-google-vm | network | Network to deploy to. Only one of network or subnetwork should be specified. | `string` | `""` | no | | num\_instances | Number of instances to create. This value is ignored if static\_ips is provided. | `number` | `"1"` | no | | region | Region where the instances should be created. | `string` | `null` | no | +| resource\_manager\_tags | (Optional) A tag is a key-value pair that can be attached to a Google Cloud resource. You can use tags to conditionally allow or deny policies based on whether a resource has a specific tag. This value is not returned by the API. In Terraform, this value cannot be updated and changing it will recreate the resource. | `map(string)` | `null` | no | | resource\_policies | (Optional) A list of short names or self\_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported. | `list(string)` | `[]` | no | | static\_ips | List of static IPs for VM instances | `list(string)` | `[]` | no | | subnetwork | Subnet to deploy to. Only one of network or subnetwork should be specified. | `string` | `""` | no | diff --git a/modules/compute_instance/main.tf b/modules/compute_instance/main.tf index b68e91cb..e5e45bee 100644 --- a/modules/compute_instance/main.tf +++ b/modules/compute_instance/main.tf @@ -52,6 +52,10 @@ resource "google_compute_instance_from_template" "compute_instance" { resource_policies = var.resource_policies labels = var.labels + params { + resource_manager_tags = var.resource_manager_tags + } + dynamic "network_interface" { for_each = local.network_interface diff --git a/modules/compute_instance/variables.tf b/modules/compute_instance/variables.tf index df2435fc..f1462a4a 100644 --- a/modules/compute_instance/variables.tf +++ b/modules/compute_instance/variables.tf @@ -122,3 +122,9 @@ variable "labels" { description = "(Optional) Labels to override those from the template, provided as a map" default = null } + +variable "resource_manager_tags" { + description = "(Optional) A tag is a key-value pair that can be attached to a Google Cloud resource. You can use tags to conditionally allow or deny policies based on whether a resource has a specific tag. This value is not returned by the API. In Terraform, this value cannot be updated and changing it will recreate the resource." + type = map(string) + default = null +}