Move service to use uWSGI role instead of iternal task for uwsgi
deployment. This aims to ease the maintenance of uWSGI and speedup
metal deployments as the same uwsgi environment will be used
across all services.
Depends-On: https://review.opendev.org/678025/
Change-Id: Ieac6d03a436f6b706d7f12e292ffc98171a43246
The connection plugin no longer falls back on using the
inventory_hostname as the container_name. Set container_name as a host
var for each container in the test inventory.
Change-Id: I61349ccb4846f4e4c382dee910f48ec872d053cc
Now that we're using the general templates, we can slim down
the role test definitions. We can also remove tests which are
not being watched, or which are fundamentally broken. With
this we can also remove unused scripts/plays.
We do the following:
1. We remove the 'ssl' job, given that the person working on
that is no longer doing so, and no-one else has picked up
the work.
2. We remove the 'upgrade' job, given that it's been broken
all cycle due to the way the job executes and we need to
regroup to figure out another way to do it.
Change-Id: I28ff7b95d3b2cc064c59c9966e9c25c7ad9184da
There will be no Rocky packages for Xenial so there is little point
in testing Xenial against current and upcoming releases. As such,
lets switch to Bionic. This also makes the functional jobs in Bionic
voting again.
In addition, this change switches to use smoke tests only because
there is no upstream coverage to use the cinder_tempest_plugin which
seems to have some broken jobs.
It seems that we're currently configuring the LVM config after
the service is setup which can cause it to go up with missing
LVM configuration.
This moves the tasks up so that the underlying storage is prepared
before the service is installed and deployed.
This is a squashed commit that covers a few topics because dropping
the Xenial jobs fails because the cinder_tempest_plugin tests
are failing. Also, the LVM config running later seems to cause
the process to spin, possibly causing some troubles for RabbitMQ
connectivity.
Depends-On: https://review.openstack.org/#/c/591966/
Depends-On: https://review.openstack.org/#/c/591968/
Change-Id: I592691358f8dc587182052f9a079886dfc442744
Our role tests execute as non-root users, and the roles
need to access the environment variables for that non-root
user. Ansible, when targeting localhost, changes to
'connection: local' and thus breaks everything we need
to do against localhost as root unless we use 'become: true',
but we if generally use that against remote hosts we lose
the environment variables for the non-root user.
As such, we switch the inventory to target 'compute1' instead,
which has the address '10.1.1.1' (br-mgmt), so that we do not
have to deal with the implict connection type changes implemented
by Ansible.
Depends-On: https://review.openstack.org/584033
Change-Id: I738e4ca31cd4d465d7e7eee3de052a40f7b1596a
With the more recent versions of ansible, we should now use
"is" instead of the "|" sign for the tests.
This should fix it.
Change-Id: Ifec8022a02b0a5f259cadf5eb65ab74c51df3e73
In order to reduce the packages required to pip install on to the hosts,
we allow the service setup to be delegated to a specific host, defaulting
to the deploy host. We also switch as many tasks as possible to using the
built-in Ansible modules which make use of the shade library.
The 'virtualenv' package is now installed appropriately by the openstack_hosts
role, so there's no need to install it any more. The 'httplib2' package is a
legacy Ansible requirement for the get_url/get_uri module which is no longer
needed. The 'shade' client library is not required any more now that we're
installing it via openstack_hosts. As there are no required packages left, the
task to install them is also removed.
We still need to implement the openrc file on the target host for the cinder
backends and qos tasks. Those use the cinder venv so we don't need packages
installed on the host for them - we do just need the openrc file. Once these
shell tasks can be replaced with os_* module tasks we can change the
implementation to use them and remove the openrc role execution.
Depends-On: https://review.openstack.org/579233
Depends-On: https://review.openstack.org/579959
Depends-On: https://review.openstack.org/580156
Change-Id: Iaf3084f597be0585cbd712bbdb9aa826c1f0c1eb
This introduces oslo.messaging variables that define the RPC and
Notify transports for the OpenStack services. These parameters
replace the rabbitmq values and are used to generate the messaging
transport_url for the service. The association of the messaging
backend server to the oslo.messaging services will then be
transparent to the cinder service.
This patch:
* Add oslo.messaging variables for RPC and Notify to defaults
* Update transport_url generation
* Add oslo.messaging to inventory
* Add release note
Depends-On: If4326a6848d2d32af284fdbb94798eb0b03734d5
Depends-On: I2b09145b60116c029fc85477399c24f94974b61d
Change-Id: I6b29b89c80889eff34fe78674cd888ea9d398388
Now that the cinder tempest plugin has been fixed [1], we can
continue using the head of the master branch for testing
purposes.
[1]: https://review.openstack.org/#/c/572152/
Change-Id: Ib8eec3aeaf3de99292d46f2353053372470fc1bc
Now that run_tests.sh handles the tests repo clone, we can
remove the use of the older tests-repo-clone.sh script.
Change-Id: Iafee46b7293a82f0c9715603be76658a181898db
In order to ensure that the updated role is used for tests,
we adjust the a-r-r file to pull from the correct repo.
Change-Id: I3f8b26b942be84fac20f26291c4fabfaf6d86f89
In order to allow tests to work as the use of the common
role is implemented in the various roles, we pre-implement
the addition of the role into the a-r-r file.
Change-Id: I4f320eea58d4add1b351c78c61300c621ab7f882
Implements: blueprint python-build-install-simplification
Signed-off-by: Jesse Pretorius <jesse.pretorius@rackspace.co.uk>
In order to allow tests to work with https://review.openstack.org/551028
merged, add the role to the a-r-r file.
Change-Id: Ieecfb5d04e234672632b4f57252367745141c821
When doing the role upgrade, we run every playbook with current's
branch ansible. This is normal for the infrastructure bits (which
are running on current branch), but not for the installation of
the previous branch's role, which should use previous branch's
environment.
Depends-On: I7ebb045885dd645b820de2b7f75b46c755c015f6
Change-Id: Ied3168a4a2df385f8cba8f89b2efab208e639e55
Related-Bug: #1741471
openstacksdk was updated to 0.10.0 which has a different
connection.Connection object, which doesn't take our auth_url.
We should respect the constraints, install the tooling in a venv,
and restrict to a known version of the sdk until more robust code
is written.
Change-Id: I0fb7872dbc2c295616c319cd7e373dd8e868b028
Depends-On: Ia78ea53a99923844f40fb4e9fe22ec0da4b0c335
We are already collecting logs as part of the post-run playbook so we
don't need to do that as part of the exit trap. This avoid collecting
and compressing the logs twice.
Change-Id: I6e6a232a213f0951f3d5fff8b4efac5898ce6d76
This changes the a-r-r with the proper version, and fixes
the repo path for role upgrades:
The role will, during test-upgrade-pre, have its current branch
checked out, and will deploy the current branch infrastructure,
including the generation of the constraints.
Then, the installation of previous branch of the role will use
the constraints for its previous version, but will have no
constraints for it, and fail.
We need to generate the constraints for the previous version too.
This should do it.
On top of that, we needed to update the work for Zuul v3:
This implements the initial OSA zuul v3 role jobs.
This patch implements an initial set of jobs intended to match
the current job execution method. It does not intend to improve
how the jobs are executed - only to replicate what is currently
in openstack-infra/openstack-zuul-jobs and provide the platform
to iterate on.
Change-Id: I2d455e9a47c85b77655e3b55847cf45959901b77
Moves the ceph_client role execution inside the os_cinder role
instead of executing it at the playbook level.
Change-Id: I620552d7de367d89a99d1622a4e0c89e78336e86
Currently the LVM2 package is installed by the
openstack_hosts role for the integrated build,
and by a test playbook for the role tests.
This does not seem sensible to me - it would
be better to ensure that the role installs the
distro packages it need in order to function
properly.
Additionally, it is not possible to setup a
loopback device inside an LXC container after
some recent updates to LXC. The secondary
cinder-volume service for LVM2 therefore
does not work, so it is removed from the
inventory to buy some time to come up with
an alternative solution.
Related-Bug: 1698831
Change-Id: Ie8a84a0412989c64fd896e8d781b8e9b2c153556
When executing the tests repo clone in OpenStack-CI,
use zuul-cloner instead of git to enable cross-repo
testing. This ensures that if a dependent patch from
the tests repo is noted using 'Depends-On: <change-id>'
in the commit message, that patch will be included.
Change-Id: I0cd0a96c5a22837f854c350985fd9b6ede2ca9cc
Depends-On: Idce7abebf32f24c356a27e099fbca954d917402b
'ansible_become' defined as a host_var or in the inventory for a host
has a higher precedence than 'become' defined within a playbook.
In change Id5b76a87809f03951c954fc3d752419a673403f7, 'become' was
defined explicitly for each play running against localhost so
'ansible_become' should be removed from its host_vars.
Change-Id: I50d04fc27d3ef2aa806a9d1e22c3149df8d87e67
The cinder upgrade job needs to run with the os_cinder-overrides.yml
overrides file otherwise the tempest tests that run will be too wide and
expect services that are not available (e.g. nova).
Change-Id: Ifadac49447edf2e0fd33fe04974386b2d6256935
This will separate out the runs so that variables and modules are not
re-used across runs - ensuring the latest modules and versions are used,
and ensuring multiple versions of the tests playbook aren't required on
non-upgrade runs.
Change-Id: Ie1885ae20a87f27805d3e0c92adba16510c71b1c
To avoid requiring all the os_previous_cinder tasks to be evaluated, we
should split the 2 tests up. This will help make the gate more efficient
and avoids unnecessary issues.
Change-Id: I861764c498618cf644c06b212cf789fe8aa6b3d4
Combine all cinder_volume host's "cinder_backends" var to ensure all
cinder_backends are created, and there is no race condition setting up
the same backend for multiple hosts (e.g. rbd backends which exist on
multiple volume servers).
This adds a second cinder_volume node for testing, with a new backend,
as well as the old backend - this should ensure duplicate backends are
not created whilst backends are created for each cinder_volumes host.
Change-Id: I1c2fb1ef07423fc415622767ff09f058c773c1ed
Closes-Bug: 1649914
Implement upgrade testing for os_cinder role.
This patch adds an upgrade testenv, which configures a previous version
of Cinder, and the test-vars from the previous stable branch to be used
by the previous version of Cinder.
We don't run functional tests after the initial stable/newton deploy
because a working stable/newton branch is already tested, and it's
assumed it worked if the upgrade works too - which is more
efficient.
This follows the pattern setup for Keystone in:
https://review.openstack.org/#/c/384269/
Change-Id: I674fe8cefac6f487c766d51f874f1b43468cdaaa
Implements: blueprint upgrade-testing
This patch consumes the centralised Ansible test scripts
implemented in https://review.openstack.org/381853
The unused and empty tests/cinder-overrides.yml is
removed.
Change-Id: Ibb811774e5b2b87d2bb41b4c2290c3d8ef4d81e6
This PR standardizes the testing around the central tests repository:
* Removes the install-cinder and prepare-vg playbooks
* Moves the inventory settings into host_vars
* Adjusts the "bridges" settings
* Standardize IP addresses on the 10.1.1.0/24 range
Change-Id: I91c8079b033bb83e0175a3ab4b1c020a8df4a0db
Depends-On: Ibe2bcd91af9eac099e86e92f9294ed04fffe7b95
Co-Authored-By: Major Hayden <major@mhtx.net>
Change-Id: Ic59abac5d7f15da37748d5b9121b74cd8e75d3c3
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
According to upstream bug[0] a volume_type must be specified when
creating a volume. Since tempest does not provide a volume_type this
patch defines default_volume_type and sets it to lvm.
[0]: https://bugs.launchpad.net/cinder/+bug/1610073
Change-Id: I801cc3d3b846e0be3b777a57753e01406d3273d2
Closes-Bug: #1611937