diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index ae77e96a9d..d3931dfb1a 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -910,3 +910,8 @@ enable_prometheus_cadvisor: "{{ enable_prometheus | bool }}" enable_prometheus_alertmanager: "{{ enable_prometheus | bool }}" enable_prometheus_ceph_mgr_exporter: "{{ enable_ceph | bool and enable_prometheus | bool }}" prometheus_alertmanager_user: "admin" + +############ +# Vitrage +############ +enable_vitrage_prometheus_datasource: "{{ enable_prometheus | bool }}" diff --git a/ansible/roles/prometheus/templates/prometheus-alertmanager.yml.j2 b/ansible/roles/prometheus/templates/prometheus-alertmanager.yml.j2 index 4918162978..ce4f6a6593 100644 --- a/ansible/roles/prometheus/templates/prometheus-alertmanager.yml.j2 +++ b/ansible/roles/prometheus/templates/prometheus-alertmanager.yml.j2 @@ -8,4 +8,13 @@ route: repeat_interval: 3h receivers: - name: default-receiver +{% if enable_vitrage | bool and enable_vitrage_prometheus_datasource | bool %} + webhook_configs: + - send_resolved: true + url: '{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ vitrage_api_port }}/v1/event' + http_config: + basic_auth: + username: '{{ keystone_admin_user }}' + password: '{{ keystone_admin_password }}' +{% endif %} templates: [] diff --git a/ansible/roles/vitrage/defaults/main.yml b/ansible/roles/vitrage/defaults/main.yml index 5c4c22d507..3138f6aed7 100644 --- a/ansible/roles/vitrage/defaults/main.yml +++ b/ansible/roles/vitrage/defaults/main.yml @@ -152,6 +152,8 @@ vitrage_datasource: # Document process to deploy vitrage+heat. - name: "heat.stack" enabled: "no" + - name: "prometheus" + enabled: "{{ enable_vitrage_prometheus_datasource | bool }}" vitrage_datasources: "{{ vitrage_datasource | selectattr('enabled', 'equalto', true) | list }}" diff --git a/ansible/roles/vitrage/templates/wsgi-vitrage.conf.j2 b/ansible/roles/vitrage/templates/wsgi-vitrage.conf.j2 index 0314c0cebc..5d6da25ad4 100644 --- a/ansible/roles/vitrage/templates/wsgi-vitrage.conf.j2 +++ b/ansible/roles/vitrage/templates/wsgi-vitrage.conf.j2 @@ -26,4 +26,7 @@ TraceEnable off WSGIDaemonProcess vitrage group=vitrage processes={{ openstack_service_workers }} threads=1 user=vitrage python-path={{ python_path }} WSGIProcessGroup vitrage WSGIScriptAlias / "/var/www/cgi-bin/vitrage/app.wsgi" +{% if enable_vitrage_prometheus_datasource | bool %} + WSGIPassAuthorization On +{% endif %} diff --git a/releasenotes/notes/add-prometheus-as-vitrage-datasource-3439b3f9925b8e8e.yaml b/releasenotes/notes/add-prometheus-as-vitrage-datasource-3439b3f9925b8e8e.yaml new file mode 100644 index 0000000000..3440c21617 --- /dev/null +++ b/releasenotes/notes/add-prometheus-as-vitrage-datasource-3439b3f9925b8e8e.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Configure Prometheus as Vitrage datasource automatically.