Commit Graph

62070 Commits

Author SHA1 Message Date
Zuul a4df1dea8c Merge "Fix pci_tracker.save to delete all removed devs" 2025-09-02 20:20:45 +00:00
Zuul ba2d41e463 Merge "Add service version for Falmingo" 2025-09-02 20:20:10 +00:00
René Ribaud 60ba6afc49 Add service version for Falmingo
We agreed by I2dd906f34118da02783bb7755e0d6c2a2b88eb5d  on the support
envelope.
Pre-RC1, we need to add a service version in the object.
Post-RC1, depending on whether it's SLURP or not SLURP, we need to bump
the minimum version or not.

This patch only focuses on pre-RC1 stage.
Given Gazpacho won't be skippable, we won't need a post-RC1 patch for updating the min
that will continue to support Epoxy.

HTH.

Signed-off-by: René Ribaud <rribaud@redhat.com>
Change-Id: I5bf6ad1077fe62e6ff628d211b745857167280fb
2025-09-02 15:51:00 +02:00
René Ribaud 2c87ab7573 Update compute rpc alias for epoxy
This adds an alias for Flamingo

Signed-off-by: René Ribaud <rribaud@redhat.com>
Change-Id: I2b1e76eee52dc9a15d1938a3384ebe30786ceb43
2025-09-02 15:40:03 +02:00
René Ribaud 73724fef9a doc: mark the maximum microversion for 2025.2 Flamingo
Change-Id: I4158fc072ebeda7709bc08eb7d0b924cbc99ca5a
Signed-off-by: René Ribaud <rribaud@redhat.com>
2025-09-02 15:37:02 +02:00
Rajesh Tailor 68fbace8af Fix duplicate words
This change fixes duplicate consecutive words from docs
as well as code.

Signed-off-by: Rajesh Tailor <ratailor@redhat.com>
Change-Id: I236ff41fccf831023b6f85840097148a30e84743
2025-09-02 18:06:31 +05:30
Zuul 9c1d971f01 Merge "Reproduce that only half of the PCI devs are removed" 2025-09-02 11:08:42 +00:00
Rajesh Tailor 19f206f58c Fix 'nova-manage image_property set' command
As of now, if operator wants to set traits using 'nova-manage
image_property set' command, it fails with below error, because
in ImageMetaProps traits are not stored as individual fields, but
stored in 'traits_required' field which is of type list.

'Invalid image property name trait:CUSTOM_XYZ'

The setting of traits are handled by _set_attr_from_trait_names
method here [1].

This change handles the issue by continue the loop, if the
property startswith 'traits' string.

[1] https://opendev.org/openstack/nova/src/commit/725a307693806e6e32834198e23be75f771bebc1/nova/objects/image_meta.py#L708-L714

Closes-Bug: #2096341
Change-Id: Ifc20894801f723627726e3c9bed7076144542660
Signed-off-by: Rajesh Tailor <ratailor@redhat.com>
2025-09-02 12:22:55 +05:30
Zuul 539e971126 Merge "Follow-up of AMD SEV-ES support" 2025-09-01 11:59:27 +00:00
Zuul aed238c064 Merge "Drop CentOS 8 Stream" 2025-09-01 11:30:40 +00:00
Zuul e700b18f2b Merge "Replace remaining usage of Ubuntu Jammy" 2025-09-01 11:30:28 +00:00
Zuul 8ddf918a0b Merge "[test]RPC using threading or eventlet selectively" 2025-09-01 10:11:38 +00:00
Zuul 023c1eab47 Merge "Run unit test with threading mode" 2025-09-01 10:11:11 +00:00
Zuul 29eaf28acc Merge "Update min support for Flamingo" 2025-08-31 18:13:06 +00:00
Zuul 4301fc390e Merge "api: Fix validators for hw:cpu_max_* extra specs" 2025-08-31 18:12:45 +00:00
Takashi Kajinami 583d88308f Replace remaining usage of Ubuntu Jammy
Ubuntu Jammy is no longer supported since 2025.2 . Replace it by
Ubuntu Noble which is used in the other jobs.

