Skip to content

frostmoln_lb_pool (Resource)

Manages a backend pool on a Frostmoln load balancer.

Example Usage

terraform
# A backend pool for a load balancer.
#
# The pool's listener_id attaches this pool to a listener. This is the canonical
# direction for the listener<->pool link; do NOT also set default_pool_id on the
# listener, or Terraform will report a dependency cycle.
resource "frostmoln_lb_pool" "backend" {
  load_balancer_id = frostmoln_load_balancer.web.id
  listener_id      = frostmoln_lb_listener.https.id
  name             = "backend"
  protocol         = "http"
  lb_algorithm     = "round_robin"
  proxy_protocol   = "none"

  # Optional session persistence (nested attribute). Omit for none.
  session_persistence = {
    type                = "APP_COOKIE"
    cookie_name         = "SESSIONID"
    persistence_timeout = 3600
  }

  # The pool's OWN tags. The load balancer's tags are separate and are not
  # inherited; removing this block removes every tag from the pool.
  tags = {
    env   = "prod"
    owner = "team-a"
  }
}

Schema

Required

  • lb_algorithm (String) The load balancing algorithm: round_robin, least_connections, source_ip, or source_ip_port (source_ip_port is required for OVN-provider pools).
  • load_balancer_id (String) The ID of the load balancer this pool belongs to. Changing this forces a new resource.
  • name (String) The name of the pool.
  • protocol (String) The pool protocol: tcp, udp, sctp, http, https, or terminated_https.

Optional

  • listener_id (String) The ID of the listener this pool is attached to. Changing this forces a new resource.
  • proxy_protocol (String) The PROXY protocol version sent to backend members: none (default), v1, or v2.
  • session_persistence (Attributes) Session persistence configuration for the pool. Omit for no persistence. (see below for nested schema)
  • tags (Map of String) Key-value tags for the pool. These are the pool's own tags, separate from the load balancer's.

Read-Only

  • created_at (String) The creation timestamp.
  • id (String) The unique identifier of the pool.
  • updated_at (String) The last update timestamp.

Nested Schema for session_persistence

Required:

  • type (String) The session persistence type: SOURCE_IP, HTTP_COOKIE, or APP_COOKIE.

Optional:

  • cookie_name (String) The cookie name to use for persistence (required for APP_COOKIE).
  • persistence_granularity (String) The persistence granularity (netmask) for SOURCE_IP persistence.
  • persistence_timeout (Number) The persistence timeout in seconds.