| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-cyborg - 2026-05-07 | |||
| 12:03:08 | tafkamax | openstack accelerator device attribute list | |
| 12:03:11 | tafkamax | this also return the same | |
| 12:03:43 | tafkamax | https://bugs.launchpad.net/openstack-cyborg/+bug/2151792 | |
| 12:04:44 | chandank` | https://paste.openstack.org/raw/bRpUV3OrPTrGUImCllzA/ - opentack accelerator device attribute list output from master devstack vm | |
| 12:05:30 | tafkamax | Could it be openstacksdk or some client lib version? | |
| 12:06:28 | tafkamax | I am using from 2025.1 UC:... (full message at <https://matrix.org/oftc/media/v1/media/download/AZYa4b2-0u7aEhweDKgZL_Hoq4YysFkqdAt284_KUhwWGucPCZc6Mi3CuUP0OQA3sVMa9LPSYo5LiskzetFd6NFCeeSm4TQgAG1hdHJpeC5vcmcvRmVaa0JwUENuSWlhUFRjdm5OUm5Bc3h2>) | |
| 12:10:19 | tafkamax | 'Proxy' object has no attribute 'attributes' | |
| 12:10:19 | tafkamax | Accelerator client initialized using OpenStackSDK: <openstack.accelerator.v2._proxy.Proxy object at 0x7f1aad7e4dd0> | |
| 12:10:20 | tafkamax | using -vvv | |
| 12:12:00 | chandank` | openstacksdk 4.11.0 is used in master. | |
| 12:12:32 | chandank` | Can you also add openstacksdk and python-cyborgclient version in the bug? If anyone fixes it, we can backport it back | |
| 12:14:22 | tafkamax | edited | |
| 12:14:47 | tafkamax | 2025.2 UC worked for attribute list | |
| 12:15:18 | chandank` | we are missing some backport then | |
| 12:16:07 | tafkamax | but the enable command seems to be not working indeed | |
| 12:20:44 | tafkamax | https://review.opendev.org/c/openstack/openstacksdk/+/883238?usp=search | |
| 12:20:49 | tafkamax | does this need to be backported? | |
| 12:21:01 | tafkamax | its april 4 2025, so after 2025.1 ? | |
| 12:24:37 | jgilaber | yes that commit is missing in 2025.1 https://github.com/openstack/openstacksdk/tree/stable/2025.1/openstack/accelerator | |
| 12:25:54 | chandank` | We have a upgrade job, let me push one patch to get the error in CI | |
| 12:27:00 | tafkamax | But regarding the enable/disable that just seems to be missing? | |
| 12:27:21 | tafkamax | E.g. this needs to be looked in the cyborg API spec and implemented i presume | |
| 12:30:09 | tafkamax | docs.openstack.org/api-ref/accelerator/#enable-a-device ? | |
| 12:31:02 | jgilaber | from a quick glance looks like the controller for that API exists https://github.com/openstack/cyborg/blob/79384661ce73984d2eef05dbee800507d36e997c/cyborg/api/controllers/v2/devices.py#L173 | |
| 12:31:05 | chandank` | yes, it is implemented in cyborg side | |
| 12:31:16 | chandank` | something is misisng or broken on cyborgclient side | |
| 12:33:33 | tafkamax | oh okay | |
| 12:34:09 | tafkamax | So: https://github.com/openstack/python-cyborgclient/blob/master/cyborgclient/osc/v2/device.py#L141 | |
| 12:40:34 | sean-k-mooney | ya its a know gap | |
| 12:40:45 | sean-k-mooney | there are a few issues witht eh current cli | |
| 12:40:55 | sean-k-mooney | and the way its usign the sdk | |
| 12:41:27 | sean-k-mooney | those are thign we plan to fix over this cycle now that we are trying to more activlly maintian cyborg again | |
| 12:42:26 | sean-k-mooney | tafkamax: thanks for filling the bug it will help to have a backlog orf the sepcific brakages | |
| 12:43:38 | sean-k-mooney | chandank`: P in PGPU stands for phsycial becasue its only used for the physical function but this is somethign we will likely evolved in newer drivers | |
| 12:43:56 | sean-k-mooney | the type in the device list and the resouce class are not expected to be the same | |
| 12:47:31 | tafkamax | aha okay, so I should always look for attribute list, when creating a profile | |
| 12:51:14 | tafkamax | Okay. So I need to enable the device actually for it to be able to "bind" to an VM? | |
| 12:52:05 | tafkamax | Hmm I will try to use an API call for enable then. | |
| 12:58:48 | sean-k-mooney | tafkamax: so the device profile need to match the resouce class used but the atribute api allow you to overied that | |
| 12:59:34 | sean-k-mooney | tafkamax: we will use a default one based on the driver that manages the device but if you wanted to use a diffent resouce class the atibutes api provide a way to cofnigure it | |
| 13:00:01 | tafkamax | oh okay, so my device is ID 8, I can add a custom attribute to that device ID 8. | |
| 13:00:10 | sean-k-mooney | my expecation is over then next 12-18 montsh we are goign to revisit how many fo the drivres work and ensure there is a declaritve way to do that via the config file as well | |
| 13:00:41 | sean-k-mooney | tafkamax: yes if you wanted to add custom traits to it you could do that via placement directly but you can also do that via the atibutes api | |
| 13:00:44 | sean-k-mooney | at least in theory | |
| 13:01:01 | sean-k-mooney | this is an areay i have not spent too much time on yet and the testing is lite | |
| 13:01:15 | sean-k-mooney | so if you find bugs please let us know | |
| 13:01:31 | tafkamax | ok | |
| 13:02:07 | sean-k-mooney | on of the topic we ont have time for this cycle form the PTG was "how to evolve the api" | |
| 13:02:24 | sean-k-mooney | currently i think having devices, atribute and deployabels as 3 seperate apis is a bit confusing | |
| 13:03:07 | sean-k-mooney | i think eventually the devices api would be a better home for atibutes for example | |
| 13:03:49 | sean-k-mooney | i.e. include the atibute in the device show and proveide /devices/<id>/atibutes subpaths for adding/removing them | |
| 13:04:02 | tafkamax | so how would you enable the device if the CLI does not work. Via curl to the API endpoint? | |
| 13:04:17 | sean-k-mooney | so it shoudl be enabled by default | |
| 13:04:21 | sean-k-mooney | but yes | |
| 13:04:26 | sean-k-mooney | unfortunetly via curl | |
| 13:04:34 | sean-k-mooney | so you woudl do an openstack token issue | |
| 13:04:47 | sean-k-mooney | to get a keyston token and then curl the end point with that token | |
| 13:05:38 | tafkamax | yep, thats what i was thinking. will do a script for it now for testing | |
| 13:05:45 | tafkamax | thanks for the quick responses here | |
| 13:06:34 | sean-k-mooney | just one point of clarifcaion while the resouce calss is an atibute on the device im not sure that you can modify it today | |
| 13:06:42 | sean-k-mooney | you can add and remove addtional atibutes | |
| 13:06:58 | sean-k-mooney | but im not sure the api allows you to overreid once generated by the driver | |
| 13:07:21 | sean-k-mooney | and the docs dont actully tell you one way or another so that on my todo list to figure out | |
| 13:07:46 | sean-k-mooney | ill need to go back to the orginal atibutes spec and compare that to the final code | |
| 13:08:59 | tafkamax | oh okay | |
| 13:48:34 | tafkamax | 2026-05-07 16:45:59.843 1097 INFO eventlet.wsgi.server [None req-78038ad2-f1fe-4f2c-a984-aa6fd469ab34 204c13dfae0b4214ae00b15a95a5d180 1cc33bde294848818c8a462ad9d221a9 - - default default] "POST /v2/devices/4dc9f844-75d4-4e6c-a252-b9986816cc5b/enable HTTP/1.1" status: 204 len: 278 time: 0.4349580 | |
| 13:48:34 | tafkamax | Hmm I am trying to enable the gpu via API and it gives me an 204: | |
| 13:48:58 | tafkamax | when using device show the status value is empty:| status | | | |
| 14:18:01 | tafkamax | I think it might be enabled by default. Not sure though | |
| 14:28:41 | tafkamax | /allocation_candidates?in_tree=8b9f6c21-0c4a-458a-8541-d481921c6d08&limit=1000&requireddevice_profile_0=CUSTOM_NVIDIA_26B9&resources=MEMORY_MB%3A16384%2CVCPU%3A8&resourcesdevice_profile_0=PGPU%3A1&root_required=COMPUTE_ACCELERATORS%2C%21COMPUTE_STATUS_DISABLED" status: 200 len: 53 microversion: 1.36 | |
| 14:28:41 | tafkamax | 2026-05-07 17:19:35.782 1081 INFO placement.requestlog [req-e9714860-9a55-4040-b055-1402f814745d req-c938965f-e5f0-4e5b-854c-6399de72e6e2 f28c1a6ab3704064bd656bdd2d3db679 9e4bc1e8a4ef469695c83b671c090a34 - - default default] redacted "GET | |
| 14:28:41 | tafkamax | I found the placement API requst from logs: | |
| 14:29:00 | tafkamax | i need to see what this returns | |
| 14:50:01 | tafkamax | Ok I modified the query | |
| 14:50:07 | tafkamax | and removed root_required | |
| 14:50:10 | tafkamax | and got results | |
| 14:51:47 | tafkamax | wait maybe the compute node is disabled because it was in maintenance 😅😅😅😅 | |
| 14:54:22 | tafkamax | Enabled the hypervisor and try again | |
| 14:55:19 | tafkamax | Seems like it booted. | |
| 14:55:22 | tafkamax | the VM | |
| 14:57:52 | tafkamax | And the VM can see the device in lspci! | |
| 14:58:02 | tafkamax | root@test-vm-gpu:~# lspci... (full message at <https://matrix.org/oftc/media/v1/media/download/AYWYRn0ernbP2iFEup_KDgOi8sTs-6dPqBKmAXcisI3S1lBaDW-A9B5u8Dr7jSbXxWudb-A2N9Xzt87A53zswTVCeeSwsnywAG1hdHJpeC5vcmcvdktwZlBsT0FKSmdXZ1VqT0RqRVdSUnh5>) | |
| 15:05:06 | opendevreview | sean mooney proposed openstack/cyborg master: Set project_id on ARQ creation and binding https://review.opendev.org/c/openstack/cyborg/+/987681 | |
| 15:05:06 | opendevreview | sean mooney proposed openstack/cyborg master: Fix rule:allow policy bypass on device/deployable/attribute APIs https://review.opendev.org/c/openstack/cyborg/+/987680 | |
| 15:05:07 | opendevreview | sean mooney proposed openstack/cyborg master: Enforce project-scoped access for ARQs https://review.opendev.org/c/openstack/cyborg/+/987683 | |
| 15:05:07 | opendevreview | sean mooney proposed openstack/cyborg master: Add project_id backfill for existing ARQs https://review.opendev.org/c/openstack/cyborg/+/987682 | |
| 15:05:08 | opendevreview | sean mooney proposed openstack/cyborg master: Document ARQ ownership and service tokens https://review.opendev.org/c/openstack/cyborg/+/987685 | |
| 15:05:08 | opendevreview | sean mooney proposed openstack/cyborg master: Require service token for bound ARQ operations https://review.opendev.org/c/openstack/cyborg/+/987684 | |
| 15:05:09 | opendevreview | sean mooney proposed openstack/cyborg master: Mark conductor ARQ delete methods for removal in RPC v2 https://review.opendev.org/c/openstack/cyborg/+/987686 | |
| 15:15:45 | chandank` | tafkamax: awesome, | |
| 15:16:45 | tafkamax | thanks for the help and good that some bugs were found :-) | |
| 15:17:04 | chandank` | here is our driver doc https://docs.openstack.org/cyborg/latest/configuration/drivers.html, Please have a look, Do share is there anyhting we can improve on doc side or any other issues you hit, feel free to open bugs so that we can address in future. :-) | |
| 15:20:07 | tafkamax | enabled_drivers = nvidia_gpu_driver | |
| 15:20:07 | tafkamax | [agent] | |
| 15:20:07 | tafkamax | regarding the actual config it was rather intuitive. kolla-ansible did its magic and I just saw that for PGPU I needed to enable the | |
| 15:20:26 | tafkamax | I didn't understand inititally all the stuff in `openstack accelerator <command>` | |
| 15:22:43 | tafkamax | I guess the understanding issue was for how to create working"profile" E.g. -> look into openstack accelerator attribute list and if its rcs use resources:<attribute>:1 and if it is trait use trait:<attribute>:required | |
| 15:24:25 | tafkamax | and a NB! that don't look at the attributes under `openstack accelerator device list` or `openstack accelerator device show <uuid>` as these are not used in profiles. Did I understand this correctly? | |
| 15:26:32 | tafkamax | Also this page is not present in the indexmenu on the left side of screen: https://docs.openstack.org/cyborg/latest/admin/ | |
| 15:26:41 | tafkamax | I just found this link via search | |