Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The infoblox_ip_allocation resource allows allocation of a new IP address from a network that already exists as a NIOS object. The IP address can be allocated statically by specifying an address or , dynamically as the next available IP address from the specified IPv4 and/or IPv6 network blocks or by specifying the extensible attribute filters of parent network.

Note

...

The allocation is done by creating a host record in NIOS with an IPv4 address, an IPv6 address, or both assigned to the record. The allocated IP address is marked as ‘used’ in the appropriate network block.

...

.

...

The following table describes the parameters you can define in the infoblox_ip_allocation resource block:

Parameter

Required/
Optional

Description

Example Value

fqdn

Required

Specifies the name (in FQDN format) of a host with which an IP address needs to be allocated.
In a cloud environment, a VM name could be used as a host name.
If you disable the flag for a host record with its name in the FQDN format and the enable_dns flag enabled, you must remove the zone part from the record name and keep only the host name. For example, you must change hostname1.zone.com to hostname1.

ip-12-34-56-78.us-west-2.compute.internal

network_view

Optional

Specifies the network view from which to get the specified network block.
If a value is not specified, the name default is set as the network view.

dmz_netview

dns_view

Optional

Specifies the DNS view in which to create the DNS resource records that are associated with the IP address.

  • If enable_dns is set to true, you must configure this parameter.

  • If enable_dns is set to false, you must remove this parameter from the resource block.

For more information, see the description of the enable_dns parameter.

dmz_dnsview

enable_dns

Optional

A flag that specifies whether DNS records associated with the resource must be created.
The default value is true.

When you update the enable_dns parameter, consider the following points:

  • If you set the parameter to false when creating a resource, you must not specify the dns_view parameter.

  • If you set the parameter to false when updating a resource, you must:

    • Remove the dns_view parameter. Not removing it can result in unexpected errors.

    • Remove the zone part in the FQDN, and keep only the host record’s name.
      For example, an FQDN with host1 as the record name and example.org as the zone must be changed from host1.example.orgtohost1.

  • If you set the parameter from false to true, you must:

    • Specify the dns_view parameter. If you do not, the name default will not be configured.

    • Change the fqdn value to FQDN without a leading dot. That is, to the name of the host record, add a zone that exists in the specified DNS view.
      For example, if the fqdn value is host1 and the zone selected from the specified DNS view is example.com, then the fqdn must be changed to host1.example.com.

true

ipv4_cidr

Required only for dynamic allocation

Specifies the IPv4 network block (in CIDR format) from where to allocate an IP address.
Use this parameter only when ipv4_addr is not specified.

10.0.0.0/24

ipv6_cidr

Required only for dynamic allocation

Specifies the IPv6 network block (in CIDR format) from where to allocate an IP address.
Use this parameter only when ipv6_addr is not specified.

2000:1148::/32

ipv4_addr

Required only for static allocation

Specifies an IPv4 address to allocate.
Use this parameter only when ipv4_cidr is not specified.
The allocated IP address will be marked as ‘Used’ in NIOS Grid Manager.
The default value is an empty string. If you specify both ipv4_addr and ipv4_cidr, then ipv4_addr takes precedence.

10.0.0.10

ipv6_addr

Required only for static allocation

Specifies an IPv6 address to allocate.
Use this parameter only when ipv6_cidr is not specified.
The allocated IP address will be marked as ‘Used’ in NIOS Grid Manager.
The default value is an empty string. If you specify both ipv6_addr and ipv6_cidr, then ipv6_addr takes precedence.

2000:1148::10

filter_params

Optional

Specifies the extensible attributes of the parent network that must be used as filters to retrieve the next available IP address for creating the host record object.

jsonencode({
"*Site": "Turkey"
})

ip_address_type

Optional

Specifies the type of IP address to allocate. The valid values are, IPV4, IPV6, and Both. The default value is IPv4.
Note that this field is applicable only when filter_params is configured.

Both

disable

Optional

Disables the record if set to true. The default value is false.

false

aliases

Optional

Specifies a list of aliases for the host record.

["aws880.test.com"]

ttl

Optional

Specifies the time to live value for the DNS record.
This parameter is relevant only when enable_dns is set to true.
If a value is not specified, then in NIOS, the value is inherited from the parent object of the DNS record for this resource.

3600

comment

Optional

Specifies the human readable description of the resource.

Front-end cloud node.

ext_attrs

Optional

Specifies the set of NIOS extensible attributes that are attached to the NIOS resource.

An extensible attribute must be a JSON map translated into a string value.

ext_attrs = jsonencode({ "Tenant ID" = "tf-plugin"
 "Location" = "Test loc."
 "Site" = "Test site"
})

When you use the infoblox_ip_allocation resource block to allocate or deallocate a static IP address from a host record, you must configure appropriate dependencies so that workflows run in the correct order. In the following example, dependencies have been configured for network view and the extensible attribute, Network Name:

...

When you perform a create or an update operation using this allocation resource, the following read-only parameters are computed:

Parameter

Description

allocated_ipv4_addr

If you allocated a dynamic IP address, this value is the IP address allocated from the specified IPv4 CIDR.
If you allocated a static IP address, this value is the IP address that you specified in the ipv4_addr field.
You can reference this field for the IP address when using other resources.
Example:

resource "infoblox_ip_aloocation" "allocation1" {
  ipv4_cidr = infoblox_ipv4_network.cidr
  fqdn = local.vm_name
}

You can add a reference for the IP address as follows:

infoblox_ip_allocation.allocation1.allocated_ipv4_addr

allocated_ipv6_addr

If you allocated a dynamic IP address, this value is the IP address allocated from the specified IPv6 CIDR.
If you allocated a static IP address, this value is the IP address that you specified ipv6_addr field.

You can reference this field for the IP address when using other resources. See the previous description for an example.

Example of the Resource Block

...

// dynamic allocation
resource "infoblox_ip_allocation" "allocation5" {
dns_view = "nondefault_dnsview2"
network_view = "nondefault_netview"
fqdn = "host5.example4.org"
ipv6_cidr = infoblox_ipv6_network.net2.cidr
ipv4_cidr = infoblox_ipv4_network.net2.cidr
}

//Host record resource using next-available-IP address based on extensible attributes tag
resource "infoblox_ip_allocation" "rec_host17" {
fqdn = "new777.test.com"
aliases = ["www.test.com"]
disable = false
//Extensible attributes of parent network
filter_params = jsonencode({
"*Site": "Turkey"
})
ip_address_type = "Both"
enable_dns = true
ttl = 60
}