Skip to content

feat(gpu): document a pgpu card's device profile - #113

Merged
github-actions[bot] merged 1 commit into
developfrom
feat/818-pgpu-device-profile-api-wip
Sep 14, 2026
Merged

github-actions[bot] merged 1 commit into
developfrom
feat/818-pgpu-device-profile-api-wip

Conversation

@SekiXu

@SekiXu SekiXu commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

What type of PR is this?

Feature (docs).

Which issue(s) this PR fixes?

Refs bigstack-oss/cubecos#818

Deliberately Refs, not Fixes: #818 is a User Story whose UI (#876) and API
(#886) halves are still open, so merging this must not close it.

What this PR does?

Adds deviceProfile to every card in GET /nodes/{nodeName}/gpuCards.

A pgpu card is unusable without its Cyborg device profile name — that is what a
flavor's accel:device_profile has to be set to — and until now the only way to
obtain it was openstack accelerator device profile list or the interactive
hex_cli gpu menu, i.e. a root shell. That is exactly what the parent epic's
"no root shell access needed" goal rules out.

Contract, as documented:

  • string | null, and in required, so the key is always present.
  • Non-null only on a pgpu card. sriovVgpu and migBackedVgpu are scheduled
    through the PCI alias already reported on each of their profiles.
  • null — never "" — on a pgpu card whose profile has not been created yet,
    or could not be looked up.

Test results

docs.yaml parses; the field lands in both the required list and the
properties block of the card schema (lines 15728 / 15876).

This is the first of three PRs and has no dependency of its own. The other two
depend on it:

  1. this PR → merge
  2. cube-cos-api: re-point the api/cube-cos-openapi submodule at the merged
    SHA, then the handler PR
  3. cubecos: the hex side that produces the value

GET /nodes/{nodeName}/gpuCards now reports deviceProfile on each card: the
Cyborg device profile a flavor's accel:device_profile has to name in order
to be scheduled onto that card.

Only a pgpu card has one -- sriovVgpu and migBackedVgpu are scheduled
through the PCI alias already reported per profile -- so the field is null
on every other resource type, and null on a pgpu card whose profile has not
been created yet. It is never an empty string.

Refs bigstack-oss/cubecos#818

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Seki Xu <seki.xu@bigstack.co>
@SekiXu
SekiXu requested review from a team as code owners September 14, 2026 03:13
@SekiXu SekiXu added the done Merge the pull request label Sep 14, 2026
@github-actions
github-actions Bot merged commit 9495246 into develop Sep 14, 2026
4 checks passed
@Eandalf-Bigstack
Eandalf-Bigstack deleted the feat/818-pgpu-device-profile-api-wip branch September 14, 2026 04:51
raven-pan added a commit to bigstack-oss/cube-cos-ui that referenced this pull request Sep 16, 2026
Points packages/cube-frontend-api/cube-cos-openapi at
bigstack-oss/cube-cos-openapi#113, now on develop, which adds deviceProfile
to the GPU card schema. The regenerated SDK types the field as
`string | null` and keeps it required, so every card carries the key.

Refs bigstack-oss/cubecos#876

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: raven-pan-bigstack <raven.pan@bigstack.co>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

done Merge the pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant