Earlier  
Posted Nick Remark
#openstack-cyborg - 2026-05-07
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 Hmm I am trying to enable the gpu via API and it gives me an 204:
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: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 I found the placement API requst from logs:
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 /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: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: Fix rule:allow policy bypass on device/deployable/attribute APIs https://review.opendev.org/c/openstack/cyborg/+/987680
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: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:07 opendevreview sean mooney proposed openstack/cyborg master: Enforce project-scoped access for ARQs https://review.opendev.org/c/openstack/cyborg/+/987683
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:08 opendevreview sean mooney proposed openstack/cyborg master: Document ARQ ownership and service tokens https://review.opendev.org/c/openstack/cyborg/+/987685
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 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:07 tafkamax [agent]
15:20:07 tafkamax enabled_drivers = nvidia_gpu_driver
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
15:30:07 sean-k-mooney ya so one of the thing we are missign is an end to end workflwo guide
15:30:13 sean-k-mooney htat has some of the info requried
15:30:27 sean-k-mooney in https://docs.openstack.org/cyborg/latest/admin/#user-requests
15:31:14 sean-k-mooney but what i woudl liek to add going forward is a better end to end "how to i make this work" guide to help new operators properly configre it
15:34:31 sean-k-mooney let me explain breilfy
15:34:34 sean-k-mooney "trait:CUSTOM_FPGA_TRAITS":"required",
15:34:36 sean-k-mooney "resources:FPGA":"1",
15:35:05 sean-k-mooney in the device profile the resouces: part is descibing a countable resouce that will be assigned
15:35:31 sean-k-mooney and traits: are qulitive triats that must also be advertised on the device
15:35:55 sean-k-mooney for a gpu this could be a cuda level or somethign like that
15:36:23 sean-k-mooney a device profiel can have more then 1 device request
15:36:47 sean-k-mooney this is experssed in teh groups section
15:36:57 sean-k-mooney each group can be allcoated form a differnt resouce provider
15:37:15 sean-k-mooney typiclly you will have resouce:<something>:1
15:38:15 sean-k-mooney but if that something is divisabel say ssd stroage you coudl ask for say resouces:CUSTOM_SSD_GB:100
15:38:18 sean-k-mooney as an example
15:39:33 sean-k-mooney i added https://docs.openstack.org/cyborg/latest/configuration/drivers.html
15:39:52 sean-k-mooney as a stop gap to have some info on how to confirue each driver
15:40:04 sean-k-mooney but that only covers the config options currently

Earlier   Later