These jobs simply switched the webserver from nginx to apache using
a tox environment with keystone_web_server=apache. The integrated
tests now only support apache as the keystone web server so these
jobs are now redundant and are not providing any additional value.
Change-Id: I125bfc478a644ae03fc32be2609198f425132356
This repo is now testing only with Python 3, so let's make
a few cleanups:
- Remove python 2.7 stanza from setup.py
- Remove obsolete sections from setup.cfg
- Cleanup */source/conf.py to remove now obsolete content.
Change-Id: I601d900d4c34565e08d121f4100ebd3b1140b991
1. Sphinx 1.8 introduced [1] the '--keep-going' argument which, as its name
suggests, keeps the build running when it encounters non-fatal errors.
This is exceptionally useful in avoiding a continuous edit-build loop
when undertaking large doc reworks where multiple errors may be
introduced.
2. Remove the unnecessary blank line for tox.ini
[1] https://github.com/sphinx-doc/sphinx/commit/e3483e9b045
Change-Id: I5139d075a38173da530c20f17c12bcdcc2997e9c
This patch adds a `pdf-docs` tox target that will build
PDF versions of our docs. As per the Train community goal:
https://governance.openstack.org/tc/goals/selected/train/pdf-doc-generation.html
Add sphinxcontrib-svg2pdfconverter to doc/requirements.txt
to convert our SVGs.
Change-Id: Ie55900a7a2b3f3696588100137847f1950cf72e2
Story: 2006105
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.
We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.
We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.
Change-Id: I36b010f4b0db7b2dbe934d4ab5752ea7c0be2d54
Closes-Bug: #1801657
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.
We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.
We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.
Change-Id: I8ebfb68409bd4d36ad878cf55de86b2480a0fa47
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
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.
3. We promote the distro_install jobs, given that they are
all now working.
4. We promote the centos apache/uwsgi functional test, given
that it is working consistently.
Change-Id: I67e0d8f4ab52449a80adb5c479faefbc83617025
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: I22858a6c834ed4bcec0195d84e804f190d574e0b
Needed-By: https://review.openstack.org/579371
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.
We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.
We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.
Change-Id: Iba5a6c6137e512da637444940738f5084b99764e
Using tox for requirements management requires in-repo
requirements files for all our repositories. Rather than
do that, we make use of the tests repo to capture our
common requirements and use this to install them.
This reduces our review requirement rate and simplifies
maintenance for us for the tox config. It also makes it
usable with 'Depends-On', which is marvellous!
The tox requirements definitions for docs/releasenotes
builds are left in-place as those are standard entries
across the community. If that changes at some point, we
can re-assess those entries too.
Depends-On: https://review.openstack.org/579208
Change-Id: I091d64250ac36037ed294dee015fffd5d57f266e
Distributions provide packages for the OpenStack services so we add
support for using these instead of the pip ones.
Depends-On: I5a78e2120e596d36629b4ba978b2b5df76b149b0
Depends-On: Ib64dcbc960df7d369d202ce8cf7bdc29b3ee0e0a
Depends-On: Id9dd2dea146709414ab9ce8d439f1587e6776fd4
Depends-On: I2ba89e25c0010c9a5b515a3d0c9c731b30876e74
Depends-On: I0442b0aa94c3d0882d1118ad0c824d123bd21c88
Change-Id: I26848678dd07a409ef3e159cffb4ba6f0a228ab4
Implements: blueprint openstack-distribution-packages
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: Icee36c34ecbdf5e3190c5839b00b1fa606763fa7
In order to allow the use of the environment variable which informs
Ansible which user executed the playbook, we pass the USER env var
into the environment that tox builds.
Change-Id: I4a62659c97fa79bec7c002fdcd47a953f523f5d9
Implements: blueprint python-build-install-simplification
Signed-off-by: Jesse Pretorius <jesse.pretorius@rackspace.co.uk>
When 'keystone_galera_use_ssl' is True, use an encrypted connection to
the database using either a self-signed or user-provided CA certificate.
A new non-voting test has been added to verify that the role remains
functional when enabling SSL features.
Partial-Bug: 1667789
Change-Id: I0f8c62412e088ebb9b0ed21f7ce707b14f69d62a
Depends-On: I95cc994df5118fce7ce588fc0bff979bc283a6f3
Nginx with uWSGI has been the default keystone deployment since Pike.
The uw_nginx jobs should be no different than the functional jobs at
this point, but they have been incorrectly using the uw_apache tox
environment anyway.
Change-Id: I73c01b9899819da96f51744d5fba12a05bb7ec2c
This patch implements the use of uWSGI exclusively,
always with a web server acting as a reverse proxy.
It removes the option of using uWSGI with Apache
and mod_wsgi.
In the case of Keystone being used in a Federated
Service Provider configuration, it will use Apache
as the web server but for all other environments
it will use Nginx instead.
Change-Id: If6e95fc0d3f7d34780db1aed2b8cedca87499934
Currently the role tests use whatever versions of pip,
setuptools and wheel are already installed on the host.
When a version of these tools changes it often causes
problems for our testing.
This will ensure that we use a known good set of pins
which is maintained in the general SHA bumping process.
Change-Id: Id5e66a1a2541eba0b98f9ca9d67038a22caf0c40
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: I516017d8d817d98a2b53d970ef93681ca7e969cf
Depends-On: Idce7abebf32f24c356a27e099fbca954d917402b
This will separate out the runs so that varaibles 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: Iacaf5919a468cf267418718fdac5c270674a3454
During upgrade testing, move Keystone containers behind an HAProxy
load balancer and run a benchmarking tool to make continuous requests
against the keystone API, providing summary output at the end of the
play. This should help ensure the upgrade process between releases
remains without downtime.
To avoid service interruptions because of files being replaced during
installations:
- set the 'keystone_venv_tag' var so that it changes between releases
- perform the 'Create WSGI symlinks' task only after the files being
linked to exist
Benchmarking scripts were provided by:
https://github.com/lbragstad/keystone-performance-upgrade
Co-Authored-By: Lance Bragstad <lbragstad@gmail.com>
Change-Id: I462e6496f125c7e263bbab188e86c45e1f4f7f1e
We're running into failures on stable/newton:
https://review.openstack.org/#/c/423201/ which seems to be related to
the tox job name. To be safe lets reduce the names of these jobs.
Change-Id: I351f3f0992c6b9b13c19ab545e4c05b35b1b4d13
Depends-On: Ia803b95903005bbb318c9c96ba4e3b2f83f41c0b
To avoid requiring all the os_previous_keystone 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: I391bddea8f5af67c73ed5c9fc85eb9a81643c88f
Ansible 2.2.1.0 requires included vars files to exist even if the
task/play that includes the file is never run (based on a conditional).
This patch fixes that by ensuring the "upgrade" previous version of
test-vars is fetched for every test.
Change-Id: I01ee3c434343868c88f610ce40e77f5621ffa071
This patch implements upgrading keystone with zero downtime as the
default installation process. Handlers have been modified to ensure that
the first keystone node is stopped, facilitates the database migrations,
and that it is started and available before restarting any other keystone
nodes. Migrations also now only occur when there is a change within the
installed keystone venv.
This process is documented at
http://docs.openstack.org/developer/keystone/upgrading.html#upgrading-without-downtime
A new test scenario has been added for testing basic upgradability
between releases.
Implements: blueprint upgrade-testing
Change-Id: I0d3cfcb80b64d005d60f4c8445f991855f844796
With the implementation of https://review.openstack.org/388087 all
tox targets may now use upper constraints.
Change-Id: I9cec231921430040977730dceefae28c34da1b97
This patch consumes the centralised Ansible test scripts
implemented in https://review.openstack.org/381853
Change-Id: If66de2e76c530ded122fce3aaca127adc02840c1
This patch consumes the test scripts implemented by
https://review.openstack.org/375061 to ensure that
the tests and test preparation is consistent and
more maintainable.
Change-Id: I6f05ec7046d5613804fa8b4c2fb9323370239da0
The volume of logs we collect in CI jobs are extensive. This
patch ensures that the logs collected are compressed to reduce
the space taken in CI systems.
PYTHONUNBUFFERED is also set to ensure that the console log
from the CI jobs is recorded in the exact order of execution.
Change-Id: Ia37c4fe369dd8ce9d49c21a46c575707b1826d46
Related-Bug: #1620849
Move to use the central test repository. Including a few changes to keep
consistency when moving.
* Change network range to fit into recommended infra ranges.
* Include memcached for future keystone testing
Change-Id: I6c79f291a5893d910a6dd743b39a01c7fac11bdb
Due to the length limit for the shabeng line [1] the execution of
these tox targets in OpenStack-CI is failing (the full shebang
length is 130 chars).
This patch shortens the names appropriately.
[1] https://github.com/pypa/virtualenv/issues/596
Change-Id: I9011eac714e40d33baff7c1a1fc6eb0fdf47df55
A tox target to test Apache with Uwsgi is introduced.
A release note summarizing all Uwsgi and Nginx feature work for this
blueprint is included.
Change-Id: I5c89e4d9925a3077111aabe85aaa6f6eaa944848
Related: blueprint keystone-uwsgi
This allows deploys to elect to have Keystone run off of Apache
without implying the use of mod_wsgi, such as with uwsgi. A
following patch will introduce the Apache configuration needed to
link Apache to uwsgi so that existing Federation support can be
used.
Release notes summarizing all changes for this blueprint will follow
in the final patch in the series.
Change-Id: Idf9e48b0c93174648982cf27cf922d3801565c74
Related: blueprint keystone-uwsgi
This change implements CentOS 7 support within the os_keystone role.
Depends-on: I333fb1887339e8dc9ebf10ff137dda3cff629dc0
Change-Id: Ib339cd0657f7008fa48bf74f8d6ddd4b8add2ea1
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
New func_uwsgi-nginx test scenario that will test keystone installed
with uwsgi behind nginx.
This will start off as experimental but can be used to test the final
nginx solution as it is finalised.
Change-Id: Id5ec7b1895b51232aacf1c86e564563de6c21d3f
Related: blueprint keystone-uwsgi
As per [1] all linting tests can now use upper-constraints. This patch
removes all instances of the install_command override relating to lint
testing which were needed to negate the use of upper-constraints.
[1] http://lists.openstack.org/pipermail/openstack-dev/2016-August/101474.html
Change-Id: I51a1d62524c2ec88b31a8ca2ed9c9acbe5790f75