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

vault_pki_secret_backend_role produces perpetual diff when no key_usages are specified.

Open martin31821 opened this issue 1 year ago • 0 comments

Terraform Version:

1.2.3

registry.terraform.io/hashicorp/vault v3.7.0

Affected Resource(s)

  • vault_pki_secret_backend_role

Terraform Configuration Files

resource "vault_pki_secret_backend_role" "example_role" {
  backend           = vault_mount.ca.path
  name              = "example_signer"
  allow_any_name        = true
  allow_ip_sans         = false
  server_flag           = false
  client_flag           = false
  code_signing_flag     = false
  email_protection_flag = false
  ttl                   = local.vault_default_ttl
  key_type              = "ec"
  key_bits              = 256
  key_usage             = []
  ext_key_usage         = []
}

Expected Behavior

I expect the role to not have a key_usage array specified.

Actual Behavior

The provider ignores the empty key_usage array and produces a perpetual diff that looks like this:

  ~ resource "vault_pki_secret_backend_role" "example_role" {
        id                                 = "example/example_signer"
      ~ key_usage                          = [
          - "DigitalSignature",
          - "KeyAgreement",
          - "KeyEncipherment",
        ]
        name                               = "example_signer"
        # (37 unchanged attributes hidden)
    }

Steps to Reproduce

Apply the code piece from above.

References

#365 #1443 #748 Piece of code where it comes from: https://github.com/hashicorp/terraform-provider-vault/blob/main/vault/resource_pki_secret_backend_role.go#L626 / https://github.com/hashicorp/terraform-provider-vault/blob/main/vault/resource_pki_secret_backend_role.go#L408

martin31821 avatar Jul 14 '22 09:07 martin31821