Skip to main content

Endpoint: GET /api/v1/nodes/storage

Returns storage-pool utilization for every node in the cluster, aggregated from each node’s k7-agent DaemonSet pod:

  • kata_thinpool — the kata-firecracker-devmapper LVM thin-pool (lvs: size, data%, metadata%).
  • k7d_disks — the k7d disk pool, a sparse XFS (reflink) loopback image mounted at /var/lib/k7d/disks (df: size, used, available). 32G by default; per-node inventory knob k7d_disks_image_size.

Example response:

Behavior#

  • Pools that don’t exist on a node (e.g. a kql-only node with no thin-pool) produce an error detail for that field.
  • A node whose k7-agent pod is unreachable gets a loud {"error": ...} entry — nodes are never silently omitted.
  • This is cluster-wide topology (node names, pool sizes, per-agent error strings), so it needs the operator or admin role: a tenant (read-only / user) or node-scoped key receives 403 Forbidden.
  • Each node also reports its usage-metering spool (usage_spool: fill bytes, dropped events) — see Observability and metering.
  • POST /api/v1/nodes/{name}/dedicate / undedicate pin a node to a tenant: Tenants.
  • The same data is available via k7 nodes storage (--json for the raw payload) and Client.nodes_storage() in the Python SDK.