terraform-provider-ovh icon indicating copy to clipboard operation
terraform-provider-ovh copied to clipboard

Importing ovh_cloud_project_user leads to object replacement

Open rverchere opened this issue 2 years ago • 0 comments

Hi,

When I import a cloud user to Terraform, when I try to apply my configuration afterwards, the user is replaced (new one created).

Terraform Version

❯ terraform -v
Terraform v1.1.8
on linux_amd64
+ provider registry.terraform.io/ovh/ovh v0.17.1

Affected Resource(s)

Please list the resources as a list, for example:

  • ovh_cloud_project_user

Terraform Configuration Files

resource "ovh_cloud_project_user" "prometheus-operator" {
  description = "Prometheus Operator"
  service_name = var.ovh_service_name
  role_name = "objectstore_operator"
}

Expected Behavior

User should be updated in-place with imported values

Actual Behavior

User is replaced, due to the role change

Steps to Reproduce

Please list the steps required to reproduce the issue, for example:

  1. terraform import ovh_cloud_project_user.prometheus-operator project_id/user_name
  2. terraform plan

Output

The plan will destroy and recreate my user:

Terraform will perform the following actions:

  # ovh_cloud_project_user.prometheus-operator must be replaced
-/+ resource "ovh_cloud_project_user" "prometheus-operator" {
      ~ creation_date = "2022-04-07T14:32:19.803536+02:00" -> (known after apply)
      ~ id            = "masked" -> (known after apply)
      ~ openstack_rc  = {
          - "OS_AUTH_URL"    = "https://auth.cloud.ovh.net/v3"
          - "OS_TENANT_ID"   = "masked"
          - "OS_TENANT_NAME" = "masked"
          - "OS_USERNAME"    = "user"
        } -> (known after apply)
      + password      = (sensitive value)
      + role_name     = "objectstore_operator" # forces replacement
      ~ roles         = [
          - {
              - description = "ObjectStore operator"
              - id          = "masked"
              - name        = "objectstore_operator"
              - permissions = [
                  - "objectstore_all",
                ]
            },
        ] -> (known after apply)
      ~ status        = "ok" -> (known after apply)
      ~ username      = "masked" -> (known after apply)
        # (2 unchanged attributes hidden)
    }

Plan: 1 to add, 0 to change, 1 to destroy.

rverchere avatar May 05 '22 12:05 rverchere