From 6a89509b2b748bf04c486af9673086dc90e59a7f Mon Sep 17 00:00:00 2001 From: Volodymyr Kornylyuk Date: Mon, 26 Sep 2016 15:33:02 +0300 Subject: [PATCH] Pacemaker fix for coodination and other fixes - start ceilometer-agent-central and aodh-evaluator on all controllers - create kafka topics before hindsight start Change-Id: Icef2d5ad1d2926fa7f794f0da998f2259a1b98a2 --- .../puppet/manifests/coordination.pp | 97 +++++++++++++++++++ deployment_tasks.yaml | 38 +++++--- 2 files changed, 124 insertions(+), 11 deletions(-) create mode 100644 deployment_scripts/puppet/manifests/coordination.pp diff --git a/deployment_scripts/puppet/manifests/coordination.pp b/deployment_scripts/puppet/manifests/coordination.pp new file mode 100644 index 0000000..3159a17 --- /dev/null +++ b/deployment_scripts/puppet/manifests/coordination.pp @@ -0,0 +1,97 @@ + +notice('MODULAR: fuel-plugin-telemetry: coordination.pp') + +if hiera('telemetry::kafka::enabled') { + + include ceilometer::params + include aodh::params + + $metadata = { + 'resource-stickiness' => '1', + } + + $operations = { + 'monitor' => { + 'interval' => '20', + 'timeout' => '10', + }, + 'start' => { + 'timeout' => '360', + }, + 'stop' => { + 'timeout' => '360', + }, + } + + service { 'ceilometer-agent-central': + ensure => 'running', + name => $::ceilometer::params::agent_central_service_name, + enable => true, + hasstatus => true, + hasrestart => true, + } + + service { 'aodh-evaluator': + ensure => 'running', + name => $::aodh::params::evaluator_service_name, + enable => true, + hasstatus => true, + hasrestart => true, + } + + pacemaker::service { $::ceilometer::params::agent_central_service_name : + complex_type => 'clone', + complex_metadata => { 'interleave' => true }, + primitive_type => 'ceilometer-agent-central', + metadata => $metadata, + parameters => { 'user' => 'ceilometer' }, + operations => $operations, + } + + pacemaker::service { $::aodh::params::evaluator_service_name : + complex_type => 'clone', + complex_metadata => { 'interleave' => true }, + primitive_type => 'aodh-evaluator', + metadata => $metadata, + parameters => { 'user' => 'aodh' }, + operations => $operations, + } + + # During deploy of plugin we need to update resource type from simple to + # clone, but this is not working with current implementation of pcmk_resource + # type (https://bugs.launchpad.net/fuel/+bug/1580660), that's why we need a + # workaround below, this dirty workaround should be removed once + # https://bugs.launchpad.net/fuel/+bug/1580660 is fixed. + $old_ceilometer_primitive_exists=inline_template("<%= `if pcs resource show | grep -q '^ p_ceilometer-agent-central'; then /bin/echo true; fi;`%>") + $old_aodh_primitive_exists=inline_template("<%= `if pcs resource show | grep -q '^ p_aodh-evaluator'; then /bin/echo true; fi;`%>") + + if $old_ceilometer_primitive_exists { + + notify { 'Ceilometer agent central simple primitive exists and will be removed': } + + exec { 'remove_old_resource_central_agent': + path => '/usr/sbin:/usr/bin:/sbin:/bin', + command => 'pcs resource delete p_ceilometer-agent-central --wait=120', + } + Exec['remove_old_resource_central_agent'] -> + Pacemaker::Service[$::ceilometer::params::agent_central_service_name] + + } + + if $old_aodh_primitive_exists { + + notify { 'Aodh evaluator simple primitive exists and will be removed': } + + exec { 'remove_old_resource_aodh_evaluator': + path => '/usr/sbin:/usr/bin:/sbin:/bin', + command => 'pcs resource delete p_aodh-evaluator --wait=120', + } + Exec['remove_old_resource_aodh_evaluator'] -> + Pacemaker::Service[$::aodh::params::evaluator_service_name] + } + + Ceilometer_config <||> ~> Service[$::ceilometer::params::agent_central_service_name] + Aodh_config <||> ~> Service[$::aodh::params::evaluator_service_name] + Ceilometer_config <||> ~> Service['ceilometer-agent-notification'] + +} diff --git a/deployment_tasks.yaml b/deployment_tasks.yaml index d9ab2e4..d248ec2 100644 --- a/deployment_tasks.yaml +++ b/deployment_tasks.yaml @@ -243,6 +243,18 @@ puppet_modules: puppet/modules:/etc/puppet/modules timeout: 300 +- id: telemetry-create-topics + type: puppet + version: 2.1.0 + groups: [primary-controller, controller] + required_for: [post_deployment_end, telemetry-hindsight] + role: [primary-kafka, kafka] + requires: [kafka-installation] + parameters: + puppet_manifest: puppet/manifests/create-topics.pp + puppet_modules: puppet/modules:/etc/puppet/modules + timeout: 300 + - id: telemetry-hindsight type: puppet version: 2.1.0 @@ -255,17 +267,7 @@ puppet_modules: puppet/modules:/etc/puppet/modules timeout: 300 -- id: telemetry-create-topics - type: puppet - version: 2.1.0 - groups: [primary-controller, controller] - required_for: [post_deployment_end] - role: [primary-kafka, kafka] - requires: [telemetry-hindsight] - parameters: - puppet_manifest: puppet/manifests/create-topics.pp - puppet_modules: puppet/modules:/etc/puppet/modules - timeout: 300 + - id: telemetry-notifications type: puppet @@ -278,6 +280,20 @@ puppet_modules: puppet/modules:/etc/puppet/modules timeout: 300 +- id: telemetry-coordination + type: puppet + version: 2.1.0 + groups: [primary-controller, controller] + required_for: [post_deployment_end] + requires: [telemetry-heka] + cross-depends: + - name: kafka-installation + - name: telemetry-create-topics + parameters: + puppet_manifest: puppet/manifests/coordination.pp + puppet_modules: puppet/modules:/etc/puppet/modules + timeout: 300 + # skip base tasks - id: ceilometer-radosgw-user type: skipped