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— thekata-firecracker-devmapperLVM 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 knobk7d_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-agentpod 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
operatororadminrole: a tenant (read-only/user) or node-scoped key receives403 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/undedicatepin a node to a tenant: Tenants.- The same data is available via
k7 nodes storage(--jsonfor the raw payload) andClient.nodes_storage()in the Python SDK.
