On a running galera cluster, we don't want to unintentionally allow a
galera_cluster_name from changing. This will cause a cluster to fail to
start (if the nodes are restarted sequentially) as the cluter name value
has changed.
To ensure we can still change this value, a new
"galera_force_change_cluster_name" variable is added, which can be set
to "True" in order to change the cluster name.
Change-Id: I8bae038bd207a15d5731b9c91b78df851a4c1986
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: I5aad324d7ac6535e35d635b58599f6a54436da5b
Related-Bug: #1620849
While working on https://review.openstack.org/#/c/320542/, galera
was found to be listening only on IPv6 addresses. Connections to
::1 worked fine, but connections to 127.0.0.1 failed.
This patch ensures that galera is listening on all IPv4 and IPv6
addresses.
Closes-bug: 1620793
Change-Id: I1ddae03343b6fe9542b6118810cc55108d4417c0
Add architecture-specific location support for percona-xtrabackup
and qpress packages to fix limitation of hardcoded amd64 packages.
Change-Id: Ifa9d53a91f6ae7d497045fa4e7558c1b7c4d53a8
This change enables log collection within the gate so that further analysis
on gate tasks can be performed post build. This is very useful when
debugging problems.
Change-Id: I79d98754d50febdf9b8f39f412a2e9fa1c10c36a
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This changes how several fields using ansible_processor_vcpus are set to
work around a bug in Ansible where ansible_processor_vcpus is reported
as 0 on ppc64le today due to issues with /proc/cpuinfo format differences.
An upstream fix has been proposed at [1].
[1] - ansible/ansible#16533
Change-Id: I49a024aa2165db6501d9e26d09d7940cb0531bd4
In order to make it easier to differentiate between the lists of
python packages, distribution packages, downloaded packages,
package pins and other similar variables the variable names are
being changed to ensure that they have a more explicit suffix
that defines the purpose and makes the naming more consistent.
This is to facilitate a lookup plugin which will be able to look
up all the package lists and present them as a consolidated piece
of data which may be used for artifact preparation.
Change-Id: Iba040bf8da6ec0552fcf7d10022094dc57d312bc
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: Iad37e0a7a762e87a284d97dba09483b953c51b5d
Some Linux distributions, such as CentOS 7 and Xenial, have trouble
validating SSL certificates when using get_url with servers
that use Server Name Indication (SNI).
This patch adds those packages to the list of required packages and
uses bindep to install them in developer test environments the same
way that the gate tests install them.
Change-Id: Ib43145a80fbe3c65d1f2720225da92ea1e978bc5
This adds python packages required for SNI support to ensure that tox
installs the packages into the venv when running tests.
Change-Id: Ic3b2f300e8f45255b4966f3f1cdb4d80ad799098
Using the --compact option with xtrabackup has been shown to cause
crashes when used during an SST to transfer data between nodes:
https://bugs.launchpad.net/percona-xtrabackup/+bug/1192834
Based on DBA advice, we are disabling this option.
Closes-Bug: #1590166
Change-Id: I23fd5e36b74163fe97cf983cdc4b1d5678d94e7b
The plugin repo needs to be cloned for ansible-lint to
understand ansible plugins. The commands currently
reside in tox.ini under the ansible section and are not
currently included. This commit fixes that error.
Change-Id: Ib64c9e266469ada11d6534e07ad93ab8906af2eb
The current method of installing the distribution packages required is
set in the tasks and cannot be changed by a deployer.
Currently the apt task always installs the latest package. This results
in unexpected binary changes when a deployer may simply be trying to
execute a configuration change.
This patch adds the ability for a deployer to change the desired state
so that the results are predictable.
Change-Id: Ifefa11da81b59084c238a8264fec9f0018dfe23d
The 'docs' tox target executes the doc8 lint test which may result in
failures when testing documentation builds, but OpenStack-CI does not
execute that tox target.
In order to ensure that we catch all standard documentation syntax
errors and prevent them from merging, this patch includes the docs
target in the 'linters' chain of tests.
Fixes for any failures which result from executing this test are also
included in the patch.
Change-Id: Id23f9d262a1a18230f797c5aaecc76e627d0998a
This changes the default repos scheme to use the upstream
default which is "http" instead of "https". This change is
in support of enabling packages to be cached instead of
proxied which will improve the speed of deployment.
Change-Id: I15111e60cb3e7e57ce4adabf870ff9d8c7d64f29
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
With the implementation of https://review.openstack.org/321331 the
human_log callback plugin is now part of the plugins repo.
This patch removes the retrofitted version in tox in favor of using
the version from the plugins repo instead.
Change-Id: I046226445257466da85f0f54872c26ccd91989af
In order to prepare for the move of detailed configuration
content from the install guide to the roles, doc8 checks
are being implemented in the roles to ensure that any new
content submitted is properly checked.
Change-Id: I4c1be882868247a3a4d8795246f0b22dfa381837
Partially-Implements: blueprint osa-install-guide-overhaul
This patch updates the sphinx configuration for docs and releasenotes
to make it easier to replicate across repositories and to comply with
pep8 testing without exceptions.
Change-Id: I0020d055b9f867cbd1df1c004bb77ba24f0e7d5d
In order to prepare for implementing requirements management by the
OpenStack requirements management process, and to improve the
reliability and effectiveness of test execution, this patch implements
some changes to the tox configuration:
- The minimum tox version is increased in order to be able to use
constraints for the python packages.
- The OpenStack upper-constraints are used when preparing the test
venv for the linters checks.
- Any proxy environment variables set on the test host are passed
into the venv to enable testing from behind a proxy.
- The environment variables used by Ansible tests are moved into
a new venv called 'ansible' and this environment is inherited
by all Ansible-related tests.
- The docs test will clean-up an existing build directory before
executing the docs build.
- The releasenotes build cannot use upper-constraints at this point,
so it doesn't.
- The Ansible role download will no longer ignore errors so that any
problems discovered will result in a failed test.
- The human readable logging callback plugin is implemented for
functional testing.
- The ansible test requirements are moved into tox.ini to ensure
compliance for requirements.txt/test-requirements.txt for the
global-requirements management contract.
- The ~/.ansible directory as a whole is not deleted. Instead only
the plugins and roles folders are deleted to ensure that zuul's
Ansible artifacts are left in-place.
- The ansible-lint version is updated to support execution against a
folder, and the test now executes against the entire role to ensure
that it captures all applicable files for lint testing.
This is a combined port of the following:
- https://review.openstack.org/323507
- https://review.openstack.org/338193
- https://review.openstack.org/332443
- https://review.openstack.org/338193
- https://review.openstack.org/339493
Change-Id: I44d9a6f75c582924c509c24acc070bbbb817aaaa
There can be issues during database migrations when a column used as a
foreign key is using a different collation between the parent and
child table.
Update the my.cnf template to set the server default collation to
utf8_general_ci to ensure consistency between tables initially
created with and those later altered to use the utf8 character set.
This matches both the instruction from the OpenStack install guide[0],
and MariaDB's default for the utf8 character set[1].
[0]
http://docs.openstack.org/mitaka/install-guide-ubuntu/environment-sql-database.html
[1]
> SHOW CHARACTER SET WHERE CHARSET = 'utf8';
+---------+---------------+-------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+---------------+-------------------+--------+
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
+---------+---------------+-------------------+--------+
Related-Bug: 1594195
Change-Id: I8507b6c9bd058bb308cc089f3802e52e24bea324
A new release of flake8 is causing lint faiures. Our requirements
should match OpenStack requirements anyway.
This patch pins to the current master requirements from the
OpenStack requirements repository using global-requirements.
Change-Id: If99c8d22742b5540073368e57ad241d87fc74404
As discussed during the Newton design summit, we
agreed to adopt the role documentation pattern laid
out in the os_keystone role
Change-Id: I6a01800a1734872495a60a19de64d3c835574db6
Updates the multi-distro framework to add CentOS7 support.
Depends-On: Ieadcdd70e9b8271aee3880896255a5037f56567e
Change-Id: I7e889ea4653a6972ea7f8208416fc1fc3db45e5c
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This commit implements support for Ubuntu 16.04 Xenial. Changes
include renaming several variables from galera_* to percona_* for
clarity. The reason for this change is that 16.04 will be using
distribution provided packages for percona-xtrabackup.
Mariadb 10.0 packages are available for Ubuntu 16.04, so those
packages and installations procedures will remain unchanged.
Depends-On: Iab5485529cf14933fd7f37430d234a5c41185c18
Change-Id: I4baeb2eddf137619ffedba2f9efd61b7bd142f92
Previous versions of OpenStack-Ansible allowed
for upgrading Mariadb from version 5.5 to 10.0.
Mitaka assumes Mariadb version 10.0, thus the
upgrade check is no longer needed for gate
testing.
Change-Id: I589b3849e52ab4d6810f16588c733aed4d17b6b2
Add the galera_apt_pinned_packages default variable which is passed to
the apt_package_pinning role, instead of a template within this role, to
pin the MariaDB repo.
Change-Id: Iea8b002b57fa72230056656f42eaa75e84e9b5a6
Currently all pip install tasks only require the package to be
present. This means that when an environment undergoes a minor
upgrade the package is not upgraded to the same version that
was tested with. This ultimately results in a deployed
environment that does not match the tested environment.
While for the services installed into venvs this is not an
issue, it does affect those which do not use venvs and any
packages which are installed outside of a venv or on top
of a venv.
This patch changes the behaviour to ensure that the install
task will always use the latest available package. In
developer_mode this will mean using the version specified
in upper-constraints, and in an integrated build this will
mean the version which is available in the wheel repo's
folder for the tag.
Change-Id: I90a044e142829ea90bbc81cdda5a2a257fe8de22
Paramiko version 2.0 has been released. It now uses the Python library
cryptography. Installing this requires additional system packages. This
commit adds in the appropriate packages required by cryptography based
on its documentation [1].
An alternative approach would have been to constrain the version of
Paramiko however the project describes the 1.x versions as relying on
insecure dependencies [2].
[1] https://cryptography.io/en/latest/installation/
[2] http://www.paramiko.org/installing.html
Change-Id: I3342166dc5c66c7a1773330c6ce47dafd7ff5535