/
infoblox_dtc_pool Resource

infoblox_dtc_pool Resource

The infoblox_dtc_pool resource enables you to perform create, update, and delete operations on a DNS Traffic Control (DTC) pool in a NIOS appliance. The resource represents the ‘dtc:pool’ WAPI object in NIOS. For more information related to the DTC pool object, see Managing DNS Traffic Control Pools in the Infoblox NIOS Documentation.

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

Parameter

Required/Optional

Description

Parameter

Required/Optional

Description

name

Required

Specifies the desired name of the DTC pool as shown in the NIOS appliance. The name has the same requirements as the corresponding parameter in WAPI.

auto_consolidated_monitors

Optional

Determines whether the automatic management of DTC consolidated monitors is enabled in the DTC pool.
The default value is false.

availability

Optional

Specifies the criteria to consider a pool as available. You can set one of the following values:

  • ANY: Any number of active monitors can report the available status for the pool to be determined as available.

  • QUORUM: The minimum number of active monitors that must report the available status for the pool to be determined as available

  • ALL: All active monitors must report the available status for the pool to be determined as available.

The default value is ALL.

quorum

Optional

Specifies the minimum number of monitors that must report the pool as up for it to be available when availability is set to QUORUM.

disable

Optional

Determines whether the DTC pool object is enabled or disabled.
The default value is false.

consolidated_monitors

Optional

Specifies the List of monitors and associated member statuses that are shared across members and consolidated in server availability determination.
To use this parameter, configure the following fields:

  • monitor_name (required): The name of the monitor.

  • monitor_type (required): The type of the monitor.

  • members (required): Members whose monitor statuses are shared across other members in a pool

  • availability: Servers assigned to a pool with monitors defined are healthy if ANY or ALL members report healthy status.

  • full_health_communication: Flag for switching the health performing and sharing behavior to perform health checks on each DTC Grid member that serves related LBDN(s) and send them across all DTC Grid members from both selected and non-selected lists.

Note:

  • To configure consolidated_monitors when creating a DTC pool object, you must set disable to true.

  • This parameter is not required if auto_consolidated_monitors is configured.

lb_preferred_method

Required

Specifies the preferred Load Balancing method of the DTC pool. You can set it to any of the following methods:

  • ALL_AVAILABLE

  • DYNAMIC_RATIO

  • GLOBAL_AVAILABILITY

  • RATIO

  • ROUND_ROBIN

  • SOURCE_IP_HASH

  • TOPOLOGY

lb_dynamic_ratio_preferred

Optional

Specifies the DTC pool settings for dynamic ratio when DYNAMIC_RATIO is selected for lb_preferred_method.
You can define the following sub parameters:

  • invert_monitor_metric: Determines whether the inverted values of the DTC SNMP monitor metric will be used. The default value is false.

  • method: Specifies the method of the DTC dynamic ratio load balancing.
    Valid values are MONITOR and ROUND_TRIP_DELAY.

  • monitor_weighing: Specifies the DTC monitor weight.
    You can configure one of the following values:

    • PRIORITY: It means that all clients will be forwarded to the least loaded server.

    • RATIO: It means that distribution will be calculated based on dynamic weights.
      The default value is RATIO.

  • monitor_name: Specifies the name of the monitor.

  • monitor_type: Specifies the type of the monitor.

  • monitor_metric: Specifies the metric of the DTC SNMP monitor that will be used for dynamic weighing.

lb_preferred_topology

Optional

Specifies the preferred topology that must be used when the load balancing method is set to TOPOLOGY.

lb_alternate_method

Optional

Specifies the alternate load balancing method.
Use this parameter to select a method type from the pool if the preferred method does not return any results. The default value is NONE.

lb_dynamic_ratio_alternate

Optional

Specifies the DTC Pool settings for dynamic ratio when DYNAMIC_RATIO is selected as an alternate load balancing method.
For the sub parameters that you can define for this parameter, see the description of the lb_dynamic_ratio_preferred parameter.

lb_alternate_topology