Change-Id: I790fb06ede2c41cb80b3d2e8ff7faa7315c84016
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-08-31 16:36:44 +09:00
Zuul 7b8e054bd2 Merge "api: Correct expected errors" 2025-08-29 21:12:29 +00:00
Takashi Kajinami 79846eb0d0 libvirt: Disable VMCoreInfo device for SEV-encrypted instances
When VMCoreInfo device is enabled, the QEMU fw_cfg device in guest OS
requires DMA between host OS and guest OS through the device. However
DMA is prohibited when guest memory is encrypted using SEV, and
the attempt results in kernel crash.

Do not add VMCoreInfo when memory encryption is enabled.

Closes-Bug: #2117170
Change-Id: I05c7b1ae46ccd8d9aa42456b493ac6ee7ddd8bae
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-08-29 21:19:10 +09:00
Stephen Finucane 8eae0ecdd9 api: Add response body schemas for limits API
Change-Id: Iec1c43dc2ee34488afd337eb65f4245def460e16
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-08-29 10:16:49 +01:00
Stephen Finucane acf48c768a api: Add response body schemas for simple tenant usage APIs
Change-Id: I839aba62047777bf83eb3a52c6d633f8eb7348bc
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-08-29 10:16:49 +01:00
Stephen Finucane 6037453846 api: Add response body schemas for tenant network APIs
Change-Id: I3decf94a8363e5efc976f99e5442aad66340c30d
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-08-29 10:16:49 +01:00
Stephen Finucane 78498e7d89 api: Add response body schemas for server usage audit log APIs
Change-Id: I20b7fec44149fd97049cd1f8602d084c45a690f5
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-08-29 10:16:49 +01:00
Stephen Finucane 8e7f2a1843 api: Add response body schemas for services APIs
Change-Id: I044a42e5c2ac55bc22bf8995feef51728ca1e45e
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-08-29 10:16:49 +01:00
Stephen Finucane 8d8edf73fc api: Add response body schemas for security group APIs
We also tackle the server security group and security group rules
controllers at the same time since they are so similar.

Change-Id: I7a039cdc172de59392215e9d6a9a24d03144cb85
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-08-29 10:16:49 +01:00
Stephen Finucane a61a1c498d api: Add response body schemas for floating IP APIs
Another proxy API down.

Change-Id: Iacb6a53aa6d3624d36e3dec5b76857cb4164ed32
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-08-29 10:16:49 +01:00
Stephen Finucane 0dbc190e09 api: Add response body schemas for volume attachments APIs
Change-Id: Ifdbca2dfdfa61f9ca39918480b573d49edd5f71c
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-08-29 10:16:49 +01:00
Stephen Finucane 626a4fdd41 api: Add response body schemas for snapshots APIs
Change-Id: I9115c5841da0c5cdd6d83a39746b4ff33a2e69be
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-08-29 10:16:49 +01:00
Stephen Finucane b4576bae06 api: Add response body schemas for volumes APIs
Change-Id: Ia40b1dcc637bca7b8fc48b486dab5cb4195aae67
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-08-29 10:16:49 +01:00
Zuul 07ab08aa69 Merge "Allow to start unit test without eventlet" 2025-08-29 04:57:32 +00:00
Takashi Kajinami 87385d2411 Follow-up of AMD SEV-ES support
Address a few improvements we agreed to cover in follow-ups.

Also fix a few problems detected during the code update.
 - Fix SEV-ES rp not purged when SEV and SEV-ES are disabled at
   the same time. The previous logic requires 2 cycles which is
   not necessary.
 - Fix the lack of NOKS policy in SEV-ES.

