This Terraform module will deploy a NSX-T ALB Pool into an existing VMware Cloud Director (VCD) environment. It can be used to provision a new ALB Pool, which represents a group of servers to which the load balancer can distribute traffic. This module can be used to provision new ALB Pools into Rackspace Technology SDDC Flex VCD Data Center Regions.
| Name | Version |
|---|---|
| terraform | ~> 1.2 |
| vcd | ~> 3.8 |
| Name | Type |
|---|---|
| vcd_vdc_group | Data Source |
| vcd_nsxt_edgegateway | Data Source |
| vcd_library_certificate | Data Source |
| vcd_nsxt_ip_set | Data Source |
| vcd_nsxt_alb_pool | Resource |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| vdc_org_name | The name of the Data Center Group Organization in VCD | string | "Organization Name Format: <Account_Number>-<Region>-<Account_Name>" |
yes |
| vdc_group_name | The name of the Data Center Group in VCD | string | "Data Center Group Name Format: <Account_Number>-<Region>-<Account_Name> <datacenter group>" |
yes |
| vcd_edge_name | Name of the Data Center Group Edge Gateway | string | "Edge Gateway Name Format: <Account_Number>-<Region>-<Edge_GW_Identifier>-<edge>" |
Yes |
| pool_name | A name for NSX-T ALB Pool | string | "" | yes |
| members | List of pool members | list(object({ enabled = bool, ip_address = string, port = number, ratio = number })) | [] | yes |
| member_group_id | A reference to NSX-T IP Set | string | "" | no |
| member_group_ip_set_name | The name of the Member Group IP Set | string | "" | no |
| use_member_group | Whether to use an IP set as pool members | bool | false | no |
| description | An optional description NSX-T ALB Pool | string | "" | no |
| enabled | Boolean value if NSX-T ALB Pool should be enabled | bool | true | no |
| algorithm | Optional algorithm for choosing pool members | string | "LEAST_CONNECTIONS" | no |
| default_port | Default Port defines destination server port used by the traffic sent to the member | number | 80 | no |
| graceful_timeout_period | Maximum time in minutes to gracefully disable pool member | string | "1" | no |
| passive_monitoring_enabled | Defines if client traffic should be used to check if pool member is up or down | bool | true | no |
| ca_certificate_name | The name of the CA certificate | string | "" | no |
| cn_check_enabled | Specifies whether to check the common name of the certificate presented by the pool member | bool | false | no |
| domain_names | A set of domain names which will be used to verify the common names or subject alternative names presented by the pool member certificates | list(string) | [] | no |
| persistence_profile | Persistence profile to ensure that the same user sticks to the same server for a desired duration of time | list(object({ type = string, value = string })) | [] | no |
| health_monitor | Health monitor to check if a member is up or down | list(object({ type = string })) | [] | no |
| Name | Description |
|---|---|
| associated_virtual_service_ids | The IDs of the Virtual Services associated with the ALB Pool |
| associated_virtual_services | The names of the Virtual Services associated with the ALB Pool |
| lb_pool_members | List of all members with their details in the ALB Pool |
| lb_member_count | The total count of the members in the ALB Pool |
| lb_up_member_count | The count of the up members in the ALB Pool |
| lb_enabled_member_count | The count of the enabled members in the ALB Pool |
| health_message | The health message for the ALB Pool |
| lb_algorithm | The load balancing algorithm used for the ALB Pool |
| lb_default_server_port | The default server port for the ALB Pool |
| lb_persistence_profile_name | System generated name of Persistence Profile |
| lb_health_monitor_type | Type of health monitor. One of HTTP, HTTPS, TCP, UDP, PING |
| lb_health_monitor_name | System generated name of Health monitor |
| lb_health_monitor_system_defined | A boolean flag if the Health monitor is system defined |
| lb_member_group_ipset_name | The name of the IP set used for the member group in the ALB Pool |
This is an example of a main.tf file that uses the "github.com/global-vmware/vcd_nsxt_alb_pool" Module source to create a NSX-T ALB Pool that is using a Member Type of: IP Address.
module "vcd_nsxt_alb_pool" {
source = "github.com/global-vmware/vcd_nsxt_alb_pool.git?ref=v1.2.1"
vdc_group_name = "<US1-VDC-GRP-NAME>"
vdc_org_name = "<US1-VDC-ORG-NAME>"
vdc_edge_name = "<US1-VDC-EDGE-NAME>"
pool_name = "test-pool-01"
default_port = 80
members = [
{
ip_address = "172.16.0.10",
enabled = true,
port = 80,
ratio = 1
},
{
ip_address = "172.16.0.11",
enabled = true,
port = 80,
ratio = 1
}
]
algorithm = "FASTEST_RESPONSE"
persistence_profile = [
{
type = "CLIENT_IP"
value = ""
}
]
health_monitor = [
{
type = "HTTP"
}
]
}This is an example of a main.tf file that uses the "github.com/global-vmware/vcd_nsxt_alb_pool" Module source to create a NSX-T ALB Pool that is using a Member Type of: Group.
module "vcd_nsxt_alb_pool" {
source = "github.com/global-vmware/vcd_nsxt_alb_pool.git?ref=v1.2.0"
vdc_group_name = "<US1-VDC-GRP-NAME>"
vdc_org_name = "<US1-VDC-ORG-NAME>"
vdc_edge_name = "<US1-VDC-EDGE-NAME>"
pool_name = "test-pool-01"
default_port = 80
use_member_group = true
member_group_ip_set_name = "US1-Prod-App-Web-Pool"
algorithm = "LEAST_LOAD"
persistence_profile = [
{
type = "CLIENT_IP"
value = ""
}
]
health_monitor = [
{
type = "HTTP"
}
]
}This module is maintained by the Global VMware Cloud Automation Services Team.