OpsLevel / terraform-provider-opslevel

Terraform provider for OpsLevel.com
https://registry.terraform.io/providers/OpsLevel/opslevel/latest/docs
MIT License
8 stars 5 forks source link

update team_tag id format, fixes tf import of this resource #365

Closed davidbloss closed 1 month ago

davidbloss commented 1 month ago

Issues

Changelog

Tophatting

With this config, and empty Terraform state file

resource "opslevel_team_tag" "team_tag_1" {
  key        = "key2"
  value      = "value"
  team       = "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA"
  team_alias = "team_platform_3_a"
}

Import opslevel_team_tag instance

terraform import opslevel_team_tag.team_tag_1 'Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzgyNjU0OTMw'

outputs

opslevel_team_tag.team_tag_1: Importing from ID "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzgyNjU0OTMw"...
opslevel_team_tag.team_tag_1: Import prepared!
  Prepared opslevel_team_tag for import
opslevel_team_tag.team_tag_1: Refreshing state... [id=Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzgyNjU0OTMw]

Import successful!

The resources that were imported are shown above. These resources are now in
your Terraform state and will henceforth be managed by Terraform.

Destroy imported opslevel_team_tag, terraform destroy

opslevel_team_tag.team_tag_1: Refreshing state... [id=Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzgyNjU0OTMw]

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  - destroy

Terraform will perform the following actions:

  # opslevel_team_tag.team_tag_1 will be destroyed
  - resource "opslevel_team_tag" "team_tag_1" {
      - id         = "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzgyNjU0OTMw" -> null
      - key        = "hellothere" -> null
      - team       = "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA" -> null
      - team_alias = "team_platform_3_a" -> null
      - value      = "worldooooooooooooooo" -> null
    }

Plan: 0 to add, 0 to change, 1 to destroy.
opslevel_team_tag.team_tag_1: Destroying... [id=Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzgyNjU0OTMw]
opslevel_team_tag.team_tag_1: Destruction complete after 0s

Destroy complete! Resources: 1 destroyed.

Re-create opslevel_team_tag, terraform apply

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # opslevel_team_tag.team_tag_1 will be created
  + resource "opslevel_team_tag" "team_tag_1" {
      + id         = (known after apply)
      + key        = "key2"
      + team       = "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA"
      + team_alias = "team_platform_3_a"
      + value      = "value"
    }

Plan: 1 to add, 0 to change, 0 to destroy.
opslevel_team_tag.team_tag_1: Creating...
opslevel_team_tag.team_tag_1: Creation complete after 1s [id=Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzg5MzcwNzA1]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

update value field then terraform apply

opslevel_team_tag.team_tag_1: Refreshing state... [id=Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzg5MzcwNzA1]

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:

  # opslevel_team_tag.team_tag_1 will be updated in-place
  ~ resource "opslevel_team_tag" "team_tag_1" {
        id         = "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzg5MzcwNzA1"
      ~ value      = "value" -> "value123"
        # (3 unchanged attributes hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.
opslevel_team_tag.team_tag_1: Modifying... [id=Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzg5MzcwNzA1]
opslevel_team_tag.team_tag_1: Modifications complete after 0s [id=Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzg5MzcwNzA1]

Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

Remove team_tag from Terraform state

> terraform state rm opslevel_team_tag.team_tag_1
Removed opslevel_team_tag.team_tag_1
Successfully removed 1 resource instance(s).

Import team_tag with new tag ID

terraform import opslevel_team_tag.team_tag_1 'Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzg5MzcwNzUx'

outputs

opslevel_team_tag.team_tag_1: Importing from ID "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzg5MzcwNzUx"...
opslevel_team_tag.team_tag_1: Import prepared!
  Prepared opslevel_team_tag for import
opslevel_team_tag.team_tag_1: Refreshing state... [id=Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzNA:Z2lkOi8vb3BzbGV2ZWwvVGFnLzg5MzcwNzUx]

Import successful!

The resources that were imported are shown above. These resources are now in
your Terraform state and will henceforth be managed by Terraform.
davidbloss commented 1 month ago

Replaced by this PR