60942 Commits

Author SHA1 Message Date
Sean Mooney
8de15e9a27 only safety check bootable files created from glance
For blank files that are created by nova such as swap
disks and ephemeral disks we do not need need to safety
check them as they always are just bare filesystems.

In the future we should refactor the qcow imagebackend to
not require backing files for swap and ephemeral disks
but for now we simply disable the check to workaround
the addition of the gpt image inspector and the incompatiblity
with vfat. future versions of oslo will account for vfat boot
recored. this is a minimal patch to avoid needing a new oslo
release for 2024.2

Closes-Bug: #2079850
Change-Id: I7df3d9859aa4be3a012ff919f375a7a3d9992af4
2024-09-11 20:04:34 +01:00
Sean Mooney
e310049eab Add functional repoducer for ephemeral disks
This commit add a functional repoducer for a regression
in ephmeral disk image format validation

When we changed to use the oslo.utils verison of the
format_inspector we aquired a new inspector which can
detect if a file has a partition table.

As the qcow 2 backend does not know that ephemeral disk
or swap disk are not boot able it requires that they
also have partition tables.

Related-Bug: #2079850
Change-Id: I26c6e8d2efbf7403542e99b8ac45e2a31f08afd1
2024-09-11 18:35:29 +01:00
Zuul
16d815990b Merge "Update compute rpc alias for dalmatian" 2024-09-10 18:27:33 +00:00
Sylvain Bauza
6535386dfa Update compute rpc alias for dalmatian
This adds an alias for Dalmatian

Change-Id: Ie2777206ac3ce9144a163378aba8257d48ceba50
2024-09-09 18:09:42 +02:00
Sylvain Bauza
31accd37c8 doc: mark the maximum microversion for 2024.2 Dalmatian
We need it for this release.

Change-Id: I92a881a8e29c0736f5598018be911d623c38b624
2024-09-09 17:40:41 +02:00
Zuul
1ecab6dbc5 Merge "doc: Fix markup syntax and typo" 2024-09-05 16:04:22 +00:00
Zuul
d88d968e96 Merge "[ironic] Followup fixes around flavor ids" 2024-09-04 00:55:36 +00:00
Zuul
b6f60a11a3 Merge "Remove default override for RBAC config options" 2024-09-03 22:07:54 +00:00
Julien Le Jeune
0809f75d79
Skip snapshot test when missing qemu-img
Since the commit the remove AMI snapshot format special casing
has merged, we're now running the libvirt snapshot tests as expected.
However, for those tests qemu-img binary needs to be installed.
Because these tests have been silently and incorrectly skipped for so long,
they didn't receive the same maintenance as other tests as the failures went unnoticed.

Change-Id: Ia90eedbe35f4ab2b200bdc90e0e35e5a86cc2110
Closes-bug: #2075178
Signed-off-by: Julien Le Jeune <julien.le-jeune@ovhcloud.com>
2024-09-03 17:58:59 +02:00
Jay Faulkner
329ff5e1a8 [ironic] Followup fixes around flavor ids
This fixes some unused attributes in the ironic driver tests.

Change-Id: Ibda5243f1ce996123c950afe1c8912e1e16406e1
2024-09-02 17:55:25 -07:00
Zuul
61f44e992e Merge "Test live migration between hosts with differnet cpu_shared_sets" 2024-09-02 12:48:14 +00:00
Zuul
145ca33805 Merge "Handle neutron-client conflict" 2024-09-02 09:28:15 +00:00
Zuul
1ce5ed378c Merge "Ignore support-matrix.css" 2024-09-02 02:26:58 +00:00
Zuul
ead4bf81b4 Merge "Fix s/addtional/additional/ typo" 2024-09-01 07:58:01 +00:00
Zuul
c79bec0f22 Merge "libvirt: Launch instances with stateless firmware" 2024-09-01 07:57:54 +00:00
Zuul
75cdf19d04 Merge "update nova-next to use ubuntu 24.04" 2024-09-01 04:19:09 +00:00
Takashi Kajinami
305a71e5f9 Ignore support-matrix.css
The file is created during doc build, so should not be added to
the repository.

