Commit Graph

175 Commits

Author SHA1 Message Date
Danylo Vodopianov cff125c791 Comment to the trait was added
Nova spec: https://review.opendev.org/c/openstack/nova-specs/+/868377

Change-Id: I9490d3a91c027c78f0d03fccd6bd16472c0b5c4c
2023-05-04 14:20:30 +03:00
Zuul b7b1b24d30 Merge "Add 'COMPUTE_NET_VIRTIO_PACKED'" 2023-05-04 09:22:00 +00:00
Zuul 6c9917a727 Merge "Update python testing as per zed cycle testing runtime" 2023-04-13 15:16:47 +00:00
Danylo Vodopianov 3b0a2eaa82 Add 'COMPUTE_NET_VIRTIO_PACKED'
COMPUTE_NET_VIRTIO_PACKED allows us to report this trait and use it to
filter hosts that support packed virtqueue.

Nova spec: https://review.opendev.org/c/openstack/nova-specs/+/868377

Change-Id: I0752af7b67e999d53f007b3e83ec218bb6fd7da7
2023-03-02 16:40:05 +02:00
René Ribaud 0d924f547e Add 'COMPUTE_SHARE_LOCAL_FS'
COMPUTE_SHARE_LOCAL_FS allows us to report this trait and use
it to filter hosts that support sharing local FS.

Implements: blueprint virtiofs-scaphandre
Change-Id: I7d3aee17b9afab5820735f5bdbb5fe69391dce45
2023-02-08 11:32:41 +01:00
Nobuhiro MIKI 845e80d606 Add new 'COMPUTE_ADDRESS_SPACE_*' traits
These traits indicate the pass-through or emulated
mode of the guest physical address bits.

blueprint: libvirt-maxphysaddr-support
Signed-off-by: Nobuhiro MIKI <nmiki@yahoo-corp.jp>
Change-Id: Id3716ea9d8581b3c41604f35ed83fa41a3ce0554
2023-01-20 18:33:45 +09:00
Ghanshyam Mann feb3e28a00 Update python classifier for python 3.10
In 2023.1 cycle, we are testing the python 3.10
as voting job so updating the python classifier.

Change-Id: I340c40a96369f787526661d2ccca97e757eac51d
2022-11-22 19:48:14 +00:00
Jan Hartkopf fc91a78e99 add new trait for config drive regeneration
Add trait to specify whether a driver supports regeneration
of config drives.

Change-Id: I1c63d1edde52e71c571258b87903afaaa26b1c8c
Signed-off-by: Jan Hartkopf <jhartkopf@inovex.de>
2022-08-25 11:57:22 +02:00
Zuul 04e8bb34cf Merge "Add traits for vIOMMU" 2022-07-28 14:26:56 +00:00
Rico Lin 74988cdba7 Add traits for vIOMMU
Add traits for vIOMMU traits corresponding to the allowed values of
"hw_iommu_model" image metadata property.

Blueprint: libvirt-viommu-device
Change-Id: Ic44429ad360475143b20071f85d534a958d110e0
2022-07-28 11:22:48 +00:00
Balazs Gibizer 62bb86895f Add COMPUTE_MANAGED_PCI_DEVICE trait
This will be used by nova implementing PCI tracking in Placement along
with the existing OWNER_NOVA trait to indicate that an RP has
inventories of nova managed PCI device (or its children devices).

blueprint: pci-device-tracking-in-placement
Change-Id: Id0c87f3afc223f655a708d7d08df62216d832203
2022-07-20 18:13:08 +02:00
Zuul 4c8a5542e5 Merge "Add 'COMPUTE_STORAGE_VIRTIO_FS', 'COMPUTE_MEM_BACKING_FILE'" 2022-07-18 11:38:46 +00:00
René Ribaud a097c3f7b0 Add 'COMPUTE_STORAGE_VIRTIO_FS', 'COMPUTE_MEM_BACKING_FILE'
COMPUTE_STORAGE_VIRTIO_FS allows us to report this trait and use
it to filter hosts that support virtio filesystems.

COMPUTE_MEM_BACKING_FILE allows us to report this trait and use
it to filter hosts that supports file-backed memory.

These both traits are necessary to support sharing files with
virtiofs and so forth with manila shares.

