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