Earlier  
Posted Nick Remark
#openstack-nova - 2025-01-30
20:33:03 sean-k-mooney the use case to still use ps2 is lower overhead for realtime guest
20:33:20 sean-k-mooney which is whey they prefer serial console or no console over spice/vnc
20:33:30 sean-k-mooney less overhead to the vm due to interupts
20:33:31 melwitt oh... now that you say that it sounds vaguely familiar
20:34:20 sean-k-mooney https://docs.openstack.org/nova/latest/configuration/config.html#DEFAULT.pointer_model
20:34:49 sean-k-mooney the thing is i dont know if none is a valid libvirt value or if you just dont create the device xml
20:35:05 melwitt ah, good ol usbtablet
20:35:47 sean-k-mooney so for sound modle https://libvirt.org/formatdomain.html#sound-devices it looks like you jsut dont create it but i also know that you can get a sound card added becasule fo q35 i think
20:36:30 melwitt oh, I got the idea from the libvirt doc. it says "Additionally, since 0.10.0, if the USB bus needs to be explicitly disabled for the guest, model='none' may be used." https://libvirt.org/formatdomain.html#controllers
20:36:32 sean-k-mooney for usb contooler i think you just dont add one
20:36:40 melwitt so that's why I asked
20:36:44 sean-k-mooney oh i missed htat
20:37:20 sean-k-mooney so we could supprot it but that would need more work to chnage the pointer model if the config would use usb
20:37:55 sean-k-mooney melwitt: your raisign very reasonable points to which i dont have a simple answer
20:37:59 melwitt hm ok
20:38:53 sean-k-mooney my my concern is delaying the spice direct feature again for this. im wondering if we could add none later if we needed it?
20:39:08 sean-k-mooney basiclly not to expand the scope more
20:39:36 melwitt yeah.. I'm assuming we can punt that to later. this was just in case you already knew it's a thing we need we could add it
20:40:07 sean-k-mooney we didn tactully dicsus traits in the spec https://specs.openstack.org/openstack/nova-specs/specs/2025.1/approved/libvirt-spice-direct-consoles.html
20:40:12 sean-k-mooney we proably should have
20:40:40 sean-k-mooney but we also didnt dicsu opting out
20:40:45 melwitt yeah. I was surprised to see the traits patch bc I didn't realize it would have traits
20:41:16 sean-k-mooney it can merge without it. the traits will allow for schdulign using the image properies filter
20:41:25 sean-k-mooney sorry
20:41:35 sean-k-mooney the image metadata pre filter
20:41:45 melwitt gotcha
20:42:07 sean-k-mooney https://github.com/openstack/nova/blob/master/nova/scheduler/request_filter.py#L199-L239
20:42:21 sean-k-mooney so that is just a nice to have for schduling
20:42:50 sean-k-mooney i suggested addign it because the virtio sound model is the only one not supported by our min libvirt/qemu version
20:42:58 sean-k-mooney for usb that not a problem
20:43:05 melwitt oh ok, so we would add hw_sound_model and hw_usb_model into that prefix map
20:43:45 sean-k-mooney yep and if you requst either in the image it will add the reqiured trait to land you on a host that supprot it
20:44:24 sean-k-mooney mikal: so to be clear the traits are optional, certently nice to have but can be done next cycle
20:44:58 sean-k-mooney the compute service bump adn min version check are needed so that we ensure we never boot on a host hat does not supprot it
20:45:38 sean-k-mooney without that you can request a usb devices and because old nova does not no about it it will boot without them
20:47:04 sean-k-mooney mikal: that is protected agaist by a compute service bump for each fo the usb and audio emulation patches and a min version check for server create and rebuild.
20:47:23 melwitt to be clear, I'm not opposed to the traits ... I was just trying to understand what I'm reviewing
20:47:59 sean-k-mooney ack, no worries
20:48:34 mikal Sorry, got distracted and missed this...
20:49:01 sean-k-mooney melwitt: my understanding is the first 3 patches up to here https://review.opendev.org/c/openstack/nova/+/924844/26 is the mvp for spice direct
20:49:17 mikal So, I think my take is that if the traits thing isn't too hard to do we should just do it.
20:49:39 mikal However you're right, I will be disappointed if I have to do this game for a third time next release so I don't want to put that at risk if I can avoid it.
20:49:54 sean-k-mooney melwitt: the folowing 2 patches enable the usecase request in https://review.opendev.org/c/openstack/nova-specs/+/920687 and make the spice direct feature more useful in general
20:50:20 mikal I guess my problem is that having never done a trait before I don't really know how far https://review.opendev.org/c/openstack/nova/+/926126/12 is from being a working implementation.
20:51:12 sean-k-mooney mikal: reviesion 23 is much close then 12 :)
20:51:28 mikal Honestly for VDI to be a thing people will actually want to use you do need sound and USB.
20:51:55 sean-k-mooney mikal: so https://review.opendev.org/c/openstack/nova/+/926126/23/nova/virt/libvirt/driver.py should work as is
20:52:13 mikal Think desktop replacement with a thin terminal on someone's desk -- they'd want sound for notifications etc and USB for smartcard / yubikey / local printer or scanner / etc.
20:53:23 sean-k-mooney mikal: instead of hardcodign them we normally get cleaver and constcut them form the ovo filed defnitions
20:53:42 sean-k-mooney or use the os-traits constants but the hardcode string will work
20:54:25 mikal So I really wanted to do it like the video models, that is obtain it from getDomainCapabilities(), but that doesn't report the sound models.
20:54:53 sean-k-mooney ya we got them to add the video models
20:55:12 sean-k-mooney among other things a while back to avoid matching on version
20:55:19 sean-k-mooney but we did version matches before that
20:55:29 melwitt ok, so IIUC the traits aren't required until the latter two patches. and os-traits release freeze is what, Feb 21
20:55:40 mikal We could do that here, but I would assume that landing something in libvirt, waiting for it to be covered by our minimum version, and then rewriting that code would likely take literally years.
20:55:58 sean-k-mooney melwitt: ya only the last too
20:56:12 sean-k-mooney and ya its the non clinet lib feeze so about the 21st
20:56:48 mikal That's another thing... There are a few client patches for this stuff as well, but those are sitting queued up waiting for the nova support to land first. I was intending to propose those next release at this rate.
20:56:59 sean-k-mooney mikal: ya so next time we wrap around the alpahpbet we can revisit it but what you ahve now is fine :
20:57:01 sean-k-mooney :)
20:57:35 sean-k-mooney the client patches are only for the new console type right
20:57:38 mikal We are getting dangerously close to me having coworkers who are younger than openstack as it is... I am not sure I'll be around in another alphabet.
20:57:46 mikal sean-k-mooney: yeah.
20:57:58 mikal Its been a while since I looked at them, let me double check that.
20:58:14 sean-k-mooney so honetly i would push the two patches for the sdk and osc and just add a depend on on the third patch that adds the api supprot
20:59:16 mikal Yeah, I am carrying client patches for openstacksdk, python-novaclient, and python-openstackclient.
20:59:36 sean-k-mooney i think you jst need to extend https://github.com/openstack/openstacksdk/blob/master/openstack/compute/v2/server_remote_console.py#L16-L23
20:59:58 sean-k-mooney but ya if you have workign patches i would post them for review
21:00:25 mikal https://github.com/shakenfist/kerbside-patches/blob/develop/openstacksdk/patch006-openstacksdk-expose-spice-direct-consoles.patch is what I have right now for openstacksdk.
21:01:02 mikal The microversion in that is wrong, I should update that.
21:01:30 mikal Do we still add new things to python-novaclient, or is that one a red herring?
21:01:45 sean-k-mooney you do not need to modify python-novaclient
21:02:03 sean-k-mooney we froze the shell and python biding
21:02:14 mikal Ahhh, ok. Cool.
21:02:17 sean-k-mooney so jsut osc
21:02:44 mikal So that would be openstacksdk and python-openstackclient.
21:03:00 sean-k-mooney mikal: we have to supprot python-novaclient until heat/neutron ectra swap to the sdk
21:03:05 sean-k-mooney yep just those
21:03:25 mikal I will double check those and upload them today, with a depends-on for the third patch.
21:03:43 mikal Similarly I have Kolla / Kolla-Ansible deployment patches, but again I am assuming those need to wait until Flamingo to be proposed.
21:04:01 mikal (And I suspect the K/A one needs some HA love, I developed it on an all-in-one so its a bit under baked there).
21:05:08 sean-k-mooney no you can do it in paralle
21:05:16 sean-k-mooney they jsut wont merge it until it lands in nova
21:05:40 mikal They trail by one release don't they?
21:05:43 mikal Honestly, I haven'
21:05:55 mikal t had much luck in getting the Kolla people to answer messages.
21:06:00 sean-k-mooney no
21:06:15 sean-k-mooney they are release trailing but not by one cycle master there is actuall master for epoxy
21:06:26 mikal Le huh.
21:06:35 sean-k-mooney they normlaly release a few weeks after the offical upstream release
21:06:38 mikal Well, I will take a swing at that, but I am going to deal with nova and client patches first.
21:10:53 sean-k-mooney mikal: fyi you have some line length issues in one of the patches
21:11:07 mikal Client patches you mean?
21:11:15 sean-k-mooney the sound device one
21:11:26 sean-k-mooney the pep8 line limiet is actully 79 not 80
21:12:07 sean-k-mooney https://review.opendev.org/c/openstack/nova/+/926126/23/nova/virt/libvirt/driver.py#13354
21:12:12 mikal Oh right. I can fix that. I have tests that run on the patch stack locally, but because there are so many queued up nova patches right now it takes a couple of hours to run and I haven't looked at the output yet today. I'll deal with that today.
21:12:53 sean-k-mooney no rush. i think we(reviews) shoudl focus on the first 3 patches
21:13:34 sean-k-mooney it woudl be ideally to merge all of them buti think the first 3 are pretty close

Earlier   Later