Implements: blueprint libvirt-virtiofs-attach-manila-shares
Change-Id: I89419cf1649f48106d84cc84e688df7a065f470a
2022-07-12 15:13:21 +02:00
songwenping a6ffbcd01f Update python testing as per zed cycle testing runtime
In Zed cycle, we have dropped the python 3.6/3.7[1] testing
and its support. Moving the py36 job to py38 based as well as
updating the python classifier also to reflect the same.

[1] https://governance.openstack.org/tc/reference/runtimes/zed.html

Change-Id: I6db7cdd34d5c51a27673396b870ca571ad52cb43
2022-05-13 15:02:30 +08:00
songwenping f64d50e4dd Add nova and cyborg owner traits for resources
Resources such as vGPU can be managed either by nova
by cyborg. In order to distinguish the manage-owner, use owner (nova, cyborg)
trait in Placement when the inventory is reported.

When resource is requested, flavor based VGPU resource should be allocated
from the nova managed RP, while device profile based VGPU resource should be
allocated from the cyborg managed RP.

Change-Id: Ia50e9a1acdcfb821e2d40774c3dca191e172ca68
2022-04-27 20:20:36 +08:00
U-HOME\songwenping 87b1165aa3 Remove unnecessary unicode prefixes
All strings are unicode by default in Python 3. No need to mark them as
such.

Change-Id: Id937b87f7c7e2767ce5eb456db39d8ce81a1a69a
2022-04-19 14:32:05 +08:00
Stephen Finucane 1757c64199 Update CI to use unversioned jobs template
As part of the migration of this project to the independent release
model, we failed to notice that the job template was still tied to a
specific release. We've now introduced a new unversioned job template,
'openstack-python3-jobs' [1], which was can and should use. Do this.

[1] https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/833286/

Change-Id: Id97452334d3da24d062f6fbe9136c91641d209d7
Depends-On: https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/833286/
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-03-15 15:08:28 +00:00
Zuul 3d1dbf0c9d Merge "Add a trait for remote_managed port-capable nodes" 2022-01-25 16:48:07 +00:00
Zuul 9083873084 Merge "Adds Pick guest CPU architecture based on host arch in libvirt driver support" 2022-01-25 16:46:20 +00:00
Jonathan Race fce0902443 Adds Pick guest CPU architecture based on host arch in libvirt driver support
Implement new image meta property that allows for the selection of the
correct QEMU binary, cpu architecture, and machine type for a guest
architecture that is different than the host architecture; An x86_64
guest running on an AArch64 host, and vice versa.

Specifically the required OS traits have been added to ensure that the
hw_architecture and hw_emulation_architecture fields recieve the
correct allowed values.

exapnded hw_architecture os_traits to match all specified in nova object
fields.

Depends-On: https://review.opendev.org/c/openstack/nova-specs/+/824044
Implements: blueprint pick-guest-arch-based-on-host-arch-in-libvirt-driver
Closes-Bug: 1863728
Signed-off-by: Jonathan Race <jrace@augusta.edu>
Change-Id: I891cd43b2b97b3774ff923e3487a153a5ba237ef
2022-01-11 19:16:16 +00:00
Ghanshyam Mann d81a6f2ca8 Updating python testing classifier as per Yoga testing runtime
Yoga testing runtime[1] has been updated to add py39
testing as voting. Unit tests update are handled by the
job template change in openstack-zuul-job

- https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/820286

this commit updates the classifier in setup.cfg file and tox.ini.

[1] https://governance.openstack.org/tc/reference/runtimes/yoga.html

Change-Id: I4be58a69548a037d1920183fd1d58f91ec30e382
2021-12-14 13:25:24 +01:00
Dmitrii Shcherbakov e14a4049bc Add a trait for remote_managed port-capable nodes
Instances with VNIC_TYPE_SMARTNIC port need PCI devices tagged as
"remote_managed" in the PCI whitelist, however, not all compute drivers
may support the necessary functionality or have the necessary devices.

A new trait is added in order to allow a pre-filter based on it to be
implemented to avoid considering compute hosts that do not support
"remote_managed" ports.

Implements: blueprint integration-with-off-path-network-backends
Needed-By: I168d3ccc914f25a3d4255c9b319ee6b91a2f66e2
Change-Id: If5a4c81084ff9f9f8fecf9fa4cd62fc98e3efcd9
Task: 44048
Story: 2009706
2021-11-23 17:58:41 +03:00
Takashi Natsume ff96dcc647 Change minversion of tox to 3.18.0
The patch bumps min version of tox to 3.18.0 in order to
replace whitelist_externals with allowlist_externals option:
https://github.com/tox-dev/tox/blob/master/docs/changelog.rst#v3180-2020-07-23

