Skip to content

frostmoln_volume (Resource) ​

Manages a block storage volume 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.

Create-immutable — encrypted, volume_type: the platform has no in-place migration for it — re-typing, re-zoning or re-encrypting a volume means a new volume.

Create-immutable — snapshot_id: a volume's origin is fixed at create.

Create-immutable — zone: the platform pins the zone at create; there is no in-place migration between zones.

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
resource "frostmoln_volume" "data" {
  name        = "app-data-volume"
  description = "Persistent data volume for application"
  size_gb     = 100
  volume_type = "ssd"
  zone        = "falkenberg"

  tags = {
    purpose = "data"
  }
}

Schema ​

Required ​

  • name (String) The name of the volume.
  • size_gb (Number) The size of the volume in gigabytes. Can be increased after creation (resize).

Optional ​

  • description (String) A human-readable description of the volume.
  • encrypted (Boolean) Whether the volume is encrypted. Volume encryption is not available yet — setting this to true is rejected at apply time.
  • snapshot_id (String) The snapshot ID to create the volume from.
  • tags (Map of String) Key-value tags for the volume. Merged with the provider's default_tags on every write (a key set here wins). Holds only the keys this configuration sets; the full set is in tags_all.
  • timeouts (Block, Optional) (see below for nested schema)
  • volume_type (String) The volume tier key (e.g. "ssd"). The set of selectable tiers is server-defined and may change without a provider release — read it from the frostmoln_volume_tiers data source (only tiers with status "offered" are accepted; a non-offered tier is rejected by the API). Defaults to the platform default tier when omitted.
  • zone (String) The availability zone for the volume.

Read-Only ​

  • attached_to (String) The instance ID the volume is attached to, if any.
  • created_at (String) The timestamp when the volume was created.
  • device_path (String) The device path on the instance, if attached.
  • id (String) The unique identifier of the volume.
  • iops (Number) The provisioned IOPS of the volume.
  • status (String) The current status of the volume.
  • tags_all (Map of String) Every tag the platform holds on this resource: the provider's default_tags, this resource's own tags (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.
  • throughput (Number) The throughput of the volume in MB/s.

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").