Aleksei Sviridkin
18a3ce5a24
feat(api): add gpu.cozystack.io GPUClass, GPUDevice and GPUNode
...
GPUs become a catalog of hoster offers, tenant reservations against
them and a per-node inventory, so a tenant can hold a GPU while its VM
is off and an order that does not fit is refused at create time.
The CRDs enforce what the apiserver alone can: a class name is a DNS
label other than total because it becomes part of a quota key, the
source is a union with dra reserved for a later member, a device's
spec is immutable and orders at least one GPU, and bound devices are
listable per node through a field selector on status.nodeName. A
class resource name must be a valid extended resource outside
gpu.cozystack.io, where it would read as a GPU budget key. The CRDs
are kept on chart uninstall, since they ship as plain templates and
deleting GPUDevice would drop every hold and usage record.
maxCount carries no schema default: it defaults to 1 for vgpu classes
and to no limit for passthrough, which a structural default cannot
express, so readers resolve it through the shared model.
A GPUNode device reports how many device-plugin devices kubelet
counts as allocatable for it, because an mdev parent serves several
from one PCI function and one healthy entry per function would
undercount the node.
Assisted-by: LLM
Signed-off-by: Aleksei Sviridkin <f@lex.la >
2026-10-21 03:04:35 +03:00
..
2026-10-13 18:05:45 +04:00
2026-10-09 17:12:14 +03:00
2026-09-07 10:58:37 +03:00
2026-10-07 12:06:18 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 20:23:46 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-14 13:31:48 +00:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-13 16:22:43 +03:00
2026-09-27 07:57:30 +03:00
2026-10-07 11:04:00 +03:00
2026-09-10 17:48:22 +05:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-09-21 12:20:22 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-09-22 17:10:05 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-09-28 14:29:17 +05:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-09-25 09:46:43 +05:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-19 21:18:18 +02:00
2026-10-07 20:11:22 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-09 16:57:43 +03:00
2026-09-28 01:32:37 +03:00
2026-10-07 11:04:00 +03:00
2026-10-05 14:15:37 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-12 12:00:15 +05:00
2026-10-10 21:47:42 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-02 03:29:15 +03:00
2026-08-28 15:29:29 +05:00
2026-09-26 15:06:42 +03:00
2026-10-09 02:04:39 +03:00
2026-09-05 13:19:17 +05:00
2026-09-05 13:19:17 +05:00
2026-10-03 01:42:38 +03:00
2026-10-07 19:37:25 +03:00
2026-10-03 01:42:38 +03:00
2026-10-03 01:42:38 +03:00
2026-10-09 16:57:43 +03:00
2026-10-01 02:19:17 +03:00
2026-09-05 13:19:17 +05:00
2026-10-07 04:38:06 +03:00
2026-09-05 13:19:17 +05:00
2026-08-23 19:38:49 +05:00
2026-10-09 02:04:40 +03:00
2026-09-05 14:51:06 +05:00
2026-10-07 11:04:00 +03:00
2026-09-15 23:34:52 +03:00
2026-10-07 16:14:34 +03:00
2026-10-06 16:28:51 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-01 19:37:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-08-12 18:45:22 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-12 09:54:52 +04:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-11 12:49:19 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-11 22:40:47 +08:00
2026-10-11 18:42:11 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-09-29 11:29:04 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-09-29 11:20:27 +03:00
2026-10-07 11:04:00 +03:00
2026-09-22 18:53:28 +05:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-08-12 18:42:58 +03:00
2026-10-09 16:57:43 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-09-27 16:58:28 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-08-14 18:37:58 +05:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-08-12 18:16:18 +02:00
2026-10-07 11:04:00 +03:00
2026-09-18 17:45:21 +03:00
2026-10-10 21:15:48 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-11 01:23:10 +02:00
2026-10-11 01:23:10 +02:00
2026-10-10 21:09:09 +03:00
2026-10-07 11:04:00 +03:00
2026-10-13 12:34:24 +04:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-10 21:15:48 +03:00
2026-10-10 21:15:48 +03:00
2026-10-09 17:12:14 +03:00
2026-10-09 17:12:14 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 15:41:05 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-10 20:37:53 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-13 18:07:35 +04:00
2026-10-13 18:07:35 +04:00
2026-10-13 12:34:24 +04:00
2026-10-13 12:34:24 +04:00
2026-10-19 21:18:18 +02:00
2026-10-19 21:18:18 +02:00
2026-10-07 11:04:00 +03:00
2026-10-02 11:02:36 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 11:04:00 +03:00
2026-10-07 15:41:06 +03:00
2026-10-07 11:04:00 +03:00
2026-10-21 03:04:35 +03:00
2026-10-19 21:18:18 +02:00
2026-10-19 21:18:18 +02:00
2026-10-07 11:04:00 +03:00
2026-09-28 01:32:36 +03:00
2026-10-07 11:04:00 +03:00
2026-10-02 11:02:18 +03:00