From 8758dd0c1db38c1a36279a217c96bd0c89d6a111 Mon Sep 17 00:00:00 2001 From: Samir-Cit Date: Mon, 18 Sep 2023 16:48:19 -0300 Subject: [PATCH] Add resource manager tags to module and use it on instace from template. --- 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..d838e843 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)` | `{}` | 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..3dc8bb94 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 = {} +}