...
Part of the 2023 Cornell AWS Direct Connect Architecture Migration process creates new tags on Cornell AWS VPCs that use Direct Connect. Those tags, prefixed by "cit:", can cause Terraform to hiccup if you use Terraform to manage AWS network resources. You will likely see that Terraform would like
| Note |
|---|
Please don't allow Terraform to delete the "cit:" tags! They are important for the migration to the v2 Direct Connect architecture. And your (or Terraform) deletes those tags, they will be recreated before the migration proceeds. |
This is what it looks like when Terraform finds those tags, and makes a plan to delete them on those resources when you next run a Terraform plan/apply. See example Terraform plan output for what that looks like:
| Code Block |
|---|
# tf plan
aws_vpc.blank-vpc: Refreshing state... [id=vpc-cde7e0a8]
...
aws_route_table_association.v2-private-1: Refreshing state... [id=rtbassoc-08f9e7ea923cc8454]
Terraform used the selected providers to generate the following execution plan. Resource actions are
indicated with the following symbols:
~ update in-place
Terraform will perform the following actions:
# aws_subnet.example will be updated in-place
~ resource "aws_subnet" "example" {
id = "subnet-0d705338215b4d08b"
~ tags = {
- "cit:dc-arch-migration-description" = "No change." -> null
- "cit:dc-arch-migration-target" = "no" -> null
- "cit:dc-arch-version" = "v1" -> null
- "cit:subnet-type" = "public" -> null
# (1 unchanged element hidden)
}
~ tags_all = {
- "cit:dc-arch-migration-description" = "No change." -> null
- "cit:dc-arch-migration-target" = "no" -> null
- "cit:dc-arch-version" = "v1" -> null
- "cit:subnet-type" = "public" -> null
# (1 unchanged element hidden)
}
# (14 unchanged attributes hidden)
}
Plan: 0 to add, 1 to change, 0 to destroy.
|
Please don't delete those tags! They are important to the migration to the v2 Direct Connect architecture. If you delete the tags, they will be recreated before the migration proceeds. |
Tell Terraform to Ignore the Tags
...
The next time you run Terraform plan/apply, Terraform will ignore any of those tags.
References
- Cornell
- TerraformTerraform