Change-Id: I6cbef7e8a3d1a176d98fd9b6020ce0603cb94890
2024-08-31 18:05:41 +09:00
Zuul
e5dfbb17fe Merge "[ironic] Factor out metadata and send to ironic" 2024-08-31 04:42:22 +00:00
Jay Faulkner
93b90d2b6a [ironic] Factor out metadata and send to ironic
This change migrates the code currently written only to serve libvirt
driver to be generally useful, adding driver-neutral data structures
and a method to build them.

The libvirt driver is reworked to use get_instance_driver_metadata
instead of it's current code.

The ironic driver is reworked, per the blueprint, to send along some of
this additional metadata to the Ironic node.instance_info.

blueprint ironic-guest-metadata
Needed-By: https://review.opendev.org/c/openstack/ironic/+/924887

Change-Id: I2b23c8463f66c38e64625486157f245cd74cec61
2024-08-30 15:21:13 -07:00
Zuul
30800dafd4 Merge "Cleanup setup.py" 2024-08-30 21:00:43 +00:00
Zuul
a0450d28f7 Merge "Add hw_firmware_stateless image property" 2024-08-30 20:57:26 +00:00
Zuul
cf71be0ef0 Merge "libvirt: Report available TPM models" 2024-08-30 07:27:59 +00:00
Zuul
71a095be18 Merge "Update [scheduler] limit_tenants_to_placement_aggregate config help" 2024-08-30 03:20:10 +00:00
Sean Mooney
aca63b66e5 Test live migration between hosts with differnet cpu_shared_sets
This change modifes the nova-live-migration job to define
[compute]cpu_shared_set to different ranges on the controller
and compute node. in ci we have 8 cpus so the controller is set
to 0-5 and the compute uses 2-7

6 cores with our default allocation ratio should be sufficent
for our current level of concurrancy. This change also adds
the remaining cores as cpu_dedicated_set, they will currently
be unused but are thre if we want to enable pinned cpu testing
in the future.

Change-Id: I0d8463cf584d6ac141a5e1cb492d17996db458e0
2024-08-30 01:31:45 +00:00
Sean Mooney
804bc98759 update nova-next to use ubuntu 24.04
This change updates the nova-next nodeset
to use openstack-two-node-noble and revert to
using qemu without nested virt.

using nested virt was a tempory messure to mitigate the kernel
panics we were seeing related to volume detach while we also explored
using split kernel images. since then we have reverted the other
jobs back to using normal whole disk images and we have not
seen a marked uptic in kernel panics.

as such this change drop the use of nested virt since the other jobs
are not using it an updates the nodeset to move nova-next to test on
ubuneu 24.04 (noble) on python 3.12

Depends-On: https://review.opendev.org/c/openstack/devstack/+/922427
Change-Id: I5059ba3c519efb18947a8f3d24868ce1c9289e3d
2024-08-30 02:29:38 +01:00
Zuul
b36f01be63 Merge "Correct info about volume-backed server rebuild" 2024-08-30 01:16:27 +00:00
Zuul
5eccd8efa6 Merge "Add a functest for verifying multiple VGPU allocations" 2024-08-30 01:16:19 +00:00
Zuul
edd9aa1c83 Merge "Reproducer test for image property hw_architecture" 2024-08-30 01:16:12 +00:00
Zuul
52fa9bc4f7 Merge "libvirt: Add config option to require secure SPICE." 2024-08-30 00:28:04 +00:00
Zuul
7e082705de Merge "add pyproject.toml to support pip 23.1" 2024-08-29 21:22:40 +00:00
Zuul
3b1ea29af7 Merge "api: Fix typo" 2024-08-29 21:22:19 +00:00
Zuul
46b76da3ad Merge "Report availability of stateless firmware support" 2024-08-29 18:25:53 +00:00
Dr. Jens Harbott
5fa069c29a Delete ./doc/source/_static/support-matrix.css file
This file is being automatically generated during the docs build, no
need to have it persisted in git.

