From 693a8087bc4a4c515c46d533c77d0becf64f3399 Mon Sep 17 00:00:00 2001 From: Francesco Pantano Date: Fri, 9 Apr 2021 17:16:03 +0200 Subject: [PATCH] Config the monitoring stack components api urls using a VIP When dashboard_frontend_vip is provided, all the services should be configured using the related VIP. A new VIP variable is added for both prometheus and alertmanager: we're already able to properly config the grafana vip using dashboard_frontend_vip variable. This change adds the same variable for both prometheus and alertmanager. Signed-off-by: Francesco Pantano (cherry picked from commit 441651638d883b73c960363becae54096c8cee85) --- group_vars/all.yml.sample | 2 ++ group_vars/rhcs.yml.sample | 2 ++ .../tasks/configure_dashboard.yml | 24 +++++++++++++++---- roles/ceph-defaults/defaults/main.yml | 2 ++ 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/group_vars/all.yml.sample b/group_vars/all.yml.sample index 9864cf490..44eaddb96 100644 --- a/group_vars/all.yml.sample +++ b/group_vars/all.yml.sample @@ -661,6 +661,8 @@ dummy: #dashboard_rgw_api_admin_resource: '' #dashboard_rgw_api_no_ssl_verify: False #dashboard_frontend_vip: '' +#alertmanager_frontend_vip: '' +#prometheus_frontend_vip: '' #node_exporter_container_image: "docker.io/prom/node-exporter:v0.17.0" #node_exporter_port: 9100 #grafana_admin_user: admin diff --git a/group_vars/rhcs.yml.sample b/group_vars/rhcs.yml.sample index f98fda434..76d652042 100644 --- a/group_vars/rhcs.yml.sample +++ b/group_vars/rhcs.yml.sample @@ -661,6 +661,8 @@ ceph_docker_registry_auth: true #dashboard_rgw_api_admin_resource: '' #dashboard_rgw_api_no_ssl_verify: False #dashboard_frontend_vip: '' +#prometheus_frontend_vip: '' +#alertmanager_frontend_vip: '' node_exporter_container_image: registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.6 #node_exporter_port: 9100 #grafana_admin_user: admin diff --git a/roles/ceph-dashboard/tasks/configure_dashboard.yml b/roles/ceph-dashboard/tasks/configure_dashboard.yml index 80812a7f8..ce796875f 100644 --- a/roles/ceph-dashboard/tasks/configure_dashboard.yml +++ b/roles/ceph-dashboard/tasks/configure_dashboard.yml @@ -200,12 +200,26 @@ vars: grafana_server_addr: '{{ item }}' -- name: config grafana api url vip - command: "{{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard set-grafana-api-url {{ dashboard_protocol }}://{{ dashboard_frontend_vip }}:{{ grafana_port }}" - delegate_to: "{{ groups[mon_group_name][0] }}" +- name: config monitoring api url vip run_once: true - changed_when: false - when: dashboard_frontend_vip is defined and dashboard_frontend_vip |length > 0 + block: + - name: config grafana api url vip + command: "{{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard set-grafana-api-url {{ dashboard_protocol }}://{{ dashboard_frontend_vip }}:{{ grafana_port }}" + delegate_to: "{{ groups[mon_group_name][0] }}" + changed_when: false + when: dashboard_frontend_vip is defined and dashboard_frontend_vip | length > 0 + + - name: config alertmanager api url + command: "{{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard set-alertmanager-api-host {{ dashboard_protocol }}://{{ alertmanager_frontend_vip }}:{{ alertmanager_port }}" + delegate_to: "{{ groups[mon_group_name][0] }}" + changed_when: false + when: alertmanager_frontend_vip is defined and alertmanager_frontend_vip | length > 0 + + - name: config prometheus api url + command: "{{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard set-prometheus-api-host {{ dashboard_protocol }}://{{ prometheus_frontend_vip }}:{{ prometheus_port }}" + delegate_to: "{{ groups[mon_group_name][0] }}" + changed_when: false + when: prometheus_frontend_vip is defined and prometheus_frontend_vip | length > 0 - name: dashboard object gateway management frontend when: groups.get(rgw_group_name, []) | length > 0 diff --git a/roles/ceph-defaults/defaults/main.yml b/roles/ceph-defaults/defaults/main.yml index b3e1a8394..404bfbd4e 100644 --- a/roles/ceph-defaults/defaults/main.yml +++ b/roles/ceph-defaults/defaults/main.yml @@ -653,6 +653,8 @@ dashboard_rgw_api_user_id: ceph-dashboard dashboard_rgw_api_admin_resource: '' dashboard_rgw_api_no_ssl_verify: False dashboard_frontend_vip: '' +prometheus_frontend_vip: '' +alertmanager_frontend_vip: '' node_exporter_container_image: "docker.io/prom/node-exporter:v0.17.0" node_exporter_port: 9100 grafana_admin_user: admin