Change-Id: I59866d39fcc6720e338c6736dffab4fd56b853da
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-08-29 13:54:19 +09:00
Zuul dcf90dbb25 Merge "Ask for pre-prod testing for native threading" 2025-08-29 04:35:24 +00:00
Zuul ce9dcea024 Merge "Purge nested SEV RPs when SEV is disabled" 2025-08-28 23:27:04 +00:00
Zuul c6aa3a9fa9 Merge "Add functional test scenario for mixed SEV RPs" 2025-08-28 23:25:14 +00:00
Zuul 32d76d08cb Merge "libvirt: Launch instances with SEV-ES memory encryption" 2025-08-28 23:24:30 +00:00
Zuul f4ca2e3ef9 Merge "Add hw_mem_encryption_model image property" 2025-08-28 21:03:27 +00:00
Zuul d5134798de Merge "Detect AMD SEV-ES support" 2025-08-28 20:36:36 +00:00
Zuul a5670dc442 Merge "Migrate MEM_ENCRYPTION_CONTEXT from root provider" 2025-08-28 20:36:20 +00:00
Takashi Kajinami a8386bdab3 Purge nested SEV RPs when SEV is disabled
We can determine exact names of these RPs using the compute node name,
independently from how nova is configured. So we can easily purge
these PRs.

Change-Id: I0a18e3a3750137061e04765f2feaf4889c6f5606
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-08-28 08:50:42 +09:00
Takashi Kajinami af287b71c4 Add functional test scenario for mixed SEV RPs
As a follow-up of change Iad51c32d0f64ef52513bd2f2b517c91f29c63787 ,
add a functional test scenario to ensure that new instances can be
created even when a cluster has both a compute node with old SEV RP and
the other with reshaped SEV RP, to simulate the real world upgrade
scenario in existing cluster with SEV feature enabled.

Change-Id: I2c576f8de05b69ab51743db53acf52bc2a35eb59
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-08-28 08:50:15 +09:00
Takashi Kajinami 4f5a3f3c00 libvirt: Launch instances with SEV-ES memory encryption
This is the last piece to allow users to request AMD SEV-ES for memory
encryption instead of AMD SEV. The CPU feature for memory encryption
can now be requested via the hw:mem_encryption_model flavor extra spec
or via the hw_mem_encryption_model image property.

Implements: blueprint amd-sev-es-libvirt-support
Change-Id: Ifc9b86ad7db887cc22b2cd252fe8adc81fdc29c6
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-08-28 08:47:49 +09:00
Takashi Kajinami dc6641baad Add hw_mem_encryption_model image property
This is prep work to support launching instances with AMD SEV-ES memory
encryption and adds the object field to select the CPU feature to
encrypt and protect memory data of instances.

Partially-Implements: blueprint amd-sev-es-libvirt-support
Change-Id: I71fde5438d4e22c9e2566f8a684c5a965a7f3dd3
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-08-28 08:47:49 +09:00
Takashi Kajinami 6c0a689d80 Detect AMD SEV-ES support
Detect AMD SEV-ES support by kernel/qemu/libvirt and generate a nested
RP for ASID slots for SEV-ES under the compute node RP.

Deprecate the [libvirt] num_memory_encryption_guests option because
the option is effective only for SEV, and now the maximum numbers for
SEV/SEV-ES guests can be detected by domain capabilities presented by
libvirt.

Note that creating an instance with memory encryption enabled now
requires AMD SEV trait, because these instances can't run with SEV-ES
slots, which are added by this change.

Partially-Implements: blueprint amd-sev-es-libvirt-support
Change-Id: I5968e75325b989225ed1fc6921257751ae227a0b
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-08-28 08:47:45 +09:00
Ghanshyam Maan f914cb185c Add service role in Nova policy
RBAC community wide goal phase-2[1] is to add 'service'
role for the service APIs policy rule. This commit
defaults the service APIs to 'service' role. This way
service APIs will be allowed for service user only.

Tempest tests also modified to simulate the service-to-service
communication. Tempest tests send the user with service
role to nova API.
- https://review.opendev.org/c/openstack/tempest/+/892639>

Partial implement blueprint policy-service-role-default

