Skip to content

Commit fa80e59

Browse files
authored
Merge branch 'master' into efoley/common_fix_file_test
2 parents 6983721 + 38ee907 commit fa80e59

File tree

11 files changed

+147
-65
lines changed

11 files changed

+147
-65
lines changed

.zuul.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].src_dir }}/scenarios/centos-9/multinode-ci.yml"
1111
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/telemetry-operator'].src_dir }}/ci/vars-autoscaling.yml"
1212
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/infrawatch/feature-verification-tests'].src_dir }}/ci/vars-functional-test.yml"
13+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/infrawatch/feature-verification-tests'].src_dir }}/ci/vars-use-master-containers.yml"
1314
roles:
1415
- zuul: github.com/openstack-k8s-operators/ci-framework
1516
required-projects: &required_projects
@@ -70,6 +71,7 @@
7071
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/ci-framework'].src_dir }}/scenarios/centos-9/multinode-ci.yml"
7172
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/telemetry-operator'].src_dir }}/ci/vars-autoscaling.yml"
7273
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/infrawatch/feature-verification-tests'].src_dir }}/ci/vars-metric-verification-test.yml"
74+
- "@{{ ansible_user_dir }}/{{ zuul.projects['github.com/openstack-k8s-operators/telemetry-operator'].src_dir }}/ci/vars-power-monitoring.yml"
7375
roles:
7476
- zuul: github.com/openstack-k8s-operators/ci-framework
7577
required-projects: *required_projects
@@ -111,7 +113,7 @@
111113
override-checkout: main
112114
irrelevant-files: *irrelevant_files
113115
- functional-tests-on-osp18:
114-
voting: false
116+
voting: true
115117
- functional-logging-tests-osp18
116118
- functional-graphing-tests-osp18
117119
- functional-metric-verification-tests-osp18

ci/run_autoscaling_osp18.yml

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -20,26 +20,6 @@
2020
tags:
2121
- setup
2222

23-
- name: Patch the openstackversions to use the master containers for aodh and heat
24-
ansible.builtin.shell:
25-
cmd: |
26-
oc patch openstackversions controlplane --type merge --patch-file ci/patch-openstack-versions.yaml
27-
chdir: "{{ fvt_dir }}"
28-
when: "{{ patch_openstackversions | bool }}"
29-
tags:
30-
- setup
31-
32-
- name: Redeploy the dataplane
33-
ansible.builtin.shell:
34-
cmd: |
35-
oc get osdpd edpm-deployment -oyaml > /tmp/osdpd.yaml
36-
oc delete osdpd edpm-deployment
37-
sleep 10
38-
oc apply -f /tmp/osdpd.yaml
39-
when: "{{ patch_openstackversions | bool }}"
40-
tags:
41-
- setup
42-
4323
- name: Patch observabilityclient into openstackclient
4424
ansible.builtin.shell:
4525
cmd: |
@@ -50,50 +30,7 @@
5030
tags:
5131
- setup
5232

53-
- name: Wait until the oscp is resolved the changes to continue
54-
ansible.builtin.shell:
55-
cmd: |
56-
oc get oscp | grep "Setup complete"
57-
retries: 24
58-
timeout: 5
59-
until: output.stdout_lines | length == 1
60-
register: output
61-
when: "{{ patch_openstackversions | bool }}"
62-
tags:
63-
- setup
64-
65-
- name: Wait until the osdpd is redeployed to continue
66-
ansible.builtin.shell:
67-
cmd: |
68-
oc get osdpd | grep "Setup complete"
69-
retries: 60
70-
delay: 45
71-
until: output.stdout_lines | length == 1
72-
register: output
73-
when: "{{ patch_openstackversions | bool }}"
74-
tags:
75-
- setup
76-
7733
- name: "Run Telemetry Autoscaling tests"
7834
ansible.builtin.import_role:
7935
name: telemetry_autoscaling
8036
ignore_errors: true
81-
82-
always:
83-
- name: Revert the version update
84-
ansible.builtin.shell:
85-
cmd: |
86-
oc patch openstackversions controlplane --type json -p='[{"op": "replace", "path": "/spec/customContainerImages", "value": {} }]'
87-
when: "{{ patch_openstackversions | bool }}"
88-
89-
- name: Redeploy the dataplane
90-
ansible.builtin.shell:
91-
cmd: |
92-
oc get osdpd edpm-deployment -oyaml > /tmp/osdpd.yaml
93-
oc delete osdpd edpm-deployment
94-
sleep 10
95-
oc apply -f /tmp/osdpd.yaml
96-
when: "{{ patch_openstackversions | bool }}"
97-
tags:
98-
- setup
99-

ci/use-master-containers.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
- name: Run telemetry autoscaling tests on osp18
2+
hosts: "{{ cifmw_target_hook_host | default('localhost') }}"
3+
gather_facts: true
4+
environment:
5+
KUBECONFIG: "{{ cifmw_openshift_kubeconfig }}"
6+
PATH: "{{ cifmw_path }}"
7+
vars_files:
8+
- vars/common.yml
9+
- vars/osp18_env.yml
10+
tasks:
11+
- name: Patch the openstackversions to use the master containers for aodh, heat and ceilometer
12+
ansible.builtin.shell:
13+
cmd: |
14+
oc patch openstackversions controlplane --type merge --patch-file ci/patch-openstack-versions.yaml
15+
chdir: "{{ fvt_dir }}"
16+
tags:
17+
- setup
18+

ci/vars-use-master-containers.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
post_ctlplane_deploy_99_modify_openstackversions:
3+
source: "{{ ansible_user_dir }}/{{ zuul.projects['github.com/infrawatch/feature-verification-tests'].src_dir }}/ci/use-master-containers.yml"
4+
type: playbook