Signed-off-by: Takashi Natsume <takanattie@gmail.com>
Change-Id: Id377e233879b87e26ba92ff667b98cc0c1210db2
2021-09-04 02:17:10 +00:00
Zuul c323982d9e Merge "List traits in documentation" 2021-08-19 14:32:19 +00:00
Zuul 300118a51c Merge "Add 'COMPUTE_FIRMWARE_UEFI', 'COMPUTE_FIRMWARE_BIOS'" 2021-08-19 14:31:16 +00:00
Zuul 8296012106 Merge "Add a trait for the "bochs" display device" 2021-08-19 14:06:55 +00:00
Kashyap Chamarthy 0f404b4b48 Add a trait for the "bochs" display device
The 'bochs' display device is a recommended[1] safe option for UEFI
guests.

This lets an admin set the trait either via the flavor extra-specs or
image metadata properties:

    trait:COMPUTE_GRAPHICS_MODEL_BOCHS=required

This also allows The libvirt virt dirver report a standard trait
for bochs graphics model support and enables the image_metadata_prefilter
to automatically request the trait. This will enable vm that request
the bochs graphics model to be automaticaly scheduled to hosts that
can support it.

Implements: blueprint add-bochs-display-device
[1]: https://www.kraxel.org/blog/2019/09/display-devices-in-qemu/#tldr
Change-Id: Iba867f4632853f99373976e39c3494ea1c8b91a2
Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
2021-08-19 12:49:08 +01:00
Stephen Finucane 32112e9091 Add 'COMPUTE_FIRMWARE_UEFI', 'COMPUTE_FIRMWARE_BIOS'
This allows us to report this trait and use it to filter out hosts that
support our requested 'hw_firmware_type'.

Change-Id: Ifc06d6f9b1d3217d09fa20aafc2988acb11c80f2
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-08-19 10:54:12 +01:00
Takashi Natsume 99dbadebab setup.cfg: Replace dashes with underscores
Setuptools v54.1.0 introduces a warning that the use of dash-separated
options in 'setup.cfg' will not be supported in a future version [1].
Get ahead of the issue by replacing the dashes with underscores. Without
this, we see 'UserWarning' messages like the following on new enough
versions of setuptools:

  UserWarning: Usage of dash-separated 'description-file' will not be
  supported in future versions. Please use the underscore name
  'description_file' instead

[1] https://github.com/pypa/setuptools/commit/a2e9ae4cb

Signed-off-by: Takashi Natsume <takanattie@gmail.com>
Change-Id: I26fffc6e83581fd8babc2d64481e2700896c9112
2021-05-13 20:48:13 +09:00
Zuul ac1b39eff3 Merge "Add COMPUTE_EPHEMERAL_ENCRYPTION tratis" 2021-02-16 11:11:41 +00:00
Zuul c70ae27d72 Merge "Add a trait for UEFI Secure Boot support" 2021-02-11 17:24:30 +00:00
Lee Yarwood 01db7ff082 Add COMPUTE_EPHEMERAL_ENCRYPTION tratis
This includes format specific traits under
COMPUTE_EPEHEMERAL_ENCRYPTION_$FORMAT.

Change-Id: I0438e39a3c61253f781761a5aae895993f897adb
2021-02-11 17:15:23 +00:00
Artom Lifshitz 7601db7148 Add COMPUTE_SOCKET_PCI_NUMA_AFFINITY trait
The new trait will be used to signal that compute hosts can honor the
new `socket` value of hw_pci_numa_affinity_policy. It will be helpful
in rolling upgrade scenarios, mixed hypervisor clouds, and just to
make scheduling faster.

Implements: blueprint pci-socket-affinity
Change-Id: Ia4d1871b719037174506fb784b77572e63303762
2021-02-09 16:06:50 -05:00
Zuul 89f7117704 Merge "Remove translation sections from setup.cfg" 2021-02-01 10:58:45 +00:00
Kashyap Chamarthy 89cec2696b Add a trait for UEFI Secure Boot support
Introduce a trait, COMPUTE_SECURITY_UEFI_SECURE_BOOT, as discussed in
the Secure Boot spec[1].  (Yeah, it reads a little awkward, not sure if
we can avoid it, as I've included it as part of compute/security.py
file.)

