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

Db/team members order #368

Closed davidbloss closed 1 month ago

davidbloss commented 1 month ago

Issues

Ensure the "sort order" of team members and that we can properly reconcile them

Changelog

Order of members erroneously triggered updates to Terraform state. Changing the schema from a ListNestedBlock to a SetNestedBlock keeps the same functionality and ignores the order of member blocks.

Tophatting

With this config:

resource "opslevel_team" "example" {
  name             = "foo foo foo"
  responsibilities = "Stuff"
  parent           = "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzMg"

  member {
    email = "kyle+pat@opslevel.com"
    role  = "contributor"
  }
  member {
    email = "taimoor+pat@opslevel.com"
    role  = "contributor"
  }
  member {
    email = "david+pat@opslevel.com"
    role  = "contributor"
  }
}

Create team with three members

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.example will be created
  + resource "opslevel_team" "example" {
      + id               = (known after apply)
      + name             = "foo foo foo"
      + parent           = "Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xNzQzMg"
      + responsibilities = "Stuff"

      + member {
          + email = "david+pat@opslevel.com"
          + role  = "contributor"
        }
      + member {
          + email = "kyle+pat@opslevel.com"
          + role  = "contributor"
        }
      + member {
          + email = "taimoor+pat@opslevel.com"
          + role  = "contributor"
        }
    }

Plan: 1 to add, 0 to change, 0 to destroy.
opslevel_team.example: Creating...
opslevel_team.example: Creation complete after 0s [id=Z2lkOi8vb3BzbGV2ZWwvVGVhbS8xOTI0Nw]

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