roles/common/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ can be set at the play level.
155155
- ceilometer_agent_compute
156156
- ceilometer_agent_ipmi
157157
- node_exporter
158+
- kepler
158159

159160
- name: "Verify Endpoint"
160161
ansible.builtin.import_role:

roles/telemetry_autoscaling/tasks/test_autoscaling.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,30 @@
5959
register: busy_process
6060
with_items: "{{ vnf_instance_ip.stdout_lines }}"
6161

62+
- name: Show ceilometer_cpu metrics from Prometheus
63+
when: metrics_backend == "prometheus"
64+
block:
65+
- name: Register autoscaling query results
66+
shell: |
67+
export STACK_ID=$({{ openstack_cmd }} stack show {{ stack_name }} -c id -f value)
68+
{{ openstack_cmd }} metric query '(rate(ceilometer_cpu{server_group=~"$STACK_ID"}[150s]))/10000000'
69+
ignore_errors: true
70+
register: result
71+
72+
- name: Show the query result
73+
ansible.builtin.debug:
74+
var: result
75+
76+
- name: Register ceilometer_cpu metrics
77+
shell: |
78+
{{ openstack_cmd }} metric show ceilometer_cpu --disable-rbac
79+
ignore_errors: true
80+
register: result
81+
82+
- name: Show the ceilometer_cpu metrics
83+
ansible.builtin.debug:
84+
var: result
85+
6286
- name: |
6387
TEST Verify cpu high alarm has been triggered
6488
RHOSO-12660

roles/telemetry_verify_metrics/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,16 @@ Tests:
2424
- Verify Ceilometer metrics are being exposed and stored
2525
- Use openstack observabilityclient to verify Ceilometer central metrics are stored in Prometheus
2626
- Use openstack observabilityclient to verify Ceilometer compute metrics are stored in Prometheus
27+
- Use openstack observabilityclient to verify Ceilometer ipmi metrics are stored in Prometheus
2728
- Verify NodeExporter metrics are being exposed and stored
2829
- Use openstack observabilityclient to verify NodeExporter metrics are stored in Prometheus
30+
- Verify Kepler metrics are being exposed and stored
31+
- Use openstack observabilityclient to verify Kepler metrics are stored in Prometheus
2932

3033
Role Variables
3134
--------------
3235
openstack\_cmd - command to access openstack cli. For example: "oc rsh openstackclient openstack"
33-
telemetry\_verify\_metrics\_metric\_sources\_to\_test - List of sources to test. Current set of possible sources: ceilometer\_compute\_agent, ceilometer\_central\_agent, node\_exporter, rabbitmq
36+
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
3437

3538
Example Playbook
3639
----------------

roles/telemetry_verify_metrics/defaults/main.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,6 @@ telemetry_verify_metrics_metric_sources_to_test:
44
- ceilometer_central_agent
55
- node_exporter
66
- rabbitmq
7+
- kepler
8+
# NOTE: IPMI metrics can only be verified when compute nodes are baremetal
9+
# - ceilometer_ipmi_agent

roles/telemetry_verify_metrics/tasks/main.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,22 @@
4141
tags: test
4242
when: '"ceilometer_central_agent" in telemetry_verify_metrics_metric_sources_to_test'
4343

44+
- name: Verify Ceilometer ipmi metrics are being exposed and stored
45+
ansible.builtin.include_tasks:
46+
file: verify_ceilometer_ipmi_metrics.yml
47+
tags: power_monitoring
48+
when: '"ceilometer_ipmi_agent" in telemetry_verify_metrics_metric_sources_to_test'
49+
4450
- name: Verify NodeExporter metrics are being exposed and stored
4551
ansible.builtin.include_tasks:
4652
file: verify_node_exporter_metrics.yml
4753
tags: test
4854
when: '"node_exporter" in telemetry_verify_metrics_metric_sources_to_test'
55+
56+
- name: Verify Kepler metrics are being exposed and stored
57+
ansible.builtin.include_tasks:
58+
file: verify_kepler_metrics.yml
59+
tags:
60+
- test
61+
- power_monitoring
62+
when: '"kepler" in telemetry_verify_metrics_metric_sources_to_test'
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
- name: Verify ceilometer scrapeconfig exists
2+
ansible.builtin.include_role:
3+
name: common
4+
vars:
5+
common_cr_test_id: RHOSO-1221
6+
common_cr_list:
7+
- kind: scrapeconfigs.monitoring.rhobs
8+
name: telemetry-ceilometer
9+
10+
- name: Verify ceilometer ipmi agent container is up
11+
ansible.builtin.include_tasks:
12+
file: check_compute_node_containers.yml
13+
vars:
14+
common_container_test_id: RHOSO-1230
15+
common_container_list:
16+
- ceilometer_agent_ipmi
17+
loop: "{{ groups['computes'] }}"
18+
loop_control:
19+
loop_var: compute_node
20+
21+
- name: Verify ceilometer controlplane pod is running
22+
ansible.builtin.include_role:
23+
name: common
24+
vars:
25+
common_pod_test_id: RHOSO-1242
26+
common_pod_status_str: "Running"
27+
common_pod_nspace: openstack
28+
common_pod_list:
29+
- ceilometer-0
30+
31+
- name: |
32+
TEST Use openstack observabilityclient to verify ceilometer ipmi metrics are stored in prometheus
33+
RHOSO-1217
34+
ansible.builtin.shell: |
35+
{{ openstack_cmd }} metric show ceilometer_hardware_ipmi_fan --disable-rbac
36+
register: result
37+
delay: 30
38+
retries: 10
39+
until: result.rc == 0 and "ceilometer_hardware_ipmi" in result.stdout
40+
changed_when: false

0 commit comments

Comments
 (0)