With the introduction of the libvirt-default-machine-type blueprint
operators are now able to change the default machine type used by an
existing environment more easily. This should hopefully allow more
deployments to switch to the modern q35 machine type, away from the
legacy pc machine type that is currently the default.
With this in mind this change aims to start testing the q35 machine type
as part of the nova-next job before we eventually change the default in
the future.
The following changes are made to the job to allow it to pass with q35:
- [libvirt]num_pcie_ports is increased to 24
This is required as more devices are now connected by default over PCIe.
- [compute-feature-enabled]ide_bus is disabled
The q35 machine type does not support an IDE bus so any tests using this
bus are now skipped.
Depends-On: https://review.opendev.org/c/openstack/devstack/+/779179
Depends-On: https://review.opendev.org/c/openstack/tempest/+/775630
blueprint: libvirt-default-machine-type
Change-Id: Iad1adbc23b31dd54a96299e7a8a4b622c15eed8d
As covered in the removed TODO this was to be done after bug #1771700
was resolved in Queens but instability in the job over the years stopped
this from ever happening.
With I7ad1d9820c48644bff7834560cdc7d5c13f7ed41 hopefully addressing the
only outstanding stability issue we can now finally mark the job as
voting again.
Related-Bug: #1771700
Change-Id: Ie9cba36ab602ab7c20c9a2c3b60e11e8506581ce
This is required as instance snapshots taken in this environment are
fully allocated RAW snapshots and consume considerably more space than
sparsely allocated RAW snapshots taken when Nova is using a file based
imagebackend.
We could look into sparsifying the resulting snapshots from the lvm
imagebackend but for the time being given the available space in our CI
hosts we can just extend space available to g-api via swift.
Closes-Bug: #1913451
Change-Id: I7ad1d9820c48644bff7834560cdc7d5c13f7ed41
As with the already listed encrypted volume tests this job specifically
blocks us from downloading non-raw images via Glance as part of these
tests so skip it.
Change-Id: Iaf6f6e0dbcb25561bf00e969e1964cd30e974e64
Closes-Bug: #1912607
This job tests the recently introduced direct download of rbd hosted
Glance images into a file based imagecache.
Depends-On: https://review.opendev.org/748212
Change-Id: I0933447e6caa0013f0b26dbf6532ff1976197e80
This patch adds both a tox target and a zuul job to run functional tests
with python3.9
Depends-On: https://review.opendev.org/760932
Change-Id: I672904e9bfb45a66a82331063c7d49c4bc0439df
This was incorrectly removed by
Ib342e2d3c395830b4667a60de7e492d3b9de2f0a while still being used by the
nova-grenade-multinode job. This was missed as the check queue appears
to default to silently skipping jobs where it can't find the parent
instead of failing.
Change-Id: I3ece71ab75a28a0ba662c56fb140525e8ce4aa6c
This change removes the original nova-live-migration job and replaces it
directly with the new Focal based zuulv3 native job.
The nova-dsvm-multinode-base base job is no longer used and so also
removed as part of this change.
Note that this new nova-live-migration job does not yet contain any
ceph coverage like the original, this is still pending and will be
completed early in the W cycle.
This change is being merged ahead of this to resolve bug #1901739, a
known QEMU -drive issue caused by the previous jobs use of libvirt 5.4.0
as provided by Ubuntu Bionic. The fix here being the migration to Ubuntu
Focal based jobs and libvirt 6.0.0 that now defaults to using QEMU
-blockdev.
Closes-Bug: #1901739
Change-Id: Ib342e2d3c395830b4667a60de7e492d3b9de2f0a
Both jobs deploy a multinode env before running their tests so just
append the new nova-evacuate tests to the end of the job.
Change-Id: If64cdf1002eec1504fa76eb4df39b6b2e4ff3728
This change reworks the evacuation parts of the original
nova-live-migration job into a zuulv3 native ansible role and initial
job covering local ephemeral and iSCSI/LVM volume attached instance
evacuation. Future jobs will cover ceph and other storage backends.
Change-Id: I380e9ca1e6a84da2b2ae577fb48781bf5c740e23
nova-ceph-multistore and neutron-tempest-linuxbridge
jobs are voting jobs but only run in check pipeline.
We should run all voting job in check as well as in gate
pipeline.
Change-Id: If6758c83a6bd95aefb7703529cbccd14e3adfee2
The old job name is still available as an alias for a while,
but it is time to switch away from it.
Change-Id: I93c35b386e1b1cbcff74fe0a2388f0eda5dea3b9
This initial change introduces a non-voiting
nova-multinode-live-migration check job. This initial job simply runs
the live migration tests against a multinode env.
Future changes will introduce ceph based live migration and evacuation
jobs before removing the original nova-live-migration job.
Change-Id: Ibbb3930a6e629e93a424b3ae048f599f11923be3
This makes our ceph job configure glance with multiple stores enabled.
It also makes sure that devstack uploads the cirros image to the file-
backed store, and configures nova for automatic copy-to-store
functionality. In order to allow this, we must grant all users ability
to copy-to-store for public images, since the tempest tests run as
their own users. This broadens the coverage of our ceph job to hit not
only the ceph paths, but the copy-to-store paths, as well as glance's
multi-store paths, and glance's async task paths.
Related to bp/rbd-glance-multistore
Depends-On: https://review.opendev.org/#/c/740322
Depends-On: https://review.opendev.org/#/c/738703
Change-Id: Iff5e9eaed7eb2345eaafc90c8cd6466a2cbca08c
The job was part of the neutron experimental queue but then removed
during the ussuri lifecycle.
See https://review.opendev.org/#/c/693630/
Change-Id: I04717b95dd44ae89f24bd74525d1c9607e3bc0fc
As per Victoria testing runtime[1], we need to tests py3.6,
py3.7, and py3.8.
- py3.7 is being tested with integration jobs.
- py3.6 and py3.8 are tested with unit test jobs.
Nova functional tests are testing py3.6 which can be moved to the latest
python available in this cycle which is 3.8. We do not need to run functional
or integration tests on each supported python version. Testing them on
the latest python version is enough. Coverage of all supported python version
is achieved via unit tests job.
[1] https://governance.openstack.org/tc/reference/runtimes/victoria.html
Change-Id: I1d6a2986fcb0435cfabdd104d202b65329909d2b
This change switches the single node legacy grenade-py3 job over to the
newly introduced Zuulv3 based grenade job.
Change-Id: I212692905a1d645cd911c2a161c13c794c0e0f4d
The Cyborg tempest plugin has been merged in Train [1]. The
creation and deletion of VMs with this patch series are
validated with that plugin.
The plugin is being enhanced to cover other VM operations like
reboots, pause, etc. [2]
[1] https://opendev.org/openstack/cyborg-tempest-plugin
[2] https://review.opendev.org/#/c/685183/
Change-Id: Id8762d0d95aa7c90feee64eb07a50433ca6ca3d1
Blueprint: nova-cyborg-interaction
The SDK API tests provide another set of verification of nova
behavior. In a perfect world, as we add new microversions to
nova, we'd add support for the microversion first to SDK along
with a test that should work if the MV isn't there, and then
adding the microversion the test should still work - which would
allow us to make sure SDK is always up to date with the very
latest and greatest nova api.
Change-Id: I2406bd6d9e69e33e57b715ff0812c5770b1b53d8
tempest-full is py2 job which are not supposed
to use for master gate. nova-tempest-full-oslo.versionedobjects
job is derived from tempest-full. Changing this job
to drive from tempest-full-py3.
Change-Id: I15390e7e11565030c7c6211b0af03c1c20d6bee5
Currently we run all the integration jobs for policies
only changes which is not required. Policy-only changes
can be covered by unit, functional and single tempest, grenade
job.
Change-Id: I4b2d321b7243ec149e9445035d1feb7a425e9a4b
This change adds two Fedora based jobs to the experimental queue with
the aim of providing improved coverage for anyone working on features
that rely on recently released Libvirt, QEMU or KVM features.
Depends-On: https://review.opendev.org/#/c/701228/
Change-Id: Ie2e2a4dc31b9fdcd6ac87c14f564621803c8d4cf
This changes the nova-multi-cell job to essentially
force cross-cell resize and cold migration. By "force"
I mean there is only one compute in each cell and
resize to the same host is disabled, so the scheduler
has no option but to move the server to the other cell.
This adds a new role to write the nova policy.yaml file
to enable cross-cell resize and a pre-run playbook so
that the policy file setup before tempest runs.
Part of blueprint cross-cell-resize
Change-Id: Ia4f3671c40e69674afc7a96b5d9b198dabaa4224
We just recently enable this scenario test [1] but it's
causing the nova-next job to intermittently fail because
the nova-next job runs the tempest compute API and scenario
tests concurrently (unlike the tempest-full job which runs
the API tests concurrently and then the scenario tests serially)
and the scenario test is creating a public shared network which
causes the compute API tests, when creating a server without
specifying a network, to fail since nova doesn't know which
network to use. So for now just blacklist the scenario test
until the related tempest bug is fixed.
[1] https://review.opendev.org/#/c/697180/
Change-Id: Ie0e6136e88bedb2c4c6d0b742319627d58da147e
Related-Bug: #1844568
In [1] the tempest-slow-py3 job was dropped and non-redundant bits
folded into the nova-next job.
Except we forgot to move over some of the config necessary to make this
QoS bandwidth test [2] work, so it gets skipped:
setUpClass (tempest.scenario.test_minbw_allocation_placement.MinBwAllocationPlacementTest)
... SKIPPED: Skipped as no physnet is available in config for placement based QoS allocation.
This syncs the nova-next job with the config like what was done for
tempest-slow here [3]. Some of that was already in place (to make
QoS heal allocation testing work).
[1] https://review.opendev.org/#/c/683988/
[2] 3eb3c29e97/tempest/scenario/test_minbw_allocation_placement.py (L142)
[3] c87a06b3c2
Closes-Bug: #1854993
Change-Id: Ib9332b8677c4ccb9e38b6fcdf39e989a891a56fe
We made the nova-next job multinode in Ussuri and we
sometimes see intermittent failures setting up guests
in tempest tests that move a guest from one host to
another, e.g. test_shelve_volume_backed_instance. If
this is due to slow nodes or slow network connections
between the subnode and the primary where the metadata
API server is running, the guest setup can fail which
results in SSH failures in the tempest tests which are
generally not easy to debug.
This makes the nova-next job force the use of a config
drive for the servers that are created so we can take
the metadata API server out of the mix for these types
of SSH failures with this specific job.
Change-Id: Idc45d5ebc26e3a8a94fc5ec13c07465b9dd460e6
Related-Bug: #1853453
The DevStack change to switch to Python 3 by default [1] has now landed,
which means we no longer need to override this in our zuul
configuration. Remove the relevant entries.
[1] https://review.opendev.org/#/c/649097/
Change-Id: I40e515cd4ddc85cd1dba613c2b5c0505e35df295
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This it the default value defined by zuul-jobs. There's no need to
manually configure it.
[1] 6228b71b07/roles/tox/defaults/main.yaml (L6)
Change-Id: Ib8ffb8a3ae3bfdd2cfedd8313b9221945e392141
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We were running the voting neutron-grenade-multinode job in the
check queue on nova changes but were not running it in the gate
queue.
We run the nova-grenade-multinode job in both check and gate queues.
The major differences between those jobs are that the neutron
job runs the tempest smoke tests during the grenade run on the
old and new side of the grenade environment and the nova job would
not run smoke tests but ran a select few live migration and
resize/cold migration tests via the post-test hook script, and would
run those with an lvm/local storage/block migration and ceph/shared
storage setup.
This change makes the nova-grenade-multinode job run smoke tests
like the neutron-grenade-multinode job was so we can drop the
neutron-grenade-multinode job from running on nova changes in the
check queue and save a few nodes.
Note that neutron-grenade-multinode ran all smoke tests but this
change makes nova-grenade-multinode run a subset of smoke tests for
only the ones that involve compute. This is in order to keep the
execution time of the job down by not testing non-compute API things
that nova changes don't care about, e.g. keystone, swift, cinder, etc
smoke tests.
[1] https://zuul.opendev.org/t/openstack/build/377affdf97b04022a321087352e1cc4c/log/logs/grenade.sh.txt.gz#41965
Change-Id: Icac785eec824da5146efe0ea8ecd01383f18398e
Mention that nova-grenade-multinode and nova-live-migration
run under python 3 in the job description since it's not
obvious from the job names.
Change-Id: I86f56b0238c72d2784e62f199cfc7704b95bbcf2
It's Ussuri. We can *finally* stop testing Python 2 [1]. Time to party.
We don't attempt any cleanup but simply stop testing with Python 2,
indicate that we only support Python 3 via 'setup.cfg' and remove any
Python 2 only dependencies. Our 'tox.ini' is modified such that
'functional' now runs with 'python3', whatever that may point to, though
the gate will only use a versioned variant (currently
'functional-py36').
This should free up a significant amount of resources from the gate and
let us start using Python 3 idioms in our code. Win-win.
[1] https://governance.openstack.org/tc/resolutions/20180529-python2-deprecation-timeline.html#python2-deprecation-timeline
Change-Id: Ie1a0cbd82a617dbcc15729647218ac3e9cd0e5a9
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This has been unused since I4630066731f12c42091ddf9dd3159e0494df88b1,
which converted the 'nova-lvm' job to zuul v3 native format.
Change-Id: If9e2eb3bbda53c71846e8a08ad507d3faa07722d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We dropped the tempest-full python2 job from our zuul config awhile
back with change I93e938277454a1fc203b3d930ec1bc1eceac0a1e. Since we
track ceph job health by how its failure rate compares with our basic
tempest full job, this updates our config to run the python3 version
of the ceph job by default and drops the python2 version of the job.
Change-Id: I92e01b896751f7f29a0b2b826c33cb2c74b8ced4
The tempest-slow-py3 job is, well, very slow. It takes
over 2.5 hours sometimes to complete. There are a few
reasons beyond it just running slow tests but it runs
all slow tests serially and for nova it's testing things
we don't care about like network scenario tests like
test_slaac_from_os. The one benefit we get from running
tempest-slow-py3 is that it's multinode and there are
certain slow test scenarios for multinode that are
important for test coverage.
This change drops the tempest-slow-py3 job from our
job list and changes nova-next to be multinode. The
nova-next job runs a select set of tempest compute API
and scenario tests only and runs them concurrently, which
in the gate is 4 workers at a time. The nova-next job
will take a bit longer since we have to setup the subnode
now but overall it should still be faster than the
tempest-slow-py3 job and we'll save on one more node
required from nodepool to run jobs against nova changes.
The USE_PYTHON3 variable can be dropped from the nova-next
job definition now that it extends tempest-multinode-full-py3.
Depends-On: https://review.opendev.org/690469/
Change-Id: I1b7d71e833bf0743f22d7fa0241c9d1bbcd0faac
opensuse-150 nodeset is referring to openSUSE 15.0, which is still in
maintenance but openSUSE 15.1 has been released already. "opensuse-15"
is going to refer to the "latest openSUSE 15.x" build released and
working for OpenStack going forward, so add this nodeset and use
it by default going forward.
The new job tempest-full-py3-opensuse15 use the opensuse-15 nodeset,
change tempest-full-py3-opensuse150 to tempest-full-py3-opensuse15.
Change-Id: Ida6b3f115d987b85e811be246468acd290f6c911
Changes to docs to handle redirects like [1] should not
trigger functional jobs. Note that functional-irrelevant-files
does not just blindly ignore all changes to the docs/* path
because we do need to run functional test jobs for changes to
doc/notification_samples.
[1] Iad18f355a20261313ddb3dafd302ed66ebca64bc
Change-Id: I4c2cb97de1fc8e1ed80fa22680621fd4f6390cfd