Add haproxy prometheus/alertmanager endpoint for Ceph Dashboard

This change adds the prometheus and alertmanager endpoints which
are on the same grafana network and allow us to just use a single
vip to access the prometheus and alertmanager instances from the
ceph dashboard when enabled.
We already did it for grafana [1] and we would like to do the same
for prometheus and alertmanager.

[1] https://github.com/ceph/ceph-ansible/blob/master/roles/ceph-dashboard/tasks/configure_dashboard.yml#L192

Change-Id: I0dbcde302a3abdfccc3dd996b1c238e25064dd12
This commit is contained in:
Francesco Pantano 2021-04-09 10:24:47 +02:00
parent 3521c10972
commit 92c76046a8

View File

@ -706,6 +706,10 @@ class tripleo::haproxy (
zaqar_ws_ssl_port => 3000, zaqar_ws_ssl_port => 3000,
ceph_grafana_port => 3100, ceph_grafana_port => 3100,
ceph_grafana_ssl_port => 3100, ceph_grafana_ssl_port => 3100,
ceph_prometheus_port => 9092,
ceph_prometheus_ssl_port => 9092,
ceph_alertmanager_port => 9093,
ceph_alertmanager_ssl_port => 9093,
ceph_dashboard_port => 8444, ceph_dashboard_port => 8444,
ceph_dashboard_ssl_port => 8444, ceph_dashboard_ssl_port => 8444,
} }
@ -937,6 +941,34 @@ class tripleo::haproxy (
service_network => $ceph_grafana_network, service_network => $ceph_grafana_network,
member_options => union($haproxy_member_options, $internal_tls_member_options), member_options => union($haproxy_member_options, $internal_tls_member_options),
} }
::tripleo::haproxy::endpoint { 'ceph_prometheus':
internal_ip => hiera('ceph_grafana_vip', $controller_virtual_ip),
service_port => $ports[ceph_prometheus_port],
ip_addresses => hiera('ceph_grafana_node_ips', $controller_hosts_real),
server_names => hiera('ceph_grafana_node_names', $controller_hosts_names_real),
mode => 'http',
public_ssl_port => $ports[ceph_prometheus_ssl_port],
listen_options => merge($default_listen_options, {
'option' => [ 'httpchk GET /metrics' ],
'balance' => 'source',
}),
service_network => $ceph_grafana_network,
member_options => $haproxy_member_options,
}
::tripleo::haproxy::endpoint { 'ceph_alertmanager':
internal_ip => hiera('ceph_grafana_vip', $controller_virtual_ip),
service_port => $ports[ceph_alertmanager_port],
ip_addresses => hiera('ceph_grafana_node_ips', $controller_hosts_real),
server_names => hiera('ceph_grafana_node_names', $controller_hosts_names_real),
mode => 'http',
public_ssl_port => $ports[ceph_alertmanager_ssl_port],
listen_options => merge($default_listen_options, {
'option' => [ 'httpchk GET /' ],
'balance' => 'source',
}),
service_network => $ceph_grafana_network,
member_options => $haproxy_member_options,
}
} }
if $ceph_dashboard { if $ceph_dashboard {