Skip to content

feat(node): create ZFS pools from raw disks — POST /nodes/{node}/disks/zfs #177

Description

@fabriziosalmi

The gap

proxxx lists ZFS pools read-only (proxxx disks zfs) and round-trips the zfspool storage definition (/storage), but it cannot build a zpool from raw disks. This is the one confirmed node-level mutation gap surfaced by the v0.10.0 gap-analysis — the "Create ZFS pool" action the proxima desktop UI wants. There is currently zero POST /nodes/{node}/disks/* anywhere in the gateway; the same asymmetry exists for directory / LVM / lvmthin creation.

Scope

  • New ProxmoxGateway method create_node_zfs_pool(node, name, devices, raid, ...)POST /nodes/{node}/disks/zfs.
  • CLI surface (e.g. proxxx disks zfs create --node N --name tank --raid mirror --device /dev/sdb --device /dev/sdc).
  • add_storage=1 to auto-register the matching zfspool storage definition (so it immediately becomes manageable by the existing storage state family).
  • This is a destructive node-level mutation → it MUST go behind the destructive-confirm gate (--yes), and should be covered by the test-net from Test net + shared helper for destructive --yes confirmation gates #172.

Notes

  • Node-level (not cluster-level), so it does not become a GitOps state family — it's an imperative action, like guest create/delete.
  • Effort: M. Async task (PVE returns a UPID); reuse the existing task-wait helper.
  • Natural follow-ups (separate issues if pursued): directory / LVM / lvmthin pool creation share the same POST /nodes/{node}/disks/* shape.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfrozen: awaiting-demandValid roadmap, deferred until real external demand

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions