With the IP address association operation, you can update the Host record created using the IP address allocation operation with details of the VM created in the cloud environment. The VM details include DUID and VM tags as extensible attributes.

Note

If you are not using other Terraform providers with the Infoblox provider to deploy virtual machines and allocate IP addresses from NIOS, then ignore the infoblox_ipv6_association resource block, which is used for updating the properties of virtual machines.

Additionally, define the following parameter for infoblox_ipv6_association:

Parameter

Required/Optional

Description

Example Value

duid


Required

It specifies the DHCPv6 Unique Identifier (DUID) of the address object.

0c:c0:84:d3:03:00:09:12

Example of the Resource Block

As the IP address association operation is dependent on the allocation operation, the following examples for IPv6 addresses demonstrate how to define the resource blocks in the Terraform configuration file:

resource "infoblox_ipv6_allocation" "ipv6_allocation" {
  network_view= "default"
  cidr = infoblox_ipv6_network.ipv6_network.cidr
  
  #Create Host Record with DNS and DHCP flags
  dns_view="default"
  fqdn="testipv6.aws.com"
  enable_dns = "true"

  comment = "tf IPv6 allocation"
  ext_attrs = jsonencode({
    "Tenant ID" = "tf-plugin"
    "Cloud API Owned" = "True"
    "CMP Type"= "AWS"
    "Network Name" = "ipv6-tf-network"
    "VM Name" = "tf-ec2-instance-ipv6"
    "Location" = "Test loc."
    "Site" = "Test site"
   })
}

resource "infoblox_ipv6_association" "ipv6_associate"{
  network_view = infoblox_ipv6_allocation.ipv6_allocation.network_view
  ip_addr = infoblox_ipv6_allocation.ipv6_allocation.ip_addr
  duid = aws_network_interface.ni.mac_address

  #Create Host Record with DNS and DHCP flags
  dns_view=infoblox_ipv6_allocation.ipv6_allocation.dns_view
  fqdn=infoblox_ipv6_allocation.ipv6_allocation.fqdn
  enable_dns = infoblox_ipv6_allocation.ipv6_allocation.enable_dns
  enable_dhcp = infoblox_ipv6_allocation.ipv6_allocation.enable_dhcp

  comment = ""Associating of an IPv6 address""
  ext_attrs = jsonencode({
    "Tenant ID" = "tf-plugin"
    "Cloud API Owned" = "True"
    "CMP Type"= "AWS"
    "Network Name" = "ipv6-tf-network"
    "VM Name" = "tf-ec2-instance-ipv6"
    "VM ID" = aws_instance.ec2-instance.id
    "Location" = "Test loc."
    "Site" = "Test site"
  })
}