Add alarms and notification agents coordination
In this patch next features have been implemented: 1. Set a notification workload_partitioning to True, for turning on notification agents partitioning 2. Change alarm evaluator resource configuration in pacemaker to run it on each controller node Change-Id: Id74094d64b6c24aa4c4f4ff5d9a5cd2610425c60
This commit is contained in:
parent
b676165102
commit
5adb4d407b
|
@ -116,6 +116,7 @@ class redis::main (
|
||||||
'coordination/backend_url' : value => redis_backend_url($redis_hosts, $redis_sentinel_port, $timeout);
|
'coordination/backend_url' : value => redis_backend_url($redis_hosts, $redis_sentinel_port, $timeout);
|
||||||
'coordination/heartbeat' : value => '1.0';
|
'coordination/heartbeat' : value => '1.0';
|
||||||
'coordination/check_watchers' : value => $timeout;
|
'coordination/check_watchers' : value => $timeout;
|
||||||
|
'notification/workload_partitioning': value => true
|
||||||
}
|
}
|
||||||
|
|
||||||
if $primary_controller {
|
if $primary_controller {
|
||||||
|
@ -125,7 +126,14 @@ class redis::main (
|
||||||
onlyif => 'pcs resource show p_ceilometer-agent-central > /dev/null 2>&1',
|
onlyif => 'pcs resource show p_ceilometer-agent-central > /dev/null 2>&1',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exec {'remove_old_resource_alarm_evaluator':
|
||||||
|
path => '/usr/sbin:/usr/bin:/sbin:/bin',
|
||||||
|
command => 'pcs resource delete p_ceilometer-alarm-evaluator --wait=120',
|
||||||
|
onlyif => 'pcs resource show p_ceilometer-alarm-evaluator > /dev/null 2>&1',
|
||||||
|
}
|
||||||
|
|
||||||
Exec['remove_old_resource_central_agent'] -> Cluster::Corosync::Cs_service["$::ceilometer::params::agent_central_service_name"]
|
Exec['remove_old_resource_central_agent'] -> Cluster::Corosync::Cs_service["$::ceilometer::params::agent_central_service_name"]
|
||||||
|
Exec['remove_old_resource_alarm_evaluator'] -> Cluster::Corosync::Cs_service["$::ceilometer::params::alarm_evaluator_service_name"]
|
||||||
}
|
}
|
||||||
|
|
||||||
file {'redis_ocf_script':
|
file {'redis_ocf_script':
|
||||||
|
@ -152,6 +160,22 @@ class redis::main (
|
||||||
hasrestart => false,
|
hasrestart => false,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cluster::corosync::cs_service { "$::ceilometer::params::alarm_evaluator_service_name":
|
||||||
|
ocf_script => 'ceilometer-alarm-evaluator',
|
||||||
|
csr_parameters => {},
|
||||||
|
csr_metadata => undef,
|
||||||
|
csr_complex_type => 'clone',
|
||||||
|
csr_ms_metadata => { 'interleave' => true },
|
||||||
|
csr_mon_intr => '20',
|
||||||
|
csr_mon_timeout => '10',
|
||||||
|
csr_timeout => '60',
|
||||||
|
service_name => $::ceilometer::params::alarm_evaluator_service_name,
|
||||||
|
package_name => $::ceilometer::params::alarm_evaluator_package_name,
|
||||||
|
service_title => 'ceilometer-alarm-evaluator',
|
||||||
|
primary => $primary_controller,
|
||||||
|
hasrestart => false,
|
||||||
|
}
|
||||||
|
|
||||||
cluster::corosync::cs_service { 'redis':
|
cluster::corosync::cs_service { 'redis':
|
||||||
ocf_script => 'redis-server',
|
ocf_script => 'redis-server',
|
||||||
csr_parameters => {},
|
csr_parameters => {},
|
||||||
|
@ -172,7 +196,8 @@ class redis::main (
|
||||||
File['redis_ocf_script'] ->
|
File['redis_ocf_script'] ->
|
||||||
Cluster::Corosync::Cs_service['redis'] ->
|
Cluster::Corosync::Cs_service['redis'] ->
|
||||||
Ceilometer_config <||> ->
|
Ceilometer_config <||> ->
|
||||||
Cluster::Corosync::Cs_service["$::ceilometer::params::agent_central_service_name"]
|
Cluster::Corosync::Cs_service["$::ceilometer::params::agent_central_service_name"] ->
|
||||||
|
Cluster::Corosync::Cs_service["$::ceilometer::params::alarm_evaluator_service_name"]
|
||||||
|
|
||||||
if !$primary_controller {
|
if !$primary_controller {
|
||||||
exec {'waiting-for-agent-up-on-primary':
|
exec {'waiting-for-agent-up-on-primary':
|
||||||
|
@ -182,6 +207,13 @@ class redis::main (
|
||||||
path => '/usr/sbin:/usr/bin:/sbin:/bin',
|
path => '/usr/sbin:/usr/bin:/sbin:/bin',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exec {'waiting-for-evaluator-up-on-primary':
|
||||||
|
tries => 10,
|
||||||
|
try_sleep => 30,
|
||||||
|
command => "pcs resource | grep -A 1 p_${::ceilometer::params::alarm_evaluator_service_name} | grep Started > /dev/null 2>&1",
|
||||||
|
path => '/usr/sbin:/usr/bin:/sbin:/bin',
|
||||||
|
}
|
||||||
|
|
||||||
exec {'waiting-for-redis-up-on-primary':
|
exec {'waiting-for-redis-up-on-primary':
|
||||||
tries => 10,
|
tries => 10,
|
||||||
try_sleep => 30,
|
try_sleep => 30,
|
||||||
|
@ -197,6 +229,14 @@ class redis::main (
|
||||||
provider => 'pacemaker',
|
provider => 'pacemaker',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
service {"p_${::ceilometer::params::alarm_evaluator_service_name}":
|
||||||
|
enable => true,
|
||||||
|
ensure => 'running',
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
provider => 'pacemaker',
|
||||||
|
}
|
||||||
|
|
||||||
service {"p_${::redis::params::service}":
|
service {"p_${::redis::params::service}":
|
||||||
enable => true,
|
enable => true,
|
||||||
ensure => 'running',
|
ensure => 'running',
|
||||||
|
@ -210,7 +250,9 @@ class redis::main (
|
||||||
Cluster::Corosync::Cs_service['redis'] ->
|
Cluster::Corosync::Cs_service['redis'] ->
|
||||||
Exec['waiting-for-agent-up-on-primary'] ->
|
Exec['waiting-for-agent-up-on-primary'] ->
|
||||||
Ceilometer_config <||> ->
|
Ceilometer_config <||> ->
|
||||||
Cluster::Corosync::Cs_service["$::ceilometer::params::agent_central_service_name"]
|
Cluster::Corosync::Cs_service["$::ceilometer::params::agent_central_service_name"] ->
|
||||||
|
Exec['waiting-for-evaluator-up-on-primary'] ->
|
||||||
|
Cluster::Corosync::Cs_service["$::ceilometer::params::alarm_evaluator_service_name"]
|
||||||
}
|
}
|
||||||
|
|
||||||
service { 'ceilometer-agent-central':
|
service { 'ceilometer-agent-central':
|
||||||
|
@ -218,4 +260,21 @@ class redis::main (
|
||||||
name => $::ceilometer::params::agent_central_service_name,
|
name => $::ceilometer::params::agent_central_service_name,
|
||||||
enable => false,
|
enable => false,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
service { 'ceilometer-alarm-evaluator':
|
||||||
|
ensure => 'stopped',
|
||||||
|
name => $::ceilometer::params::alarm_evaluator_service_name,
|
||||||
|
enable => false,
|
||||||
|
}
|
||||||
|
|
||||||
|
service { 'ceilometer-agent-notification':
|
||||||
|
ensure => 'running',
|
||||||
|
name => $::ceilometer::params::agent_notification_service_name,
|
||||||
|
enable => true,
|
||||||
|
hasstatus => true,
|
||||||
|
hasrestart => true,
|
||||||
|
}
|
||||||
|
|
||||||
|
Ceilometer_config <||> ~> Service['ceilometer-agent-notification']
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue