diff options
| author | Michal Arbet <michal.arbet@ultimum.io> | 2024-07-17 01:05:24 +0000 |
|---|---|---|
| committer | Matt Crees <mattc@stackhpc.com> | 2025-03-24 09:17:25 +0000 |
| commit | 4e0c0aa767d993026dbd927e3dca98f17fed7895 (patch) | |
| tree | 80eb03beb782d8a5929d1fa936ba242a59466401 /ansible/roles/trove/templates/trove.conf.j2 | |
| parent | 94765ab468a01c331e15b48896bac61c1bf86e15 (diff) | |
| download | kolla-ansible-4e0c0aa767d993026dbd927e3dca98f17fed7895.tar.gz kolla-ansible-4e0c0aa767d993026dbd927e3dca98f17fed7895.zip | |
Add oslo.messaging Queue Manager
Adds the variable ``om_enable_queue_manager`` to configure enabling
oslo.messaging Queue Manager for all services which use RabbitMQ. This
is enabled by default.
This is required before we can move away from transient queues
(``rabbit_transient_quorum_queue``) as Queue Manager is needed to avoid
consuming all erlang atoms after some time. It is also a useful feature
for debugging, as queues are now named with hostnames and services
included.
Also setting ``lock_path`` and mounting ``dev/shm`` is dependent on
``om_enable_queue_manager``, these are now enabled too. This will allow
us to backport these features to Caracal and Dalamation without
enforcing the changes right away.
Why is -t added for exec commands?
When using Podman, behavior differs from Docker regarding exec
commands. If -t (which allocates a pseudo-terminal) is not used, the
process runs as a child of podman exec without a PTY. This causes
Python inside the container to assign PGID=0 because the pseudo-terminal
is missing, leading to issues with non-existent paths like /proc/0/....
Adding -t ensures proper PGID assignment, preventing these issues and
ensuring consistent behavior across Docker and Podman.
Side-notes:
The quorum queue precheck needed to be updated as queue manager puts
"_fanout" on the end of the name instead.
We need to override the ``[oslo_messaging_rabbit] processname`` for
services running udner wsgi, as they will otherwise all use the same
processname ``mod_wsgi``. This will cause Permission Errors trying to
access the same file in shared memory as services run with different
users.
Change-Id: Iae5f268e778fbbd2b744dc71a84253ec9e758a99
Diffstat (limited to 'ansible/roles/trove/templates/trove.conf.j2')
| -rw-r--r-- | ansible/roles/trove/templates/trove.conf.j2 | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/ansible/roles/trove/templates/trove.conf.j2 b/ansible/roles/trove/templates/trove.conf.j2 index 6dd3b72f0..cc85f0c67 100644 --- a/ansible/roles/trove/templates/trove.conf.j2 +++ b/ansible/roles/trove/templates/trove.conf.j2 @@ -75,6 +75,9 @@ driver = noop {% endif %} [oslo_messaging_rabbit] +{% if om_enable_queue_manager | bool %} +use_queue_manager = true +{% endif %} heartbeat_in_pthread = false {% if om_enable_rabbitmq_tls | bool %} ssl = true |
