diff --git a/.zuul.yaml b/.zuul.yaml index 2a5f182626..bcbeb56f73 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 54738567b9..9f75a8cadc 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 3bb3b7d7d4..c4b06b47be 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 0000000000..e6f8a376e0 --- /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.