sylve_zfs_filesystem (Resource)

A ZFS filesystem dataset managed through Sylve, e.g. for a VM/jail storage pool or a Samba share. Does not cover ZFS volumes (zvols) or pools themselves – see the provider’s dev notes.

Example Usage

resource "sylve_zfs_filesystem" "example" {
  name   = "my-fs" # leaf name -> full path "tank/my-fs"
  parent = "tank"

  properties = {
    compression = "lz4"
    quota       = "10G"
  }
}

Schema

Required

  • name (String) Leaf dataset name, e.g. “my-fs” for parent “tank” -> full path “tank/my-fs”. Immutable (no rename endpoint); changing it recreates the resource.
  • parent (String) Full path of the parent dataset/pool, e.g. “tank” or “tank/sylve”. Sylve’s own create API has a real quirk here (see the provider’s dev notes): its top-level “parent” request field is validated but then silently discarded – the value actually used is read back out of a same-named key inside “properties” instead. This provider sends both so the practitioner never needs to know that.

Optional

  • properties (Map of String) ZFS properties to set, e.g. {compression = “lz4”, quota = “10G”}. Write-only: not read back (see resource description), and changing this attribute is applied via Update (PATCH), not recreation – but Terraform can’t detect drift if something else changes a property out-of-band.

Read-Only

  • id (String) Terraform resource identity – the dataset’s ZFS GUID.
  • mountpoint (String) Filesystem mountpoint, as reported by Sylve.
  • pool (String) Pool the dataset lives on, as reported by Sylve (derived from parent).

Not published on the Terraform Registry yet -- see the repo's README for local dev_overrides usage in the meantime.

This site uses Just the Docs, a documentation theme for Jekyll.