Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Tell Terraform to Ignore the Tags

You can There are two options to tell Terraform to ignore those tags by adding a lifecycle stanza to the resource the "cit:" tags, depending on the AWS provider version you are using:

  • If using AWS provider version >=  2.60.0, you can configure a global ignore_tags setting in the provider configuration. This is by far the simplest approach.
  • If using an earlier provider version, you will need to a lifecycle stanza to the all the affected resources and setting the ignore_changes attribute

...

  • .

...

Info

Since the "Cost Center" tag is added only to a new Transit Gateway Attachment that will be added to VPCs, you donprobably won't strictly need to include it in configurations shown below, unless you plan to import the ignore_changes configuration shown below for other resources.new TGW Attachment resources into your own Terraform configuration.

ignore_tags in AWS Provider Configuration

This option can be used for any AWS provider version >= 2.60.0

Code Block
provider "aws" {
  # ... potentially other configuration ...

  ignore_tags {
    key_prefixes = ["cit:"]
  }
}

ignore_changes in lifecycle stanza for Each Resource

Terraform Versions >= 0.12.3

Code Block
titleRecent Terraform Versions (>= v0.13)
resource "aws_subnet" "example" {
  cidr_block        = "10.92.117.128/25"
  vpc_id            = aws_vpc.example.id

  ... 

  tags = {
    Name = "example-subnet"
  }

  lifecycle {
    ignore_changes = [
      tags["cit:dc-arch-migration-description"],
      tags["cit:dc-arch-migration-target"],
      tags["cit:dc-arch-version"],
      tags["cit:dc-vgw"],
      tags["cit:subnet-type"],
      tags["cit:tgw-attachment-target"],
      tags["cit:tgw-attachment-guidance"],
	  tags["Cost Center"],
     ]
  }
}

Terraform Version 0.12.0 through 0.12.2

You will need to upgrade Terraform to at least version 0.12.3 and then use the configuration above.

Terraform Versions 0.11.x

Code Block
titleTerraform v0.11.x
resource "aws_subnet" "example" {
  cidr_block        = "10.92.117.128/25"
  vpc_id            = aws_vpc.example.id

  ... 

  tags = {
    Name = "example-subnet"
  }

  lifecycle {
    ignore_changes = [
	  "tags.%",
      "tags.cit:dc-arch-migration-description",
      "tags.cit:dc-arch-migration-target",
      "tags.cit:dc-arch-version",
      "tags.cit:dc-vgw",
      "tags.cit:subnet-type",
      "tags.cit:tgw-attachment-target",
      "tags.cit:tgw-attachment-guidance",
      "tags.Cost Center",
     ]
  }
}

Last Ditch Options

If your Terraform version or AWS provider version doesn't support (or behave as expected) with the options above, you should be able to, at least, tell Terraform to ignore all changes to tags, as shown below:

...