Change-Id: Ib45f722cc305e1d828d31724535e31ad3dda6c2e
2024-08-29 09:27:04 +02:00
Sean Mooney
8464abe56c add pyproject.toml to support pip 23.1
pip 23.1 removed the "setup.py install" fallback for projects
that do not have pyproject.toml and now uses a pyproject.toml
which is vendored in pip.
To address that, this change adds the minimal pyproject.toml
to enable pbr to be properly used to build editable wheels.

This is required to support installing devstack on
centos stream 9 and related distros with GLOBAL_VENV=True
Without this change the wsgi scripts are not generated in
editable mode. i.e. pip install -e /opt/stack/keystone

See https://pip.pypa.io/en/stable/news/#v23-1
and https://github.com/pypa/pip/issues/8368 for more
details on the removal of the fallback support.

setuptools v64.0.0 is used to support editable installs
via its PEP-660 implmentation
https://github.com/pypa/setuptools/pull/3488

Depends-On: https://review.opendev.org/c/openstack/devstack/+/902758
Change-Id: I3255edb67fd7fe7a25b5871ec071c4b4c9d98ac2
2024-08-28 23:30:21 +00:00
Zuul
8fb5a76872 Merge "libvirt: call get_capabilities() with all CPUs online" 2024-08-28 19:22:28 +00:00
Zuul
b3a2494728 Merge "Use format_inspector from oslo" 2024-08-27 18:54:30 +00:00
Zuul
01b207e50d Merge "Deprecate AMI image formats" 2024-08-26 21:31:41 +00:00
Dan Smith
d854e7cc16 Use format_inspector from oslo
This removes the in-tree format_inspector and makes us use the one in
oslo.utils. Minor changes are required around the behavior of the
safety_check() (raising instead of returning). This also allows images
detected as 'gpt' but registered as 'raw', since that's how everything
currently works. Hopefully later we can start registering in glance as
gpt, and rejecting boots from raw images.

Change-Id: I5b89e17438157690495961c306861a06532c8b4e
Depends-On: https://review.opendev.org/c/openstack/tempest/+/927146
2024-08-26 07:21:48 -07:00
Zuul
3bdb298e68 Merge "Fix wrong nova-manage command in upgrade check" 2024-08-22 15:35:51 +00:00
Michael Still
e06890d101 libvirt: Add config option to require secure SPICE.
This patch adds the following SPICE-related configuration option
to the 'spice' configuration group:

- require_secure

When set to true, libvirt will be provided with domain XML which
configures SPICE VDI consoles to require secure connections (that
is, connections protected by TLS). Attempts to connect without
TLS will receive an error indicating they should retry the connection
on the TLS port.

Change-Id: Ica7083b0836f8d66cad8a4b4097613103fc91560
2024-08-21 18:09:50 +10:00
Amit Uniyal
cd05be9738 Reproducer test for image property hw_architecture
scheduler.image_metadata_prefilter=True, fails with NoValidHost for image
property hw_architecture=x86_64

Related-Bug: #2062425

Change-Id: I30a76ca409fe7605d02e6f97ee7142017a05c236
2024-08-21 05:01:06 +00:00
Zuul
a2cc66a377 Merge "Fix deepcopy usage for BlockDeviceMapping in get_root_info" 2024-08-21 02:33:27 +00:00
Takashi Kajinami
3169e7cebd libvirt: Launch instances with stateless firmware
This change implements the actual functionality to allow users to
launch instances with stateless firmware (read-only firmware image +
no NVRAM).

