Skip to content

Commit c1cfc37

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Support enable/disable rabbitmq prometheus plugins" into stable/victoria
2 parents 8f42cde + 4654462 commit c1cfc37

File tree

7 files changed

+56
-1
lines changed

7 files changed

+56
-1
lines changed

ansible/group_vars/all.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,7 @@ outward_rabbitmq_port: "5674"
434434
outward_rabbitmq_management_port: "15674"
435435
outward_rabbitmq_cluster_port: "25674"
436436
outward_rabbitmq_epmd_port: "4371"
437+
outward_rabbitmq_prometheus_port: "15694"
437438

438439
ovsdb_port: "6640"
439440

@@ -450,7 +451,7 @@ prometheus_node_exporter_port: "9100"
450451
prometheus_mysqld_exporter_port: "9104"
451452
prometheus_haproxy_exporter_port: "9101"
452453
prometheus_memcached_exporter_port: "9150"
453-
prometheus_rabbitmq_exporter_port: "15692"
454+
prometheus_rabbitmq_exporter_port: "{{ rabbitmq_prometheus_port }}"
454455
# Default cadvisor port of 8080 already in use
455456
prometheus_cadvisor_port: "18080"
456457

@@ -473,6 +474,7 @@ rabbitmq_port: "{{ '5671' if rabbitmq_enable_tls | bool else '5672' }}"
473474
rabbitmq_management_port: "15672"
474475
rabbitmq_cluster_port: "25672"
475476
rabbitmq_epmd_port: "4369"
477+
rabbitmq_prometheus_port: "15692"
476478

477479
redis_port: "6379"
478480
redis_sentinel_port: "26379"
@@ -799,6 +801,14 @@ outward_rabbitmq_user: "openstack"
799801
rabbitmq_enable_tls: "no"
800802
# CA certificate bundle in RabbitMQ container.
801803
rabbitmq_cacert: "/etc/ssl/certs/{{ 'ca-certificates.crt' if kolla_base_distro in ['debian', 'ubuntu'] else 'ca-bundle.trust.crt' }}"
804+
rabbitmq_enable_prometheus_plugin: "{{ enable_prometheus }}"
805+
rabbitmq_plugins:
806+
- name: "rabbitmq_management"
807+
enabled: True
808+
- name: "rabbitmq_prometheus"
809+
enabled: "{{ rabbitmq_enable_prometheus_plugin | bool }}"
810+
811+
rabbitmq_enabled_plugins: "{{ rabbitmq_plugins | selectattr('enabled', 'equalto', true) | list }}"
802812

803813
####################
804814
# Qdrouterd options

ansible/roles/rabbitmq/tasks/config.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,5 +97,23 @@
9797
notify:
9898
- Restart rabbitmq container
9999

100+
- name: Copying over enabled_plugins
101+
become: true
102+
vars:
103+
service: "{{ rabbitmq_services['rabbitmq'] }}"
104+
template:
105+
src: "{{ item }}"
106+
dest: "{{ node_config_directory }}/{{ project_name }}/enabled_plugins"
107+
mode: "0660"
108+
with_first_found:
109+
- "{{ node_custom_config }}/rabbitmq/{{ inventory_hostname }}/enabled_plugins"
110+
- "{{ node_custom_config }}/rabbitmq/enabled_plugins"
111+
- "enabled_plugins.j2"
112+
when:
113+
- inventory_hostname in groups[service.group]
114+
- service.enabled | bool
115+
notify:
116+
- Restart rabbitmq container
117+
100118
- include_tasks: copy-certs.yml
101119
when: rabbitmq_enable_tls | bool
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{{ rabbitmq_enabled_plugins | map(attribute='name') | join(', ') }}].

ansible/roles/rabbitmq/templates/rabbitmq.conf.j2

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,8 @@ ssl_options.keyfile = /etc/rabbitmq/certs/{{ project_name }}-key.pem
2525
ssl_options.{{ key }} = {{ value }}
2626
{% endfor %}
2727
{% endif %}
28+
29+
{% if 'rabbitmq_prometheus' in rabbitmq_enabled_plugins | map(attribute='name') %}
30+
prometheus.tcp.ip = {{ api_interface_address }}
31+
prometheus.tcp.port = {{ role_rabbitmq_prometheus_port }}
32+
{% endif %}

ansible/roles/rabbitmq/templates/rabbitmq.json.j2

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@
2424
"dest": "/etc/rabbitmq/definitions.json",
2525
"owner": "rabbitmq",
2626
"perm": "0600"
27+
},
28+
{
29+
"source": "{{ container_config_directory }}/enabled_plugins",
30+
"dest": "/etc/rabbitmq/enabled_plugins",
31+
"owner": "rabbitmq",
32+
"perm": "0600"
2733
}{% if rabbitmq_enable_tls | bool %},
2834
{
2935
"source": "{{ container_config_directory }}/{{ project_name }}-cert.pem",

ansible/site.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,7 @@
549549
role_rabbitmq_monitoring_user: '{{ rabbitmq_monitoring_user }}',
550550
role_rabbitmq_password: '{{ rabbitmq_password }}',
551551
role_rabbitmq_port: '{{ rabbitmq_port }}',
552+
role_rabbitmq_prometheus_port: '{{ rabbitmq_prometheus_port }}',
552553
role_rabbitmq_user: '{{ rabbitmq_user }}',
553554
when: enable_rabbitmq | bool }
554555

@@ -568,6 +569,7 @@
568569
role_rabbitmq_management_port: '{{ outward_rabbitmq_management_port }}',
569570
role_rabbitmq_password: '{{ outward_rabbitmq_password }}',
570571
role_rabbitmq_port: '{{ outward_rabbitmq_port }}',
572+
role_rabbitmq_prometheus_port: '{{ outward_rabbitmq_prometheus_port }}',
571573
role_rabbitmq_user: '{{ outward_rabbitmq_user }}',
572574
when: enable_outward_rabbitmq | bool }
573575

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
fixes:
3+
- |
4+
Fixed the deployment failure of outward_rabbitmq by resolving port
5+
conflicts by customizing RabbitMQ's ``prometheus.tcp.port``.
6+
`LP #1885106 <https://bugs.launchpad.net/kolla-ansible/+bug/1885106>`__
7+
8+
upgrade:
9+
- |
10+
RabbitMQ's Prometheus plugin is no longer enabled by default
11+
if Prometheus is not deployed. If external Prometheus is used,
12+
you need to turn on ``rabbitmq_enable_prometheus_plugin``
13+
to get old behaviour.

0 commit comments

Comments
 (0)