oracle / terraform-provider-oci

Terraform Oracle Cloud Infrastructure provider
https://www.terraform.io/docs/providers/oci/
Mozilla Public License 2.0
758 stars 681 forks source link

Reapplying oci_database_vm_cluster_network resource without any change requires update-in-place #2201

Open jlecerf62 opened 1 month ago

jlecerf62 commented 1 month ago

Community Note

Terraform Version and Provider Version

Terraform v1.9.6 on darwin_arm64

Affected Resource(s)

oci_database_vm_cluster_network

Terraform Configuration Files

resource "oci_database_vm_cluster_network" "test_vm_cluster_network" {
    compartment_id = "ocid1.compartment.oc1..aaaaaaaax6qmvwh5dsh2uyq2pzxxxxxxx"
    display_name = "test_vmcluster_network"
    exadata_infrastructure_id = "ocid1.exadatainfrastructure.oc1.eu-paris-1.anrwiljreen7geqau3e3f5nzuale7agxnzzmvwhhvwoxxxxxxx"
    scans {
        hostname = "testscan"
        ips = ["xxxx","xxxx","xxxx"]
    }
    vm_networks {
        #Required
        network_type = "CLIENT"
        nodes {
            #Required
            hostname = "node1"
            ip = "xxxxx"
            db_server_id = "ocid1.dbserver.oc1.eu-paris-1.anrwiljr6l7dliyabhpkb6blxxxxxxx"
            vip = "xxxxx"
            vip_hostname = "client"
        }
        domain_name = "test.com"
        vlan_id = xxx
        netmask = "255.255.255.192"
        gateway = "xxxxx"
    }
    vm_networks {
        network_type = "BACKUP"
        nodes {
            hostname = "node1-bck"
            ip = "xxxx"
            db_server_id = "ocid1.dbserver.oc1.eu-paris-1.anrwiljr6l7dliyabhpkb6bldsxxxxx"
            vip = "xxxx"
            vip_hostname = "backup"
        }
        domain_name = "test.com"
        vlan_id = 1
        netmask = "255.255.254.0"
        gateway = "xxxx"
    }
    validate_vm_cluster_network = false
    }

Debug Output

https://gist.github.com/jlecerf62/02b5203bcb9761605666e18c3e49a23a

Panic Output

Expected Behavior

There should be nothing to update since the TF code has not changed

Actual Behavior

erraform 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:

  # oci_database_vm_cluster_network.test_vm_cluster_network will be updated in-place
  ~ resource "oci_database_vm_cluster_network" "test_vm_cluster_network" {
        id                          = "ocid1.vmclusternetwork.oc1.eu-paris-1.anrwiljreen7geqalecd4j4dbc3ucq5oxxxxx"
        # (10 unchanged attributes hidden)

      - vm_networks {
          - domain_name  = "test.com" -> null
          - gateway      = "xxxxx" -> null
          - netmask      = "255.255.254.0" -> null
          - network_type = "BACKUP" -> null
          - vlan_id      = "1" -> null

          - nodes {
              - db_server_id = "ocid1.dbserver.oc1.eu-paris-1.anrwiljr6l7dliyabhpkb6bldseihip2gychuhxxxxx" -> null
              - hostname     = "node1-bck" -> null
              - ip           = "xxxxx" -> null
              - state        = "REQUIRES_VALIDATION" -> null
              - vip          = "xxxx" -> null
              - vip_hostname = "backup" -> null
            }
        }
      - vm_networks {
          - domain_name  = "test.com" -> null
          - gateway      = "xxxx" -> null
          - netmask      = "255.255.255.192" -> null
          - network_type = "CLIENT" -> null
          - vlan_id      = "534" -> null

          - nodes {
              - db_server_id = "ocid1.dbserver.oc1.eu-paris-1.anrwiljr6l7dliyabhpkb6bldseihip2gychuheinnxxxxx" -> null
              - hostname     = "node1" -> null
              - ip           = "xxxxx" -> null
              - state        = "REQUIRES_VALIDATION" -> null
              - vip          = "xxxx" -> null
              - vip_hostname = "client" -> null
            }
        }
      + vm_networks {
          + domain_name  = "test.com"
          + gateway      = "xxxx"
          + netmask      = "255.255.254.0"
          + network_type = "BACKUP"
          + vlan_id      = "1"

          + nodes {
              + db_server_id = "ocid1.dbserver.oc1.eu-paris-1.anrwiljr6l7dliyabhpkb6bldseihip2gychuheinnxxxxx"
              + hostname     = "node1-bck"
              + ip           = "xxxx"
              + state        = (known after apply)
              + vip          = "xxxxx"
              + vip_hostname = "backup"
            }
        }
      + vm_networks {
          + domain_name  = "test.com"
          + gateway      = "xxxxx"
          + netmask      = "255.255.255.192"
          + network_type = "CLIENT"
          + vlan_id      = "534"

          + nodes {
              + db_server_id = "ocid1.dbserver.oc1.eu-paris-1.anrwiljr6l7dliyabhpkb6bldseihip2gychuheixxxxx"
              + hostname     = "node1"
              + ip           = "xxxx"
              + state        = (known after apply)
              + vip          = "xxxx"
              + vip_hostname = "client"
            }
        }

        # (1 unchanged block hidden)
    }

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

Steps to Reproduce

  1. terraform apply

Important Factoids

References

tf-oci-pub commented 1 month ago

Thank you for reporting the issue. We have raised an internal ticket to track this. Our service engineers will get back to you.