Skip to content

Commit cf41e96

Browse files
committed
Add periodic job with volume pool metrics tests
To check volume pool metrics, we need a correct environment configured with a storage backend - in this case ceph. The job takes abet 20 minutes longer than our usual jobs, so it was decided to run it as part of the periodic pipeline instead of running it with each PR in the check pipeline. Depends-On: openstack-k8s-operators/telemetry-operator#693
1 parent 8a30428 commit cf41e96

File tree

5 files changed

+75
-1
lines changed

5 files changed

+75
-1
lines changed

.zuul.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,32 @@
108108
- zuul: github.com/openstack-k8s-operators/ci-framework
109109
required-projects: *required_projects
110110

111+
- job:
112+
name: functional-periodic-telemetry-with-ceph
113+
parent: podified-multinode-hci-deployment-crc-1comp-backends
114+
dependencies: ["openstack-k8s-operators-content-provider"]
115+
description: |
116+
Deploy OpenStack with Telemetry and Ceph. Run metric-verification with volume pool metric tests
117+
vars:
118+
telemetry_verify_metrics_metric_sources_to_test:
119+
- volume_pool
120+
cifmw_extras:
121+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].src_dir }}/scenarios/centos-9/multinode-ci.yml"
122+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].src_dir }}/scenarios/centos-9/hci_ceph_backends.yml"
123+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/telemetry-operator'].src_dir }}/ci/vars-telemetry-with-ceph.yml"
124+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/infrawatch/feature-verification-tests'].src_dir }}/ci/vars-metric-verification-test.yml"
125+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/infrawatch/feature-verification-tests'].src_dir }}/ci/vars-use-master-containers.yml"
126+
irrelevant-files: *irrelevant_files
127+
required-projects: *required_projects
111128

112129
- project:
113130
name: infrawatch/feature-verification-tests
131+
# periodic:
132+
# jobs:
133+
# - functional-periodic-telemetry-with-ceph
114134
github-check:
115135
jobs:
136+
- functional-periodic-telemetry-with-ceph
116137
- feature-verification-tests-noop:
117138
files: *irrelevant_files
118139
- openstack-k8s-operators-content-provider:

roles/telemetry_verify_metrics/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Tests:
3535
Role Variables
3636
--------------
3737
openstack\_cmd - command to access openstack cli. For example: "oc rsh openstackclient openstack"
38-
telemetry\_verify\_metrics\_metric\_sources\_to\_test - List of sources to test. Current set of possible sources: ceilometer\_compute\_agent, ceilometer\_central\_agent, ceilometer\_ipmi_\_agent, node\_exporter, rabbitmq, kepler, openstack_network_exporter
38+
telemetry\_verify\_metrics\_metric\_sources\_to\_test - List of sources to test. Current set of possible sources: ceilometer\_compute\_agent, ceilometer\_central\_agent, ceilometer\_ipmi_\_agent, node\_exporter, rabbitmq, kepler, openstack\_network\_exporter, volume\_pool
3939

4040
Example Playbook
4141
----------------

roles/telemetry_verify_metrics/defaults/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,5 @@ telemetry_verify_metrics_metric_sources_to_test:
1212
- mariadb
1313
# NOTE: IPMI metrics can only be verified when compute nodes are baremetal
1414
# - ceilometer_ipmi_agent
15+
# NOTE: volume pool metrics can only be verified when a pool with a correct backend is configured
16+
# - volume_pool

roles/telemetry_verify_metrics/tasks/main.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,9 @@
108108
when: '"kepler_vm" in telemetry_verify_metrics_metric_sources_to_test and "ACTIVE" in kepler_vm_status.stdout'
109109
vars:
110110
metrics_cmd_prefix: "{{ openstack_cmd }} metric show --disable-rbac -c value -f value"
111+
112+
- name: Verify Ceilometer volume pool metrics are being exposed and stored
113+
ansible.builtin.include_tasks:
114+
file: verify_ceilometer_volume_pool_metrics.yml
115+
tags: test
116+
when: '"volume_pool" in telemetry_verify_metrics_metric_sources_to_test'
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
- name: Verify ceilometer scrapeconfig exists
2+
ansible.builtin.include_role:
3+
name: common
4+
vars:
5+
common_cr_test_id: RHOSO-1220
6+
common_cr_list:
7+
- kind: scrapeconfigs.monitoring.rhobs
8+
name: telemetry-ceilometer
9+
10+
- name: Verify ceilometer central agent is running
11+
ansible.builtin.include_role:
12+
name: common
13+
vars:
14+
common_pod_test_id: RHOSO-1240
15+
common_pod_status_str: "Running"
16+
common_pod_nspace: openstack
17+
common_pod_list:
18+
- ceilometer-0
19+
20+
- name: |
21+
TEST Use openstack CLI to verify a cinder volume is configured
22+
RHOSO-1313
23+
ansible.builtin.shell: |
24+
{{ openstack_cmd }} volume backend pool list
25+
register: result
26+
until: result.rc == 0 and result.stdout_lines | length > 0
27+
changed_when: false
28+
29+
- name: |
30+
TEST Use openstack observabilityclient to verify ceilometer volume pool metrics are stored in prometheus
31+
RHOSO-1314
32+
vars:
33+
volume_pool_metrics:
34+
- ceilometer_volume_provider_pool_capacity_allocated
35+
- ceilometer_volume_provider_pool_capacity_free
36+
- ceilometer_volume_provider_pool_capacity_provisioned
37+
- ceilometer_volume_provider_pool_capacity_total
38+
ansible.builtin.shell: |
39+
{{ openstack_cmd }} metric show {{ item }}
40+
register: result
41+
delay: 30
42+
retries: 10
43+
until: result.rc == 0 and item in result.stdout
44+
changed_when: false
45+
loop: "{{ volume_pool_metrics }}"

0 commit comments

Comments
 (0)