Skip to content

Commit a5157ac

Browse files
committed
[OSPRH-21020] Adjust rabbitmq tests
A bugfix proposed in openstack-k8s-operators/telemetry-operator#780 changes how rabbitmq metrics are being scraped. The FVT needs to be adjusted for the tests to pass. For a limited time, both versions of telemetry-operator (pre-bugfix and post-bugfix) are allowed to pass the tests. A PR to remove the pre-bugfix tasks will be created in the future.
1 parent c796a11 commit a5157ac

File tree

3 files changed

+77
-3
lines changed

3 files changed

+77
-3
lines changed

roles/telemetry_verify_metrics/tasks/main.yml

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,31 @@
2121
condition_type: Ready
2222
tags: precheck
2323

24-
- name: Verify RabbitMQ metrics are being exposed and stored
24+
# TODO: task can be deleted once well after FR4 BR1
25+
- name: Determine if RabbitMQ scraping uses PodMonitors
26+
ansible.builtin.shell: |
27+
oc get podmonitors.monitoring.rhobs telemetry-rabbitmq -o custom-columns=NAME:.metadata.name --no-headers
28+
register: rabbitmq_podmonitors
29+
changed_when: false
30+
failed_when: false
31+
32+
- name: Verify RabbitMQ metrics are being exposed and stored with PodMonitor
33+
ansible.builtin.include_tasks:
34+
file: verify_rabbitmq_metrics_podmonitor.yml
35+
tags: test
36+
when:
37+
- '"rabbitmq" in telemetry_verify_metrics_metric_sources_to_test'
38+
# TODO: condition can be deleted once well after FR4 BR1
39+
- '"telemetry-rabbitmq" in rabbitmq_podmonitors.stdout_lines'
40+
41+
# TODO: task can be deleted once well after FR4 BR1
42+
- name: Verify RabbitMQ metrics are being exposed and stored with ScrapeConfig
2543
ansible.builtin.include_tasks:
26-
file: verify_rabbitmq_metrics.yml
44+
file: verify_rabbitmq_metrics_scrapeconfig.yml
2745
tags: test
28-
when: '"rabbitmq" in telemetry_verify_metrics_metric_sources_to_test'
46+
when:
47+
- '"rabbitmq" in telemetry_verify_metrics_metric_sources_to_test'
48+
- '"telemetry-rabbitmq" not in rabbitmq_podmonitors.stdout_lines'
2949

3050
- name: Verify Ceilometer compute metrics are being exposed and stored
3151
ansible.builtin.include_tasks:
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
- name: Get rabbitmq CR names
2+
ansible.builtin.shell: |
3+
oc get rabbitmqs -o custom-columns=NAME:.metadata.name --no-headers
4+
register: cr_names
5+
changed_when: false
6+
failed_when: cr_names.rc >= 1 or cr_names.stdout == ""
7+
8+
- name: Create rabbitmq cr list
9+
ansible.builtin.set_fact:
10+
rabbitmq_cr_list: "{{ rabbitmq_cr_list | default([]) + [{'kind': 'podmonitors.monitoring.rhobs', 'name': 'telemetry-' + item}] }}"
11+
loop: "{{ cr_names.stdout_lines }}"
12+
13+
- name: Get rabbitmq pod names
14+
ansible.builtin.shell: |
15+
oc get pods -l app.kubernetes.io/component=rabbitmq -o custom-columns=NAME:.metadata.name --no-headers
16+
register: pod_names
17+
changed_when: false
18+
19+
- name: Create rabbitmq pod list
20+
ansible.builtin.set_fact:
21+
rabbitmq_pod_list: "{{ rabbitmq_pod_list | default([]) + [item] }}"
22+
loop: "{{ pod_names.stdout_lines }}"
23+
24+
- name: Verify rabbitmq podmonitors exist and pods are running
25+
ansible.builtin.include_role:
26+
name: common
27+
vars:
28+
common_cr_list: "{{ rabbitmq_cr_list }}"
29+
common_pod_list: "{{ rabbitmq_pod_list }}"
30+
common_pod_status_str: "Running"
31+
common_pod_nspace: openstack
32+
33+
- name: Check rabbitmq metric endpoints
34+
ansible.builtin.shell: |
35+
oc rsh openstackclient curl https://{{ item }}.openstack.svc:15691/metrics
36+
register: result
37+
changed_when: false
38+
failed_when: result.rc >= 1
39+
loop: "{{ cr_names.stdout_lines }}"
40+
41+
- name: |
42+
TEST Use openstack observabilityclient to verify rabbitmq metrics are stored in prometheus
43+
ansible.builtin.shell: |
44+
{{ openstack_cmd }} metric query rabbitmq_identity_info{pod=\'{{ item }}\'} --disable-rbac
45+
register: result
46+
delay: 30
47+
retries: 10
48+
changed_when: false
49+
until: result.rc == 0 and "rabbitmq_identity_info" in result.stdout
50+
loop: "{{ rabbitmq_pod_list }}"

roles/telemetry_verify_metrics/tasks/verify_rabbitmq_metrics.yml renamed to roles/telemetry_verify_metrics/tasks/verify_rabbitmq_metrics_scrapeconfig.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# TODO: Delete this file once we're sure we're running
2+
# at least FR4 bugfix release 1 everywhere.
3+
# As part of a bugfix, telemetry-operator uses PodMonitors for rabbit
4+
# instead of ScrapeConfigs now.
15
- name: Verify rabbitmq scrapeconfig exists
26
ansible.builtin.include_role:
37
name: common

0 commit comments

Comments
 (0)