frostmoln_lb_health_monitor (Resource)
Manages the health monitor of a Frostmoln load balancer pool. A pool has at most one health monitor (singleton).
Authoritative scope — who owns what on this resource, declared in internal/scopedecl and machine-checked against the schema.
Enacted and reconciled — every configurable attribute not listed below: the platform applies it, and a refresh reads the truth back.
Create-immutable — load_balancer_id, pool_id, type: the monitor's identity is its pool and check type; changing one is a different monitor.
Observed, not enacted — tags_all: keys set outside Terraform — in the portal, by the fm CLI, or stamped by the platform — appear only here and are kept on every apply, never removed.
Example Usage
terraform
# A health monitor for a load balancer pool. A pool has at most one health
# monitor (singleton); the type must be tcp, http, or https (ping is not
# supported).
resource "frostmoln_lb_health_monitor" "backend" {
load_balancer_id = frostmoln_load_balancer.web.id
pool_id = frostmoln_lb_pool.backend.id
type = "http"
delay = 5
timeout = 3
max_retries = 3
url_path = "/healthz"
http_method = "GET"
expected_codes = "200"
# The monitor's OWN tags — separate from its pool's and the load balancer's.
# Removing this block removes every tag from the monitor.
tags = {
env = "prod"
}
}Schema
Required
load_balancer_id(String) The ID of the load balancer the pool belongs to. Changing this forces a new resource.pool_id(String) The ID of the pool this health monitor belongs to. Changing this forces a new resource.type(String) The health check type: tcp, http, or https. Changing this forces a new resource.
Optional
delay(Number) The interval in seconds between health checks.expected_codes(String) The HTTP status codes considered healthy (http/https monitors), e.g. "200" or "200-299".http_method(String) The HTTP method used for the health check (http/https monitors).max_retries(Number) The number of successful checks before a member is marked healthy.tags(Map of String) Key-value tags for the health monitor. These are the monitor's own tags, separate from its pool's and the load balancer's. Merged with the provider'sdefault_tagson every write (a key set here wins). Holds only the keys this configuration sets; the full set is intags_all.timeout(Number) The time in seconds to wait for a health check response.timeouts(Block, Optional) (see below for nested schema)url_path(String) The HTTP path to probe (http/https monitors).
Read-Only
created_at(String) The creation timestamp.id(String) The unique identifier of the health monitor.tags_all(Map of String) Every tag the platform holds on this resource: the provider'sdefault_tags, this resource's owntags(which win on a shared key), and any key set outside Terraform — in the portal, by the fm CLI, or stamped by the platform. Keys set outside Terraform appear only here and are kept on every apply, never removed.updated_at(String) The last update timestamp.
Nested Schema for timeouts
Optional:
create(String) How long the provider waits for the create operation to converge before giving up (e.g. "45m", "2h").delete(String) How long the provider waits for the delete to complete before giving up (e.g. "30m").update(String) How long the provider waits for an update (resize, in-place change) to converge before giving up (e.g. "30m").