ansible_python_interpreter is now set to auto in the tests repo.
it doesn't need to be overwritten in the test anymore.
Depends-On: https://review.opendev.org/734676/
Change-Id: I8d6f16733374e4682c107c4917ab02b814b41f65
This patch aims to migrate service from usage of regular syslog files
to journald.
By this we mean dropping rsyslog client installation. log_address is set
by default to /dev/log, which is served by journald.
Change-Id: I6dd0d77004394bb1ad674b53538b0679b056bb0f
The swift3 middleware has been deprecated in replacement with the
s3api middleware instead. This removes all the swift3 references
to hopefully enable someone to cleanly add s3api eventually.
Change-Id: I3a8a1ab861ec81b1f4f8dbc02a6a332d4ce495b8
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: If28f2586017c3813afd4260533c16e4390cebc04
In https://review.openstack.org/601060 we removed everything
related to the upgrade tests, except the 'previous' role.
Change-Id: I99aad1c3c4ec342c2997b2e59289d60304f1c81a
Now that we no longer use our own keystone module, but
instead make use of the ansible runtime venv's shade
library and upstream ansible modules, we can eliminate
this package/library being installed on the host.
To do this, we also ensure that the functional test
now uses the Ansible runtime venv for all OpenStack
modules, and we use the native Ansible OpenStack
modules instead of our own.
Change-Id: I0ecb55308a846ad0f1bb05c10b9e0aad3da15449
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 '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. The associated
scripts are also removed.
2. We remove the 'pypy' tox target. The job was removed some
time ago, but the tox target left behind. The associated
inventory is also removed.
3. We remove the 'multireg' jobs. The jobs have been failing
for some time and are very complex. If multi-region tests
are re-implemented, they should be done in a simpler way -
probably best using multiple nodes, rather than trying to
fudge it on a single host with containers. The associated
scripts and inventory items are also removed.
4. We rename the 'func_swift3' tox target to 'swift3', and
reconfigure the job appropriately. The verbose logging for
ansible is also removed, given that we have ARA to provide
decent diagnostic output.
Change-Id: I411fcaac9a1ddf17996d771f13b2de7e775e4a60
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: Ia1c412489554ab629a8ffa8e385a9b634f471861
The rabbitmq/oslomsg groups are now required by the
keystone role, so we add them to the inventory and
ensure that the test playbook install the services.
Also, the multi-region tests are set to non-voting
to unblock the swift repo for other patches to
resolve the issue.
Change-Id: I4e2bbdff7a89b204723e7937667854c412051347
This introduces oslo.messaging variables that define the Notify transport
in place of the rabbitmq values.
This patch:
* Add oslo.messaging variable for Notify to defaults
* Update url generation
* Add oslo.messaging to inventory
* Add release note
Change-Id: I1c2e844c4c7a2256087bcc4521f970ca8e8c6b16
This prevents data to be leaked into the callback plugin.
Some style changes are included to make it easier to read,
the copyright notice is added as it should have been from
the start, and a duplicate retry argument is removed.
Change-Id: I11c3da84fa6469764a19b6a387ef312124dfba2a
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: I7d2961028c2182f3ec763c31dd0bd32badf88944
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: I454279a048efc2cdad8bc143144ecab2a51e125c
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: Ie48b3f33a25a026bf07c98569b6fa72c861a86cc
Implements: blueprint python-build-install-simplification
Signed-off-by: Jesse Pretorius <jesse.pretorius@rackspace.co.uk>
We disabled the erasurecode storage policy for CentOS builds, because
the version of liberasurecode caused issues in some gate jobs.
The release of pike now means that liberasurecode 1.5.0 is setup by
default, which resolves this issue. We should re-enable the
erasure code storage policy.
Change-Id: I96a2609bad7d1bcc9faf85d3561d00c8e047c18a
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: I6346d1d65309de78e6f4fa77f5e880fff6be9b2f
Upgrades use the clouds.yaml instead of environment variables
to test APIs. Swift doesn't have openstack_openrc in meta, and
no role that applies to localhost in the whole functional test
path has it. So we have to include openstack_openrc role.
Change-Id: I5196ab338659c65a6a3b7ac03095bbfb1e26c0a8
The upgrade tests are very noisy since Ansible verbosity is set too
high. This makes debugging problems very painful so drop the verbosity
level and let users increase it if desired.
Change-Id: Id256efff664c58d62aaf7b9e23c7df6953032573
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: I7069c906395b37e8af20db82d88d8a069faf5f79
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: Ibcfe3d69705833b0c743e6303feb351a464abdcf
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: Iacbdd102e8889ae09ee2c93e300a87ba4ffc4842
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.
This patch also 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: I4aa7591c931501490e706b9d61ba0bc12c006baa
This patch contains five combined improvements.
1) Remove RabbitMQ from the gate
RabbitMQ is only needed in the swift gate if the ceilometer
middleware is being deloyed. This isn't enabled in the gate
job, so let's save some time and deploy memcached/galera
without RabbitMQ.
2) Bindep pyOpenSSL change
This commit also includes the pyOpenSSL bindep change in the
hopes that we can get the swift gate moving along again. ;)
3) Disable erasure code test for CentOS
Due to #1707220 we are running into issues with CentOS 7 running Erasure
Code storage policies on RAX hardware.
This patch temoprarily disables EC testing for CentOS 7, but we can
re-enable that once the package is backported to stable/ocata branch.
4) Pass packages as a list
This patch passes a list of packages to the package module
rather than using "with_items" and it should speed up the
package installation process.
5) Set package state to present
Change-Id: Ic7b13853ce00b0f8ac2181e46e2bd8dea5ce377e
Co-Authored-By: Andy McCrae <andy.mccrae@gmail.com>
In order to do a developer mode that allows installation of packages
from local file, which take precedence over the developer_mode
constraints, we need to allow the order of the constraints to be
changed.
This patch adds a "pip_install_developer_constraints" var which is used
to set the developer mode constraints. By default this will leave the
same behaviour but will allow additional constraints to be added, or the
developermode constraints file to be overriden altogether.
Change-Id: I67f880def4b16e519865cc18937807e80b0b82c8
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: Ie1a48685f48cd5074031d58478a541967a01be42
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: I3b56a8c2df670423a2cb4e473379028e23bb01bd
When running a MR swift deploy we rebalance the ring in quick
succession.
To do this successfully we need to set the
"swift_pretend_min_part_hours_passed" to True. This shouldn't be needed
in a regular deploy, or a deploy where rings don't change.
Change-Id: Ib86dcfbdb5f6346e2c7da67b6bf2b29c62f99dab
Utilize the "ringbuilder.devs_changed" option to ensure that the ring
needs a rebalance. This will prevent unnecessary rebalances that cause
failures due to "min_part_hours" not being passed even though no changes
were required.
Additionally, we can now return a correct Ansible repsonse when the ring
has changed/rebalanced - and return "OK" when it hasn't returned at all.
Change-Id: I1fb4b3544a50ab5f566b3846d616107a84ff29c9
The upgrade path becomes complicated as previous variables are stored
and we have to start a clean run.
The best way to achieve this is to separate the run steps out in a shell
script for upgrades only.
Change-Id: Ib2d2c8bad5241779d52cdc9428d7057c770d2d7c
To avoid requiring all the os_previous_swift 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: I105d0c49f1b5dc78e1e5a5c7334cd81ecc455056
Move to use tempauth to resolve memory issues resulting from an AIO
swift install running in pypy.
This PR adds some options for using pypy:
* Set a pypy Garbage collection value
This PR includes some tempauth fixes to make it useable:
* Set the tempauth users based on a variable
Testing is changed as follows for pypy:
* Use only memcache within swift-proxy
* Remove galera/keystone
* Add swap for swift-storage hosts
* Use tempauth for pypy
* Reduce to 2 swift hosts
Change-Id: Ic1ed5acc9b20853d9a159035226f97fda088f035
Implement upgrade testing for os_swift role.
This patch adds an upgrade testenv, which configures a previous version
of swift, and the test-vars from the previous stable branch to be used
by the previous version of swift.
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: Icefc1c75b814b9d7dc5e79422e975346b9482e9d
Implements: blueprint upgrade-testing
This PR Adds CentOS 7 support for Swift.
The following was required to get CentOS 7 to work:
* Add yum install path + packages
* Variablize rsync service name
* Gather network interface facts prior to setting storage/repl IPs
* Ensure /etc/defaults/rsync is only set for apt installations.
* Ensure the rsyslog service is started and enabled.
Change-Id: Ibaf8bc8d54b55820e8b527b52940c61c05c732d8