Network Load Balancer Forwarding Rule

Creates and manages Network Load Balancer Forwarding Rule objects.

Manages a Network Load Balancer Forwarding Rule on IonosCloud.

Example Usage:


resource "ionoscloud_datacenter" "example" {
	name                        = "Datacenter Example"
	location                    = "us/las"
	description                 = "Datacenter Description"
	sec_auth_protection         = false
}

resource "ionoscloud_lan" "example1" {
    datacenter_id               = ionoscloud_datacenter.example.id
    public                      = false
    name                        = "Lan Example 1"
}

resource "ionoscloud_lan" "example2" {
    datacenter_id               = ionoscloud_datacenter.example.id
    public                      = false
    name                        = "Lan Example 2"
}

resource "ionoscloud_networkloadbalancer" "example" {
    datacenter_id               = ionoscloud_datacenter.example.id
    name                        = "example"
    listener_lan                = ionoscloud_lan.example1.id
    target_lan                  = ionoscloud_lan.example2.id
    ips                         = ["10.12.118.224"]
    lb_private_ips              = ["10.13.72.225/24"]
}

resource "ionoscloud_networkloadbalancer_forwardingrule" "example" {
    datacenter_id               = ionoscloud_datacenter.example.id
    networkloadbalancer_id      = ionoscloud_networkloadbalancer.example.id
    name                        = "example"
    algorithm                   = "SOURCE_IP"
    protocol                    = "TCP"
    listener_ip                 = "10.12.118.224"
    listener_port               = "8081"
    targets {
        ip                      = "22.231.2.2"
        port                    = "8080"
        weight                  = "123"
        proxy_protocol          = "v1"
        health_check {
             check              = true
             check_interval     = 1000
        }
    }
}

Usage with dynamic block for targets:

resource "ionoscloud_datacenter" "example" {
	name                        = "Datacenter Example"
	location                    = "us/las"
	description                 = "Datacenter Description"
	sec_auth_protection         = false
}

resource "ionoscloud_lan" "example1" {
    datacenter_id               = ionoscloud_datacenter.example.id
    public                      = false
    name                        = "Lan Example 1"
}

resource "ionoscloud_lan" "example2" {
    datacenter_id               = ionoscloud_datacenter.example.id
    public                      = false
    name                        = "Lan Example 2"
}

resource "ionoscloud_networkloadbalancer" "example" {
    datacenter_id               = ionoscloud_datacenter.example.id
    name                        = "example"
    listener_lan                = ionoscloud_lan.example1.id
    target_lan                  = ionoscloud_lan.example2.id
    ips                         = ["10.12.118.224"]
    lb_private_ips              = ["10.13.72.225/24"]
}

variable IPs{
      type                      = list
      default                   = ["22.231.2.2", "22.231.2.3", "22.231.2.4"]
}

resource "ionoscloud_networkloadbalancer_forwardingrule" "example" {
    datacenter_id               = ionoscloud_datacenter.example.id
    networkloadbalancer_id      = ionoscloud_networkloadbalancer.example.id
    name                        = "example"
    algorithm                   = "SOURCE_IP"
    protocol                    = "TCP"
    listener_ip                 = "10.12.118.224"
    listener_port               = "8081"
    dynamic "targets" {
        for_each                = var.IPs
        content {
            ip                  = targets.value
            port                = "31234"
            weight              = "1"
            health_check {
                check           = true
                check_interval  = 1000
                maintenance     = false
            }
     }
    }
}

Argument reference

  • name - (Required)[string] A name of that Network Load Balancer forwarding rule.

  • algorithm - (Required)[string] Algorithm for the balancing.

  • protocol - (Required)[string] Protocol of the balancing.

  • listener_ip - (Required)[string] Listening IP. (inbound)

  • listener_port - (Required)[int] Listening port number. (inbound) (range: 1 to 65535)

  • health_check - (Optional) Health check attributes for Network Load Balancer forwarding rule.

    • client_timeout - (Optional)[int] ClientTimeout is expressed in milliseconds. This inactivity timeout applies when the client is expected to acknowledge or send data. If unset the default of 50 seconds will be used.

    • connect_timeout - (Optional)[int] It specifies the maximum time (in milliseconds) to wait for a connection attempt to a target VM to succeed. If unset, the default of 5 seconds will be used.

    • target_timeout - (Optional)[int] TargetTimeout specifies the maximum inactivity time (in milliseconds) on the target VM side. If unset, the default of 50 seconds will be used.

    • retries - (Optional)[int] Retries specifies the number of retries to perform on a target VM after a connection failure. If unset, the default value of 3 will be used.

  • targets - (Required)[Set] Array of items in that collection.

    • ip - (Required)[string] IP of a balanced target VM.

    • port - (Required)[int] Port of the balanced target service. (range: 1 to 65535).

    • weight - (Required)[int] Weight parameter is used to adjust the target VM's weight relative to other target VMs.

    • proxy_protocol - (Optional)[string] The proxy protocol version. Accepted values are none, v1, v2, v2ssl. If unspecified, the default value of none is used.

    • health_check - (Optional) Health check attributes for Network Load Balancer forwarding rule target.

      • check - (Optional)[boolean] Check specifies whether the target VM's health is checked.

      • check_interval - (Optional)[int] CheckInterval determines the duration (in milliseconds) between consecutive health checks. If unspecified a default of 2000 ms is used.

      • maintenance - (Optional)[boolean] Maintenance specifies if a target VM should be marked as down, even if it is not.

  • datacenter_id - (Required)[string] A Datacenter's UUID.

  • natgateway_id - (Required)[string] Network Load Balancer's UUID.

Import

A Network Load Balancer Forwarding Rule resource can be imported using its resource id, the datacenter id and the networkloadbalancer id e.g.

terraform import ionoscloud_networkloadbalancer_forwardingrule.my_networkloadbalancer_forwardingrule {datacenter uuid}/{networkloadbalancer uuid}/{networkloadbalancer_forwardingrule uuid}

Last updated