49 lines
1.8 KiB
YAML
49 lines
1.8 KiB
YAML
---
|
|
- name: fetch prometheus data to ES
|
|
hosts: localhost
|
|
vars:
|
|
required_vars:
|
|
- es_server
|
|
- es_index
|
|
- uuid
|
|
- job_name
|
|
- metrics
|
|
- start_time
|
|
- end_time
|
|
tasks:
|
|
- name: check if variables are defind
|
|
assert:
|
|
that:
|
|
- item in vars
|
|
loop: "{{ required_vars }}"
|
|
loop_control:
|
|
label: "{{ item }}"
|
|
register: var_check_result
|
|
ignore_errors: true
|
|
- name: Fail if any variable is not defined
|
|
fail:
|
|
msg: "Variable '{{ var_check_result.results | map(attribute='item') | list | first }}' is not defined. Aborting playbook execution."
|
|
when: var_check_result is failed
|
|
- include_tasks: check_oc.yaml
|
|
- name: download kube-burner
|
|
ansible.builtin.get_url:
|
|
url: https://github.com/cloud-bulldozer/kube-burner/releases/download/v1.7.12/kube-burner-V1.7.12-linux-x86_64.tar.gz
|
|
dest: /tmp/kube-burner.tar.gz
|
|
- name: extract the kube-burner
|
|
ansible.builtin.unarchive:
|
|
src: /tmp/kube-burner.tar.gz
|
|
dest: /tmp
|
|
mode: '0774'
|
|
- name: retrieve the prometheus url
|
|
shell: oc get routes -n openshift-monitoring prometheus-k8s -o=jsonpath='{.spec.host}'
|
|
register: prometheus_url
|
|
- name: create token to access prometheus
|
|
shell: oc create token prometheus-k8s -n openshift-monitoring
|
|
register: token
|
|
- name: debug msg
|
|
debug:
|
|
msg: "url {{ prometheus_url.stdout }}"
|
|
- name: copy data from premetheus to elastic
|
|
shell: |
|
|
/tmp/kube-burner index --es-server {{ es_server }} --es-index {{ es_index }} --uuid={{ uuid}} --job-name {{ job_name }} --token={{ token.stdout}} -m={{ metrics }} --start={{ start_time }} --end={{ end_time }} --log-level debug -u https://{{ prometheus_url.stdout }}
|