frostmoln_scale_group (Resource)
Manages an auto-scaling group in the Frostmoln platform.
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.
Observed, not enacted — current_size: the autoscaler moves it continuously under the customer — desired_capacity is the intent, this is the truth. 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
resource "frostmoln_scale_group" "web" {
name = "web-servers"
launch_template_id = frostmoln_launch_template.web.id
min_size = 2
max_size = 10
desired_capacity = 3
subnet_ids = [frostmoln_subnet.a.id, frostmoln_subnet.b.id]
load_balancer_pool_ids = [frostmoln_lb_pool.web.id]
health_check_type = "lb"
health_check_grace_period = 120
cooldown_seconds = 300
termination_policy = "oldest_first"
tags = {
environment = "production"
}
}Schema
Required
desired_capacity(Number) The desired number of instances in the scale group.launch_template_id(String) The launch template ID used to create instances in this scale group.max_size(Number) The maximum number of instances in the scale group.min_size(Number) The minimum number of instances in the scale group.name(String) The name of the scale group.subnet_ids(Set of String) The subnet IDs where instances will be launched. At least one is required.
Optional
cooldown_seconds(Number) The number of seconds after a scaling activity completes before another can start.health_check_grace_period(Number) The number of seconds to wait before starting health checks on new instances.health_check_type(String) The type of health check to use: "instance", "lb", or "both".load_balancer_pool_ids(Set of String) The load balancer pool IDs to attach to the scale group.tags(Map of String) Key-value tags for the scale group. 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.termination_policy(String) The policy for selecting instances to terminate during scale-in (e.g. "oldest_first", "newest_first").timeouts(Block, Optional) (see below for nested schema)warmup_seconds(Number) The number of seconds to wait for a new instance to warm up before it receives traffic. Zero is honored as sent; omit to use the server default.
Read-Only
created_at(String) The timestamp when the scale group was created.current_size(Number) The current number of running instances in the scale group.id(String) The unique identifier of the scale group.status(String) The current status of the scale group.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 timestamp when the scale group was last updated.
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").