Commit Graph

14 Commits

Author SHA1 Message Date
Dmitriy Rabotyagov 10164be39e Add quorum queues support for service
This change implements and enables by default quorum support
for rabbitmq as well as providing default variables to globally tune
it's behaviour.

In order to ensure upgrade path and ability to switch back to HA queues
we change vhost names with removing leading `/`, as enabling quorum
requires to remove exchange which is tricky thing to do with running
services.

Change-Id: I722aefb5290a68311faf1d44c279151e8492466a
2023-10-20 11:53:46 +00:00
Dmitriy Rabotyagov c7b2ad25c9 Fix linters and metadata
With update of ansible-lint to version >=6.0.0 a lot of new
linters were added, that enabled by default. In order to comply
with linter rules we're applying changes to the role.

With that we also update metdata to reflect current state.

Depends-On: https://review.opendev.org/c/openstack/ansible-role-systemd_service/+/888223
Change-Id: Ib51c7ec8d83ffe82c98d1c8d3200ce4510775895
2023-07-14 17:11:05 +00:00
Dmitriy Rabotyagov 6568e8bf99 Replace git-core with git for debian
With ansible-core 2.13 it tries to substitude package resolution in apt
module.
However git-core is used in Debian as transitional name, but ansible
tries to select it and provide version, which is not correct behaviour.
But since git-core is not really valid anyway, we just replace it
to workaround ansible's imperfectness.

Change-Id: Ie4b8ce21c101551505eec1529235a57e9176d3c9
2022-10-05 11:02:23 +02:00
Jonathan Herlin c35565f419 Fix wsgi_venv path for cloudkitty-api
Previous to this change the uwsgi config had virtualenv include /bin, leading to $venv/bin/bin in execution

Change-Id: I4d2b60b655e5688359ed7b65569ec5500c542c0f
2021-03-24 19:14:11 +01:00
Jonathan Rosser 8b53883914 Remove references to unsupported operating systems
All references to Gentoo, SUSE, Debian stretch and Centos-7  are removed.
Conditional tasks, ternary operators and variables are simplified where possible
OS specific variables files are generalised where possible

Change-Id: Ifd45cedcf98487b1a8b5531962529f0784f3065e
2021-03-10 16:31:37 +00:00
Dmitriy Rabotyagov 9d89b0fdb0 Define condition for the first play host one time
We use the same condition, which defines against what host some "service"
tasks should run against, several times. It's hard to keep it the same
across the role and ansible spending additional resources to evaluate
it each time, so it's simpler and better for the maintenance to set
a boolean variable which will say for all tasks, that we want to run
only against signle host, if they should run or not now.

Change-Id: I904dca21103b91978ab03db1a3c6d3a30d406aa7
2020-10-12 16:20:06 +00:00
Dmitriy Rabotyagov d1ce3f060a Add CentOS 8 and Ubuntu Focal support
Change-Id: I98d5df7c87b94d8135b24a42941c109365cd1432
2020-08-28 06:18:54 +00:00
Dmitriy Rabotyagov f3285ed7ad Start using uWSGI role
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: I5b0bcd6a51f237fcd772368f51a406421ffb52f4
2019-09-05 20:31:19 +03:00
Christian Zunker 976bbded67 Add missing libxml2 packages
Change-Id: I43cbe7328c4c1ccb37ae9d4e04a577691263f182
Closes-Bug: 1808124
2018-12-12 10:51:18 +01:00
Jesse Pretorius 374b8c2bce Use a common python build/install role
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.

Depends-On: https://review.openstack.org/598957
Change-Id: Ife2f3e96f7a56279f68509259c099bfe20ff19d8
Implements: blueprint python-build-install-simplification
Signed-off-by: Jesse Pretorius <jesse.pretorius@rackspace.co.uk>
2018-09-03 11:59:33 +00:00
Kevin Carter b78966cd09
Convert role to use a common systemd service role
This removes the systemd service templates and tasks from this role and
leverages a common systemd service role instead. This change removes a
lot of code duplication across all roles all without sacrificing features
or functionality. The intention of this change is to ensure uniformity and
reduce the maintenance burden on the community when sweeping changes are
needed.

The systemd journal would normally be populated with the standard out of
a service however with the use of uwsgi this is not actually happening
resulting in us only capturing the logs from the uwsgi process instead
of the service itself. This change implements journal logging in the
service config, which is part of OSLO logging.

OSLO logging docs found here: <https://docs.openstack.org/oslo.log/3.28.1/journal.html>

Change-Id: Ieff0119cb09e8971fab5b0393f023010a554edff
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2018-07-31 14:50:12 -05:00
Mohammed Naser 55691f7ddc Add openSUSE support
Change-Id: I4bd223a3f5fbd36839e8b79103994ba4a7122fd8
2018-06-24 12:31:35 -04:00
Jesse Pretorius 6369a3b6e6 Rename package lists (and related vars) appropriately
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: Ie416ef490b4e50b57bc3db870e1cb5540df6446e
2016-08-30 16:59:49 +01:00
Jimmy McCrory 15c80abdbc Implement Multi-OS support in os_cloudkitty
This change implements support for Xenial and CentOS 7 within the
os_cloudkitty role.

Change-Id: Id2abe9099171080bd3d3ceb3a54222a5dfdefe2f
Implements: blueprint multi-platform-host
2016-08-02 08:07:58 +00:00