[1] https://governance.openstack.org/tc/goals/selected/consistent-and-secure-rbac.html#phase-2

Change-Id: I1565ea163fa2c8212f71c9ba375654d2aab28330
Signed-off-by: Ghanshyam Maan <gmaan@ghanshyammann.com>
2025-08-27 19:34:04 +00:00
Balazs Gibizer ea50365cce Do not yield in threading mode
If a service runs in threading mode nova.utils.cooperative_yield is noop
as yielding is only necessary for eventlet.

Change-Id: I72a52262f5c501f77d23ed56cbcd1a9c2be72fa7
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-08-27 19:03:34 +02:00
Balazs Gibizer 350cdd1b5e [CI]Make nova-tox-py312-threading voting
Change-Id: I6a220d03f7c879af0d714740102b2d84ce61ca69
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-08-27 19:03:34 +02:00
Balazs Gibizer 1318cd48a1 [test]RPC using threading or eventlet selectively
The nova test hardcoded to run the RPC servers in the test with eventlet
executor. We change that to be dynamic based on how the tests was
started it can use eventlet or threading.

This makes some of the so far hanging RPC dependent unit tests passing.

Change-Id: I5012122fe66d41459b68202e750391a1939d70d9
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-08-27 19:03:30 +02:00
Balazs Gibizer 83eed99a9f Run unit test with threading mode
The py312-threading tox target will run the currently working unit tests
with threading mode. We have an exclude list, those tests are
failing or hanging. Also the current test list might still have unstable
tests.

This also adds a non voting zuul job to run the new target.

Change-Id: Ibf41fede996fbf2ebaf6ae83df8cfde35acb2b7e
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-08-27 19:01:35 +02:00
Balazs Gibizer b278240370 Allow to start unit test without eventlet
The end goals is to be able to run at least some of the unit tests
without eventlet. But there are things preventing that for now.

We need to make sure that the oslo.sevice backed is not initialized to
eventlet by any early import code before our monkey_patch module can do
the selective backed selection based on the env variable.

The nova.tests.unit module had some import time code execution that is
forcing imports that initialize the oslo.service backend too early,
way before nova would do it in normal execution. We could remove
objects.register_all() from nova/tests/unit/__init__.py as it seems
tests are passing without it. Still that would not be enough so I
eventually decide to keep it.

The other issue is that the unit test discovery imports all modules
under nova.tests.unit and that eventually imports oslo.messaging and
that also forces oslo.service backend selection.

So we injected an early call to our smart monkey_patch module to preempt
that. This does not change the imported modules as monkey_patch module
imported anyhow via nova.test module. Just changed the order to allow
oslo.service backend selection explicitly.

After this patch the unit test can be run via

  OS_NOVA_DISABLE_EVENTLET_PATCHING=true tox -e py312

Most of the test will pass but there are a bunch of test timing out or
hanging.

Change-Id: I210cb6a30deaee779d55f88f0f57584c65b0dc05
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-08-27 18:54:26 +02:00
Balazs Gibizer 2a9cbdabce Ask for pre-prod testing for native threading
This patch refines our logging, doc, and release notes about the native
threading mode of scheduler, api, and metadata services to ask for
pre-prod testing before enabled in production.

Change-Id: I04bbb3d7e4664a0cab8b30f4c34ee71774536353
Signed-off-by: Balazs Gibizer <gibi@redhat.com>
2025-08-27 18:46:31 +02:00
Takashi Kajinami b7c7d45093 Migrate MEM_ENCRYPTION_CONTEXT from root provider
This is the preparation work to extend memory encryption support to
support AMD SEV-ES, and migrates the MEM_ENCRYPTION_CONTEXT resources
to the separate child resource provider, so that slots for different
memory encryption mechanism can be modeled.

Partially-Implements: blueprint amd-sev-es-libvirt-support
Change-Id: Iad51c32d0f64ef52513bd2f2b517c91f29c63787
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-08-27 22:57:25 +09:00