This lets an admin set the trait either via the flavor extra-specs or
image metadata properties:

    trait:COMPUTE_SECURITY_UEFI_SECURE_BOOT=required

to request to boot an instance in Secure Boot mode.  Nova's libvirt
driver is responsible make sure the compute node has the necessary
capabilities (e.g. relevant libvirt, QEMU, OVMF, EDK2 et al versions).
If the host hypervisor is incapable, the instance creation will fail.

[1] https://opendev.org/openstack/nova-specs/src/branch/master/specs/wallaby/approved/allow-secure-boot-for-qemu-kvm-guests.rst#fnref8

blueprint: allow-secure-boot-for-qemu-kvm-guests

Change-Id: I333147dcd47c6d0b926338a5a0c545f5adc63961
Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
2021-01-13 11:31:56 +01:00
Stephen Finucane c6a0ff2ac0 List traits in documentation
We're going to have to switch to something other than a list of strings
or use Sphinx-style inline documentation if we want to provide anything
more useful.

Change-Id: I45c29fe2bdd3fdcb3c69e07f5e9e5be36de9b797
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-09-23 12:05:41 +01:00
Zuul 454292dbd2 Merge "Fix hacking min version to 3.0.1" 2020-06-26 16:48:34 +00:00
Andreas Jaeger e32a13f13c Switch to newer openstackdocstheme and reno versions
Switch to openstackdocstheme 2.2.1 and reno 3.1.0 versions. Using
these versions will allow especially:
* Linking from HTML to PDF document
* Allow parallel building of documents
* Fix some rendering problems

Update Sphinx version as well.

Disable openstackdocs_auto_name to use 'project' variable as name.

Change pygments_style to 'native' since old theme version always used
'native' and the theme now respects the setting and using 'sphinx' can
lead to some strange rendering.

openstackdocstheme renames some variables, so follow the renames
before the next release removes them. A couple of variables are also
not needed anymore, remove them.

See also
http://lists.openstack.org/pipermail/openstack-discuss/2020-May/014971.html

Change-Id: Id6a7a465630647382de63be64fc16f6e4f52912d
2020-06-01 15:28:05 +02:00
Lin Yang 066a2a972d CPU: add traits for new AVX512 support
Add several standard traits for the support of new CPU AVX512
instructions, which includes AVX512VBMI [1], AVX512IFMA [2],
AVX512VBMI2 [3], AVX512BITALG [4], AVX512VAES [5], AVX512GFNI [6],
AVX512VPCLMULQDQ [7], AVX512VPOPCNTDQ [4].

[1] https://en.wikipedia.org/wiki/AVX-512#BW,_DQ_and_VBMI
[2] https://en.wikipedia.org/wiki/AVX-512#IFMA
[3] https://en.wikipedia.org/wiki/AVX-512#VBMI2
[4] https://en.wikipedia.org/wiki/AVX-512#VPOPCNTDQ_and_BITALG
[5] https://en.wikipedia.org/wiki/AVX-512#VAES
[6] https://en.wikipedia.org/wiki/AVX-512#GFNI
[7] https://en.wikipedia.org/wiki/AVX-512#VPCLMULQDQ

Change-Id: I58cba02f204d2e19a1a838852c628694edd47d73
2020-05-15 14:15:06 -07:00
melissaml b20bbb41bc Remove translation sections from setup.cfg
These translation sections are not needed anymore, Babel can
generate translation files without them.

Change-Id: I62f884243e7cab71b3efad85676cdf6171e9a644
2020-05-15 01:29:17 +08:00
Ghanshyam Mann 0cfd42e3a5 Fix hacking min version to 3.0.1
flake8 new release 3.8.0 added new checks and gate pep8
job start failing. hacking 3.0.1 fix the pinning of flake8 to
avoid bringing in a new version with new checks.

Though it is fixed in latest hacking but 2.0 and 3.0 has cap for
flake8 as <4.0.0 which mean flake8 new version 3.9.0 can also
break the pep8 job if new check are added.

To avoid similar gate break in future, we need to bump the hacking min
version.

- http://lists.openstack.org/pipermail/openstack-discuss/2020-May/014828.html

Change-Id: I44e32f59e0d6d7c7d96472476db6c14e9dae0140
2020-05-12 20:21:36 -05:00
Andreas Jaeger 77bf79e2aa Cleanup py27 support
This repo is now testing only with Python 3, so let's make
a few cleanups:
- Remove python 2.7 stanza from setup.py
- Switch to using sphinx-build
- Cleanup doc/source/conf.py to remove now obsolete content.
- Use newer openstackdocstheme version
- Switch to hacking 3.0

