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.
Change-Id: Iec03bd79279e694678336880460bcb83f68d9780
This patch moves gnocchi-api from usage of apache with mod_wsgi
to uWSGI, which means unification across another roles and
reduced maintenance costs
During migration period tasks that ensures apache won't listen
on gnocchi_service_port are present, but they are supposed to be removed
after train release.
Depends-On: https://review.opendev.org/671988
Change-Id: I06bbcb2f15108fc517742208ac5291719627ffe2
According to gnocchi docs, coordination_url should be placed in DEFAULT section now
Otherwise deprecation warning is shown.
https://gnocchi.xyz/install.html#gnocchi-configuration-sample
Fixed test-install-gnocchi.yml syntax
Change-Id: Ief9073cf2f9c876c4c1a91568aab6a79d22ab626
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: I1ae15cabb5df513c7660825404327b8628b9ba2e
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.
With the dependent patches, the openstack_openrc role is now executed once
on the designated host, so it is no longer required as a meta-dependency for
the role.
Depends-On: https://review.openstack.org/579233
Depends-On: https://review.openstack.org/579959
Change-Id: I4131312eea8c743e7803ccc622b7642c6082a4c8
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: Id63cfb16906b7eeeafc32a6539e988926c39d208
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: I443fb8abbdc75828d51fea36ca05a12d6eee51b7
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: I4ced3207771b4e9b89d876e570a6d6bac16bc99c
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: I651ea676b12f99466325a0ae4032920df7e90655
librados2-dev is need to build 'cradox', from gnocchi's ceph
requirements.
The package lists have also been alphabetized.
A linting error in tests was corrected to unblock the gates.
Change-Id: I91b579ff478c02f40fb1573b433735a6a3794e2b
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: Ifdcbee946cdc838b4b24304dacb1c98c8d78d500
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: Id7c6c3a3256712073fb108a2f458098a853a63a9
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: I6ecdf214fc22916c82c219d02451c32aed9235dd
Depends-On: Idce7abebf32f24c356a27e099fbca954d917402b
Move test host vars from the inventory to individual files for each
host. 'ansible_become' has been removed from localhost's vars since it
should be handled on a playbook basis.
Change-Id: Iff5a80b21d781b73e64a52e7becce08aeaefb92c
Gnocchi moved their api-paste file out of /etc/, but in order to benefit
from template overrides, whilst keeping the default gnocchi
api-paste.ini, we can use it as a source, but use config overrides.
Additionally, we need to specify auth_mode in the gnocchi.conf file,
which should default to "basic" if keystone is not used, although can be
set to "noauth" if needed. "basic" is the new upstream default.
The gnocchi_keystone_auth var is deprecated and scheduled for removal
in the Queen release.
Change-Id: I4e1a28a96f3b6870d9c9e100308aba1bbf294aa0
The *_services dict pattern present in other roles
has been adopted and systemd/upstart service enablement
of the gnocchi-api service is now directly tied to the
state of `gnocchi_use_mod_wsgi`.
Change-Id: Ibc15c37bbd5a1a70b0774a1184b5759e558a0efb
Closes-Bug: #1633205
Renamed in os_gnocchi role repo
Changed test-vars.yml to os_gnocchi-overrides.yml
Removed the test-vars.yml
Change-Id: I62ee2338f6bfeee06511a3077e11ed1e84baa66c
Partial-Bug: #1629284
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: Ieb2fda744a452e1244213cffe293d348a3771c63
Simple REST API based functional testing for
gnocchi will now be run during the gate.
Change-Id: Ied96bca01cd3e6f47f2d75505d516b1eafbc7429
Closes-Bug: #1624521
Ansible 2.1.1 introduces a regression in the way conditional
includes are handled which results in every task in the
included file being evaluated even if the condition for the
include is not met. This extends the run time significantly
for a deployment.
This patch forces all conditional includes to be dynamic.
Change-Id: I43c2e417e5e7fde1419a8bc225581c2fb516508a
Related-Bug: https://github.com/ansible/ansible/issues/17687
The upstream default implementation of gnocchi is not
to use keystone authentication, but a preferred deployment
configuration in enterprise environments is to ensure that
keystone authentication is configured.
This patch creates a simple toggle to enable it.
Closes-Bug: 1622251
Change-Id: Ic41cf161af1d59e5b0f4b71c0d698cd7348c962c
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: Ib4e9ea67433a897ce7102a453ae5560a64c55c60
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.
This patch also remove duplicated apt install tasks and the is_metal
variable which is not used anywhere.
Change-Id: I0368cb090b37bf92b0ffce3cee8d7f4c4f61135b
The role has historically used a different password variable.
Because the role is being maintained by the community now it makes
more sense to normalize the password for ease of maintenance.
The no-longer needed operations to create the DB and grant access
are removed from the role as these are in the integrated project's
playbook now. These tasks are added as pre_tasks for testing.
Similarly, the contents of the /ext directory are eliminated as
these are no longer needed since all of the contents have been
applied to the integrated gate.
Finally a run_tests.sh file is added for consistency and to fix the
bashate lint job which fails when there are not matching shell
scripts.
Change-Id: I7b9046dfe7ba258218b4d14ec8d4f270e917ca34
The openstack_hosts role is not used in any of the test playbooks
or required by dependent roles and can be removed from the test
role requirements.
Change-Id: I0a3e5b7a5d3a0d660e786681c5369eaeffcfad3c
Remove all tasks and variables related to toggling between installation
of gnocchi inside or outside of a Python virtual environment.
Installing within a venv is now the only supported deployment.
Additionally, a few changes have been made to make the creation of the
venv more resistant to interruptions during a run of the role.
* unarchiving a pre-built venv will now also occur when the venv
directory is created, not only after being downloaded
* virtualenv-tools is run against both pre-built and non pre-built venvs
to account for interruptions during or prior to unarchiving
Change-Id: I7a75e87d4451d62ee4587654cf5dbfb3789991c8
Implements: blueprint only-install-venvs
Removes host and port from api section of config file template.
Also cleans up Ansible Lint warnings
Related-To: I2298f9cb94a684747f4b4dbc262cdcab7de49175
Change-Id: I56954df3d13b86cfcb4eb68e419ce13dfac2c051
The pip_install and pip_lock_down roles have been merged.
Remove pip_lock_down from the role's meta dependencies and test
requirements.
Change-Id: I352af7887cecd5c54d8cf8e1dec57048b8fdc465
This change updates the Gnocchi role to support Ubuntu 14.04 with
upstart init and 16.04 with a systemd init.
A change for the functional tests disables them. They will be
fixed properly in a following patch.
Change-Id: I6170a3bcc6ad61474a0a70c786b2607915868e17
Related: blueprint support-ubuntu-1604
An initial convergence testing for the role is provided but it is
not installing or configuring ceilometer yet. That work is held back
until we have the role passing basic testing. This stage of testing
also attempts to avoid installing rabbit as an unnecessary
complexity.
A separate container is used for gnocchi so that gnocchi can be
deployed under mod_wsgi without conflicting with Keystone. In turn
some changes to the inventory pattern, and the use of group_vars for
internal and external _lb_vip_address values is introduced here as
there is no load balancer and traffic for each of Keystone and
Gnocchi needs to be addressed appropriately.
Partial-Blueprint: role-gnocchi
Change-Id: I27a76a62b2443787e5347f08e974a9eb3cc33dbe