F5Networks / terraform-provider-bigip

Terraform resources that can configure F5 BIG-IP products
https://registry.terraform.io/providers/F5Networks/bigip/latest/docs
Mozilla Public License 2.0
105 stars 119 forks source link

fqdn update in node is not implemented #996

Open stboissdev opened 5 months ago

stboissdev commented 5 months ago

When i update an existing node, fqdn change has no effect.

I read code and that is not implemented

pgouband commented 4 months ago

Hi @stboissdev,

Can you share your TF main file?

stboissdev commented 3 months ago

Hi @pgouband , my tf :

resource "bigip_ltm_node" "node" {
  for_each = var.f5_node-common

  name        = "/${var.f5_partition}/${each.key}"
  description = each.value.description
  address     = each.value.address != null ? each.value.address : each.value.fqdn.name

  monitor = each.value.monitor

  session = each.value.session
  #state   = each.value.state

  dynamic "fqdn" {
    for_each = each.value.fqdn != null ? [each.value.fqdn] : []
    content {
      #name     = fqdn.value.name
      autopopulate = fqdn.value.autopopulate
      interval     = fqdn.value.interval
    }
  }
}

my variable on create :

f5_node-common = {
  "Test_node_update" = {
    description = "Test_node_update"
    monitor     = "default"
    fqdn = {
      name         = "f5.com"
      autopopulate = "enabled"
      interval     = "ttl"
    }
  }
}

apply result are :

 bigip_ltm_node.node["Test_node_update"] will be created
  + resource "bigip_ltm_node" "node" {
      + address          = "f5.com"
      + connection_limit = (known after apply)
      + description      = "Test_node_update"
      + dynamic_ratio    = (known after apply)
      + id               = (known after apply)
      + monitor          = "default"
      + name             = "/Common/Test_node_update"
      + rate_limit       = (known after apply)
      + ratio            = (known after apply)
      + session          = (known after apply)
      + state            = (known after apply)

      + fqdn {
          + address_family = (known after apply)
          + autopopulate   = "enabled"
          + downinterval   = (known after apply)
          + interval       = "ttl"
        }
    }

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

after change variables :

f5_node-common = {
  "Test_node_update" = {
    description = "Test_node_update"
    monitor     = "default"
    fqdn = {
      name         = "f5.com"
      autopopulate = "disabled"
      interval     = "ttl"
    }
  }
}

results are always after multiple apply :

  # bigip_ltm_node.node["Test_node_update"] will be updated in-place
  ~ resource "bigip_ltm_node" "node" {
        id               = "/Common/Test_node_update"
        name             = "/Common/Test_node_update"
        # (8 unchanged attributes hidden)

      ~ fqdn {
          ~ autopopulate   = "enabled" -> "disabled"
            name           = null
            # (3 unchanged attributes hidden)
        }
    }

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