Change-Id: Id3a7e6b6a6160358efb897cbf73630d96672d4fb
2020-04-12 18:52:38 +02:00
Stephen Finucane bca5bace07 Switch to hacking 2.x
This supports Python 3 goodness. Some additional tox and gitignore
tweaks are included while we're here.

Change-Id: Id1a7a90119be242486584a3b5d6939083bfac84d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-02-27 15:04:48 +00:00
Stephen Finucane 865cf20732 Remove use of six
Only one user here which is no longer needed in a Python 3 only world.

Change-Id: Iac33e324d07d67368a5b544030cd5414d0586955
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-02-27 15:04:41 +00:00
Stephen Finucane c4ee198eb7 setup.cfg: Remove unused 'build_sphinx' configuration
We call 'sphinx-build' directly now. No need to keep this legacy
configuration around.

Change-Id: I337f9fefe7f0364bce3a0192dfc9c1199076fa02
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-02-27 15:04:37 +00:00
Stephen Finucane e3e20d435e setup.cfg: Configure 'python-requires'
This will prevent setuptools accidentally installing os-traits in a
Python 2 environment.

Change-Id: I4ecd197cfedca74bc8a068edc08c2bc097f41458
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-02-27 15:04:21 +00:00
Sundar Nadathur bdc942a272 Add a trait that compute manager can handle accelerator requests.
When a Cyborg device profile name is present in the flavor, the
conductor will initiate creation and binding of accelerator requests,
and the compute manager must wait for the ARQ binding notifications.

In a deployment where the conductor is new, but one or more compute
managers are older than the needed version, this flow will break.
To prevent that: (a) the compute manager publishes this trait,
and (b) the scheduler factors this trait in the Placement query, so
that older compute nodes are not included in allocation candidates.

Change-Id: I6dc00248b54f3a8a5d5dae284d2182df5ba550ab
2020-01-15 08:22:00 -08:00
Lee Yarwood c37f67aea1 Add COMPUTE_RESCUE_BFV trait
This change adds the COMPUTE_RESCUE_BFV trait for use when attempting to
rescue boot from volume instances.

Partial-Implements: blueprint virt-bfv-instance-rescue
Change-Id: Ida736058100b5a724da7156399b0c67a9854a806
2020-01-14 15:57:27 +00:00
Matt Riedemann f6c8636bd8 Add COMPUTE_SAME_HOST_COLD_MIGRATE trait
This adds a compute capability trait to model the
nova ComputeDriver supports_migrate_to_same_host capability [1].

There is a latent bug in nova where configuring the
allow_resize_to_same_host option to True can potentially
lead the scheduler to pick the same host the server is on
to start a cold migration which is only supported by the
(in-tree) vCenter driver (since that driver manages a vCenter
cluster of ESXi hosts). This can lead to at best the cold migration
flow picking an alternate host and at worst failing the cold migration.
Either is not desirable if nova could make a better decision during
scheduling by asking placement for only compute nodes that support
this type of operation.

In absence of the trait, nova can workaround the issue with a
config option [2] such that when cold migrating the API can determine
if the current host that the instance is on should be ignored during
scheduling. With the trait, nova could deprecate and remove that workaround
by having the compute API determine if the host that the instance is on
is suitable for same-host cold migration by finding the provider using
the ComputeNode related to the instance (via host/node on the instance)
and if that provider has the COMPUTE_SAME_HOST_COLD_MIGRATE trait [3]. That
would still leave the nova scheduler to filter out allocation candidates
using the RequestSpec.ignore_hosts list as it does today but it's better
than using a global config option in the API which could be wrong for a
mixed hypervisor deployment.

[1] https://github.com/openstack/nova/blob/19.0.0/nova/virt/driver.py#L153
[2] https://review.opendev.org/676022/
[3] https://review.opendev.org/695220/

Change-Id: I29ef5c402e0d006518bfce14f616e58f85ce7c9d
Related-Bug: #1748697
2019-12-09 16:10:58 +00:00
ericxiett c7468b0bad Add 'TYPE_PLOOP' image type.
This patch adds missing image type 'TYPE_PLOOP' for Virtuozzo.

Change-Id: Ia9c7b83b7b163ce73e980923f48bc34045ff92be
Closes-Bug: #1854235
2019-12-02 13:14:33 +00:00