How many more of each instance type the cluster can place.
curl --request GET \ --url https://stratum.example.com/v1/compute/capacity \ --header 'Authorization: Bearer <token>'. For every active instance type: how many more fit on each VM-capable node, summed per availability zone and in total, and which dimension (vCPU, memory, a countable capability) runs out first.
Derived on read from the node rows and the catalog, with the same
arithmetic the scheduler’s filter and the reservation use: capacity is
(total - reserved) x overcommit ratio for vCPU and memory alike,
and only ready nodes count. No capacity is reserved, so the answer is
advisory in the same way the evacuation plan is. With no storage class a
launch has nowhere for its root volume, so every type fits 0 and
storage binds.
notModeled names the dimensions the answer does not account for. A
number that covers two dimensions reads as authoritative on all of them
unless the response says otherwise.
Gated by compute:ListNodes, like the node list it is derived from.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”The capacity report.
Headroom per instance type.
object
One instance type’s headroom across the cluster.
object
How many more could be placed, summed over nodes. Exact for one type, since an instance never spans nodes.
The dimension that bounds the most eligible nodes: vcpu, memory,
capability:<key>, or storage when the cluster has no storage class
(every launch is then refused with 409 NO_STORAGE_CLASS, so fits is
0,). Absent when no node is eligible.
How many eligible nodes each dimension bounds.
object
Per-AZ sums. The scheduler places within one AZ, so this is what one launch can use.
object
object
The node’s name, the one the node list shows (not its hostname).
The dimension that runs out first on this node; storage when the cluster has no storage class.
VCPUs the node can have committed, the same number the node view reports.
Memory the node can have committed, the same number the node view reports.
Why the node takes none of this type regardless of room.
Dimensions the answer does not account for, each with why.
object
Example
{ "items": [ { "instanceType": "m1.large", "nodes": [ { "ineligible": "state" } ] } ], "notModeled": [ { "dimension": "network-bandwidth" } ]}