From 92f6ac40f7d3c36b30022e10d0bfad65b0180154 Mon Sep 17 00:00:00 2001 From: sudeephb Date: Thu, 14 Sep 2023 10:42:43 +0545 Subject: [PATCH] Add playbook for prometheus alert tests - Install prometheus snap - Verify that the alert rules tests pass Change-Id: I38883a431735546bae2033b6f34cc40644231a4c --- playbooks/prometheus-alert-rules-test.yaml | 3 +++ .../tasks/main.yaml | 24 +++++++++++++++++++ zuul.d/jobs.yaml | 5 ++++ zuul.d/project-templates.yaml | 10 ++++++++ 4 files changed, 42 insertions(+) create mode 100644 playbooks/prometheus-alert-rules-test.yaml create mode 100644 roles/prometheus-alert-rules-test/tasks/main.yaml diff --git a/playbooks/prometheus-alert-rules-test.yaml b/playbooks/prometheus-alert-rules-test.yaml new file mode 100644 index 0000000..46cb1b5 --- /dev/null +++ b/playbooks/prometheus-alert-rules-test.yaml @@ -0,0 +1,3 @@ +- hosts: all + roles: + - prometheus-alert-rules-test diff --git a/roles/prometheus-alert-rules-test/tasks/main.yaml b/roles/prometheus-alert-rules-test/tasks/main.yaml new file mode 100644 index 0000000..76e50b1 --- /dev/null +++ b/roles/prometheus-alert-rules-test/tasks/main.yaml @@ -0,0 +1,24 @@ +- name: snapd is installed + apt: + name: snapd + become: true + +- name: prometheus is installed + snap: + name: prometheus + channel: "{{ prometheus_channel | default('2/stable') }}" + become: true + +- name: Check if prometheus_alerts_test_rules_dir exists + stat: + path: "{{ zuul.project.src_dir }}/{{ prometheus_alerts_test_rules_dir }}" + register: prometheus_alerts_dir_exists + +- name: Exit if test rules dir doesn't exist + fail: + msg: "Directory {{ prometheus_alerts_test_rules_dir }} does not exist" + when: not prometheus_alerts_dir_exists.stat.exists + +- name: promtool tests pass + command: + cmd: bash -c 'promtool test rules {{ zuul.project.src_dir }}/{{ prometheus_alerts_test_rules_dir }}/*.yaml' diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 500e6ec..7abdad8 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -12,3 +12,8 @@ requires: charm dependencies: - name: charmbuild + +- job: + name: prometheus-alert-rules-test + run: playbooks/prometheus-alert-rules-test.yaml + timeout: 600 diff --git a/zuul.d/project-templates.yaml b/zuul.d/project-templates.yaml index d7a93a8..b4b7102 100644 --- a/zuul.d/project-templates.yaml +++ b/zuul.d/project-templates.yaml @@ -9,3 +9,13 @@ nodeset: ubuntu-focal - zaza-smoke-test: nodeset: ubuntu-focal + +- project-template: + name: prometheus-alert-rules-test + description: | + This project template is defined to run prometheus alert rules + tests + check: + jobs: + - prometheus-alert-rules-test: + nodeset: ubuntu-focal