The dashboard orders GPUs by class and attaches them by claim name,
so it needs the catalog and the tenant's own claims without reading
GPUClass or GPUClaim objects itself.
The gpuclass source lists every class that still takes orders, a
deleted one excluded, with its display name, a short description of
the offer, the free units and the most free units on one node from
the class status, the per-VM maximum, and the requesting tenant's
remaining budget. That budget comes from the shared model over the
tenant and each ancestor's subtree, from their declared resourceQuotas
and every claim, and is 0 for a vGPU class without the entitlement.
Pods are read only when an ancestor limits a class's resource name
with a raw key, one list per namespace of the outermost such
ancestor's subtree, and a virt-launcher pod does not count the units
its attached claims already cover. No field names a node.
The gpuclaim source lists the claims in the request namespace that a
VM can name, leaving out claims made from a claimTemplate.
cozystack-api gets read access to both kinds, get and list on pods
for the raw-key case, and get on the VMI a counted pod names.
Assisted-by: LLM
Signed-off-by: Aleksei Sviridkin <f@lex.la>