Add Leap 15 distro_install job and replace Xenial with Bionic since the
former does not provide packages for recent OpenStack releases.
Change-Id: I946b225cc43f9195f63b064a33392476270f7d32
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
To make the transition between versions easier,
we rename the vars file. This also resolves
issues when meta-dependent role inclusions do
not pick up the correct file when using the
include_vars task with multiple search paths.
Depends-On: https://review.openstack.org/602924
Change-Id: I8d624cde558a9c332f8e90d3269ee4a010191f7e
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
Curly quotes(Chinese punctuation) usually input from Chinese input method.
When read from english context, it makes some confusion.
Change-Id: Id3de03359f2bc10c709a2e5baec96f05409e4d83
In order to radically simplify how we prepare the service
venvs, we use a common role to do the wheel builds and the
venv preparation. This makes the process far simpler to
understand, because the role does its own building and
installing. It also reduces the code maintenance burden,
because instead of duplicating the build processes in the
repo_build role and the service role - we only have it all
done in a single place.
We also change the role venv tag var to use the integrated
build's common venv tag so that we can remove the role's
venv tag in group_vars in the integrated build. This reduces
memory consumption and also reduces the duplication.
This is by no means the final stop in the simplification
process, but it is a step forward. The will be work to follow
which:
1. Replaces 'developer mode' with an equivalent mechanism
that uses the common role and is simpler to understand.
We will also simplify the provisioning of pip install
arguments when doing this.
2. Simplifies the installation of optional pip packages.
Right now it's more complicated than it needs to be due
to us needing to keep the py_pkgs plugin working in the
integrated build.
3. Deduplicates the distro package installs. Right now the
role installs the distro packages twice - just before
building the venv, and during the python_venv_build role
execution.
Depends-On: https://review.openstack.org/598957
Change-Id: Iecb64d28afe3acfbae7060af55c1a891310e5ef4
Implements: blueprint python-build-install-simplification
Signed-off-by: Jesse Pretorius <jesse.pretorius@rackspace.co.uk>
This is a mechanically generated patch to switch the documentation
jobs to use the new PTI versions of the jobs as part of the
python3-first goal.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: Ic2c970f3bc7baff38f72e4deaf9fc9c87271be71
Story: #2002586
Task: #24319
This is a mechanically generated patch to complete step 1 of moving
the zuul job settings out of project-config and into each project
repository.
Because there will be a separate patch on each branch, the branch
specifiers for branch-specific jobs have been removed.
Because this patch is generated by a script, there may be some
cosmetic changes to the layout of the YAML file(s) as the contents are
normalized.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: If3249c7e89ca3a0f65fc340e84d4e2e2c82d16db
Story: #2002586
Task: #24319
The TESTING_BRANCH environment variable is provided by the
run_tests.sh script and is derived from the .gitreview file.
This ensures that once the master branch becomes a stable
branch, the constraints from the stable branch in the
integrated repository will automatically get used once the
.gitreview file is updated.
To ensure that the required environment variables are present
we export them appropriately in run_tests.sh and modify the
tox configuration to pass them into the tox test.
Change-Id: Id3e0021ffe0ee8008bb0c16b7703ae8a5c34f9f4
Needed-By: https://review.openstack.org/579371
This reverts commit 6ee96f224c795e8f4d24b394dc95ccb3bb6d8920.
This variable is no longer referenced anywhere, so we can remove it.
Change-Id: I70a262020918d51b20486cf819dc9131abfce7f1
The python-keystonemiddleware is needed by swift-proxy-server otherwise
the systemd service fails to start with the following error:
[...]
File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 517, in _context_from_explicit
swift-proxy-server[11639]: value = import_string(found_expr)
File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 22, in import_string
swift-proxy-server[11639]: return pkg_resources.EntryPoint.parse("x=" + s).load(False)
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2321, in load
return self.resolve()
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2327, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
ImportError: No module named keystonemiddleware.auth_token
Implements: blueprint openstack-distribution-packages
Change-Id: I2aaddc0c6b3bb5c28eb7f9b45e8d989f2824724d
The use of 'include_tasks' and a loop of variables creates
a situation where a user is unable to use tags to scope the
inclusion of only the MQ tasks when running the playbooks.
The use-case this is important for is when the rabbitmq
containers are destroyed and rebuilt in order to resolve
an issue with them, and the user wishes to quickly recreate
all the vhosts/users.
Ansible's 'include_tasks' is a dynamic inclusion, and dynamic
inclusions are not included when using tags. The nice thing
about dynamic inclusions is that they completely skip all
tasks when the condition does not apply, cutting down deploy
time. However, given the use-case, we should rather take on
the extra deployment time.
This patch changes the dynamic inclusion to a static one,
adds a 'common-mq' tag to cover all MQ implementations,
and re-implements the 'common-rabbitmq' tag for the tasks
that relate to RabbitMQ specifically.
It also implements conditionals for each task set so that
the rpc/notify tasks can be skipped if a vhost/user is not
required for that purpose (eg: swift does not use RPC, and
most roles will not use notifications by default).
Depends-On: https://review.openstack.org/588191
Change-Id: I994ccc0d20e4ec72955e625119a35856a7171ba3
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 keystone client library is not required any more now that we're
using the upstream modules. As there are no required packages left, the task
to install them is also removed.
Depends-On: https://review.openstack.org/582359
Depends-On: https://review.openstack.org/587376
Change-Id: I68f3a0bf2b7a3a12cbf40d7d6a853d5b4c6dd0f3
The integrated build has no value for swift_rabbitmq_password
and yet the oslomsg vars reference it. Given that the integrated
gate is quite hard to merge anything into right now - set a
default value here temporarily until we can merge a fix there.
Change-Id: I8c13fe063cd5ec454196bc630cb6362f97c4f146
In order to have more centralized configuration, switch the role
to use the project-template instead.
Change-Id: I5d3a265ee6fd71c9f47dcd6226b1698eae3c470a
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
There is no record for why we implement the MQ vhost/user creation
outside of the role in the playbook, when we could do it inside the
role.
Implementing it inside the role allows us to reduce the quantity of
group_vars duplicated from the role, and allows us to better document
the required variables in the role. The delegation can still be done
as it is done in the playbook too.
In this patch we implement the new variable:
- swift_oslomsg_notify_setup_host
This is used in the role to allow delegation of the MQ vhost/user
setup for each type to any host, but they default to using the first
member of the applicable oslomsg host group.
We also adjust some of the defaults to automatically inherit existing
vars set in group_vars form the integrated build so that we do not
need to do the wiring in the integrated build's group vars. We still
default them in the role too for independent role usage.
Depends-On: https://review.openstack.org/584630
Change-Id: I3d5e00e090d37ea7aa95460965749ef066b63b23
The 'httplib2' package is a legacy Ansible requirement for the
get_url/get_uri module which is no longer needed.
Change-Id: I420dfd74e78963486ed9d5a66b8c3b72372b5ae6