aboutsummaryrefslogtreecommitdiff
path: root/ansible/roles/trove/templates/trove.conf.j2
diff options
context:
space:
mode:
authorMichal Arbet <michal.arbet@ultimum.io>2024-07-17 01:05:24 +0000
committerMatt Crees <mattc@stackhpc.com>2025-03-24 09:17:25 +0000
commit4e0c0aa767d993026dbd927e3dca98f17fed7895 (patch)
tree80eb03beb782d8a5929d1fa936ba242a59466401 /ansible/roles/trove/templates/trove.conf.j2
parent94765ab468a01c331e15b48896bac61c1bf86e15 (diff)
downloadkolla-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.j23
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