Note that this feature is supported by the libvirt virt driver, and
also requires libvirt >= 8.6.0.

Implements: blueprint libvirt-stateless-firmware
Change-Id: I7219bfa11ae98e65c326bec1a99c49d3e245cb9a
2024-08-21 10:52:05 +09:00
Zhang Hua
065bf99fc7 Fix deepcopy usage for BlockDeviceMapping in get_root_info
The method get_root_info sometimes receives a BlockDeviceMapping object,
which lacks a copy method. The previous code assumed root_bdm was always
an instance of DriverBlockDevice, a subclass of dict that supports the copy()
method. However, during testing, it was discovered that root_bdm could also
be a BlockDeviceMapping object, which does not have a copy method.

To address this, the change replaces the copy() call with copy.deepcopy()
according to the suggestion in the comment [1], which works for both
BlockDeviceMapping and DriverBlockDevice instances. The deepcopy method is
supported because oslo.versionedobjects implements the __deepcopy__ method.

This change ensures the function handles both object types correctly,
preventing the AttributeError observed during testing.

[1] https://review.opendev.org/c/openstack/nova/+/909611/4/nova/virt/libvirt/blockinfo.py

Change-Id: I9432718586855ff57e8e6a5cae064e0685dd01e8
2024-08-20 21:48:59 +00:00
Zuul
0b091179d5 Merge "[libvirt]log XML if nova fails to parse it" 2024-08-20 03:37:34 +00:00
Takashi Kajinami
5890c257be Add hw_firmware_stateless image property
Add the new image property to request stateless firmware. The property
will be used by the libvirt driver once the actual logic to enable
the feature is implemented.

Partially-Implements: blueprint libvirt-stateless-firmware
Change-Id: I05d4ff89d2b713b217b6c690e40fd4a16a397b63
2024-08-20 09:36:47 +09:00
Takashi Kajinami
b475f0f99b Report availability of stateless firmware support
This is the first step to support launching instances with stateless
firmware. At this stage none of the virt drivers report the trait to
support the feature.

Depends-on: https://review.opendev.org/c/openstack/os-traits/+/908885
Partially-Implements: blueprint libvirt-stateless-firmware
Change-Id: I4c1df950af11687ae5a52e4eba7943029ec36e69
2024-08-20 09:16:40 +09:00
Zuul
0aedee0e9b Merge "Fix PCI passthrough cleanup on reschedule" 2024-08-19 17:15:00 +00:00
Balazs Gibizer
87ee88f10a [libvirt]log XML if nova fails to parse it
In case nova fails to parse the XML from libvirt the lxml exception is
dumped to the log but it only states the location of the error in the
XML string like

  lxml.etree.XMLSyntaxError: StartTag: invalid element name, line 40, column 35

To be able to troubleshoot the actual XML error we need to see the
invalid XML as well. So this patch makes sure that if nova fails to
parse the XML then the XML itself is dumped to DEBUG log.

Change-Id: I14cce6db4c86f663e61d3668d081858741e88add
2024-08-17 22:24:15 +02:00
Artom Lifshitz
79d1f06094 libvirt: call get_capabilities() with all CPUs online
While we do cache the hosts's capabilities in self._caps in the
libvirt Host object, if we happen to fist call get_capabilities() with
some of our dedicated CPUs offline, libvirt erroneously reports them
as being on socket 0 regardless of their real socket. We would then
cache that topology, thus breaking pretty much all of our NUMA
accounting.

To fix this, this patch makes sure to call get_capabilities()
immediately upon host init, and to power up all our dedicated CPUs
before doing so. That way, we cache their real socket ID.

For testing, because we don't really want to implement a libvirt bug
in our Python libvirt fixture, we make due with a simple unit tests
that asserts that init_host() has powered on the correct CPUs.

Closes-bug: 2077228
Change-Id: I9a2a7614313297f11a55d99fb94916d3583a9504
2024-08-17 09:20:26 -04:00