From d4f40976d0d169c89abfa6f56574b496318061cc Mon Sep 17 00:00:00 2001 From: Sean Mooney Date: Wed, 5 Feb 2025 20:31:31 +0000 Subject: [PATCH] move nova-ovs-hybrid-plug to deploy with spice and fix qxl default In centos/rhel 9 qemu supprot for the qxl model was removed with the removal of spice support. In ubuntu 24.04 qemu support for qxl and spice supprot has now also been removed. debian 12 bookworm still support spice in there qemu package. When we updated the default video model to virtio for x86 we left a config driven special case for spice to default to qxl since that nolonger works on centos or ubuntu based distos that default is not helpful so this change removes the special case making virtio the default for x86 regardless of the console used. This change also updates the nova-ovs-hybrid-plug to test with spice so that we have at least one job using it. to enable that the job is moved to debian. Closes-Bug: #2097529 Change-Id: I265ad2ced3729bed41bf53c58dcebadb775ce1f7 --- .zuul.yaml | 7 ++++++ nova/tests/unit/virt/libvirt/test_driver.py | 4 ++-- nova/virt/libvirt/driver.py | 2 -- ...lt-spice-video-model-fff5189fa637d4bd.yaml | 24 +++++++++++++++++++ 4 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 releasenotes/notes/make-virtio-the-default-spice-video-model-fff5189fa637d4bd.yaml diff --git a/.zuul.yaml b/.zuul.yaml index 2a5f1826265c..bcbeb56f739c 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -143,6 +143,7 @@ - job: name: nova-ovs-hybrid-plug parent: tempest-multinode-full-py3 + nodeset: devstack-two-node-debian-bookworm description: | Run move operations, reboot, and evacuation (via the same post-run hook as the nova-live-migration job) tests with the OVS network backend and @@ -175,6 +176,7 @@ Q_ML2_TENANT_NETWORK_TYPE: vxlan Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch ML2_L3_PLUGIN: router + NOVA_VNC_ENABLED: False devstack_services: # Disable OVN services br-ex-tcpdump: false @@ -202,6 +204,9 @@ s-object: false s-proxy: false openstack-cli-server: true + # disable vnc and enable spice + n-novnc: false + n-spice: true devstack_local_conf: post-config: "/$NEUTRON_CORE_PLUGIN_CONF": @@ -220,6 +225,8 @@ Q_ML2_TENANT_NETWORK_TYPE: vxlan Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch ML2_L3_PLUGIN: router + NOVA_VNC_ENABLED: False + NOVA_SPICE_ENABLED: true devstack_services: # Disable OVN services br-ex-tcpdump: false diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py index 54738567b917..9f75a8cadcde 100644 --- a/nova/tests/unit/virt/libvirt/test_driver.py +++ b/nova/tests/unit/virt/libvirt/test_driver.py @@ -6077,8 +6077,8 @@ class LibvirtConnTestCase(test.NoDBTestCase, self.flags(pointer_model='usbtablet') video_map = { - fields.Architecture.X86_64: 'qxl', - fields.Architecture.I686: 'qxl', + fields.Architecture.X86_64: 'virtio', + fields.Architecture.I686: 'virtio', fields.Architecture.PPC: 'vga', fields.Architecture.PPC64: 'vga', fields.Architecture.PPC64LE: 'vga', diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 3bb3b7d7d4f0..c4b06b47be84 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -6768,8 +6768,6 @@ class LibvirtDriver(driver.ComputeDriver): return 'virtio' elif guestarch == fields.Architecture.MIPSEL: return 'virtio' - elif CONF.spice.enabled: - return 'qxl' # NOTE(lyarwood): Return None and default to the default of # LibvirtConfigGuestVideo.type that is currently virtio diff --git a/releasenotes/notes/make-virtio-the-default-spice-video-model-fff5189fa637d4bd.yaml b/releasenotes/notes/make-virtio-the-default-spice-video-model-fff5189fa637d4bd.yaml new file mode 100644 index 000000000000..e6f8a376e0a3 --- /dev/null +++ b/releasenotes/notes/make-virtio-the-default-spice-video-model-fff5189fa637d4bd.yaml @@ -0,0 +1,24 @@ +--- +upgrade: + - | + Ubuntu 24.04 does not support the QXL video model or spice. + Operators using instances with this video model will be unable to start + them if moving to Ubuntu 24.04. CentOS 9 and RHEL 9 previously compiled + out support for spice, and as QXL was implemented in libspice, support + for QXL was removed as a result for the removal of support for spice. + The QXL model was a spice optimized video model and is no longer + supported by several distros. To avoid issues with starting instances, + operators should change the spice video model from QXL to virtio and + replace the spice console with vnc. For existing instances the video + model can be updated with the ``nova-manage image_property set`` command. + when updating the embedded image properties Operators should evaluate if + any glance images request the QXL video model and update them or work + with the image owner to have them move to a modern video model. +fixes: + - | + When the default video model for libvirt was updated to virtio in Yoga + the default for host using spice was not changed. This lead to issues + when starting instances on hosts that had spice configured with QXL as + the default video model on modern distros. To address this the default + spice video model is now virtio. + see https://bugs.launchpad.net/nova/+bug/2097529 for more details.