Optional

Specifies the alternate topology for load balancing when the alternate load balancing method is set to TOPOLOGY.

monitors

Optional

Specifies the list of monitors associated with the pool.
To use this parameter, you must configure the following fields:

  • monitor_name: The name of the monitor.

  • monitor_type: The type of the monitor.

servers

Optional

Specifies the list of servers related to the DTC pool.
To use this parameter, you must configure the following fields:

  • server: The name of the server for the pool.

  • ratio: The weight of the server.

ttl

Optional

Specifies the Time to Live value for the pool. There is no default value for this parameter.
If a value is not specified, then in NIOS, the TTL value is inherited from the parent object for this resource. A TTL value of 0 (zero) means caching should be disabled for this pool.

comment

Optional

Describes the DTC pool.

ext_attrs

Optional

Specifies the set of NIOS extensible attributes that will be attached to the DTC pool.

Example of DTC Pool Resource

//creating DTC pool
resource "infoblox_dtc_pool" "rec1" {
   name     = "Pool1"
   lb_preferred_method = "DYNAMIC_RATIO"
   lb_dynamic_ratio_preferred = jsonencode({
    "invert_monitor_metric" = true
     "method" = "MONITOR"
     "monitor_weighing" = "RATIO"
     "monitor_metric" = ".0"
"monitor_name"="snmp"
    "monitor_type"="snmp"
   })
  servers {
     server  = "SERVER"
     ratio = 100
  }
monitors{
     monitor_name = "snmp"
     monitor_type="snmp"
}
}

resource "infoblox_dtc_pool" "pool_lb_preferred_method_topology" {
name = "terraform_pool.com"
comment = "testing pool terraform"
lb_preferred_method = "TOPOLOGY"
lb_preferred_topology = "topology_ruleset"
ext_attrs = jsonencode({
"Site" = "Blr"
})
servers{
server = "server.com"
ratio = 3
}
servers{
server = "terraform_server.com"
ratio = 3
}
servers{
server = "terraform_server1.com"
ratio = 4
}
monitors{
monitor_name = "http"
monitor_type="http"
}
monitors{
monitor_name = "snmp"
monitor_type="snmp"
}
lb_alternate_method= "DYNAMIC_RATIO"
lb_dynamic_ratio_alternate = jsonencode({
"monitor_name" = "snmp"
"monitor_type" = "snmp"
"method" = "MONITOR"
"monitor_metric" = ".1.2"
"monitor_weighing" = "PRIORITY"
"invert_monitor_metric" = "true"
})
auto_consolidated_monitors = true
availability = "QUORUM"
quorum = 2
ttl = 120
disable = true
}

 

//Pool creation with maximal parameters
//parameters for DTC pool when preferred load balancing is TOPOLOGY and alternate load balancing is DYNAMIC_RATIO
resource "infoblox_dtc_pool" "pool" {
name = "terraform_pool.com"
comment = "testing pool terraform"
lb_preferred_method = "TOPOLOGY"
lb_preferred_topology = "topology_ruleset"
ext_attrs = jsonencode({
"Site" = "Blr"
})
servers {
server = "server.com"
ratio = 3
}
servers {
server = "terraform_server.com"
ratio = 3
}
servers {
server = "terraform_server1.com"
ratio = 4
}
monitors {
monitor_name = "http"
monitor_type = "http"
}
monitors {
monitor_name = "snmp"
monitor_type = "snmp"
}
lb_alternate_method = "DYNAMIC_RATIO"
lb_dynamic_ratio_alternate = jsonencode({
"monitor_name" = "snmp"
"monitor_type" = "snmp"
"method" = "MONITOR"
"monitor_metric" = ".1.2"
"monitor_weighing" = "PRIORITY"
"invert_monitor_metric" = true
})
availability = "QUORUM"
quorum = 2
ttl = 120
consolidated_monitors{
monitor_name = "http"
monitor_type = "http"
members = ["infoblox.localdomain"]
availability= "ALL"
full_health_communication= true
}
disable = true
}