summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYanis Guenane <yanis.guenane@enovance.com>2015-05-27 15:10:32 +0200
committerGiulio Fidente <gfidente@redhat.com>2015-05-29 15:15:27 -0400
commitc857f5c877c33938f1167a6538ca535d5d2bba26 (patch)
tree4ba07ff28a184454189a76a0fd0114f086cad12c
parentf385dcaef49bbbef64e49e9aa5c4820515c4c2a3 (diff)
Add Heat as a Pacemaker resource
Change-Id: I1c8fc6beacc8352ad2aabe44ff20614ac52c1795
-rw-r--r--puppet/manifests/overcloud_controller_pacemaker.pp87
1 files changed, 79 insertions, 8 deletions
diff --git a/puppet/manifests/overcloud_controller_pacemaker.pp b/puppet/manifests/overcloud_controller_pacemaker.pp
index 276ac02a..15f62555 100644
--- a/puppet/manifests/overcloud_controller_pacemaker.pp
+++ b/puppet/manifests/overcloud_controller_pacemaker.pp
@@ -657,20 +657,20 @@ if hiera('step') >= 3 {
sync_db => $sync_db,
}
class { '::heat::api' :
- manage_service => $non_pcmk_start,
- enabled => $non_pcmk_start,
+ manage_service => false,
+ enabled => false,
}
class { '::heat::api_cfn' :
- manage_service => $non_pcmk_start,
- enabled => $non_pcmk_start,
+ manage_service => false,
+ enabled => false,
}
class { '::heat::api_cloudwatch' :
- manage_service => $non_pcmk_start,
- enabled => $non_pcmk_start,
+ manage_service => false,
+ enabled => false,
}
class { '::heat::engine' :
- manage_service => $non_pcmk_start,
- enabled => $non_pcmk_start,
+ manage_service => false,
+ enabled => false,
}
# Horizon
@@ -1168,6 +1168,77 @@ if hiera('step') >= 4 {
Pacemaker::Resource::Service[$::keystone::params::service_name]],
}
+ # Heat
+ pacemaker::resource::service { $::heat::params::api_service_name :
+ clone_params => 'interleave=true',
+ }
+ pacemaker::resource::service { $::heat::params::api_cloudwatch_service_name :
+ clone_params => 'interleave=true',
+ }
+ pacemaker::resource::service { $::heat::params::api_cfn_service_name :
+ clone_params => 'interleave=true',
+ }
+ pacemaker::resource::service { $::heat::params::engine_service_name :
+ clone_params => 'interleave=true',
+ }
+ pacemaker::constraint::base { 'heat-api-then-heat-api-cfn-constraint':
+ constraint_type => 'order',
+ first_resource => "${::heat::params::api_service_name}-clone",
+ second_resource => "${::heat::params::api_cfn_service_name}-clone",
+ first_action => 'start',
+ second_action => 'start',
+ require => [Pacemaker::Resource::Service[$::heat::params::api_service_name],
+ Pacemaker::Resource::Service[$::heat::params::api_cfn_service_name]],
+ }
+ pacemaker::constraint::colocation { 'heat-api-cfn-with-heat-api-colocation':
+ source => "${::heat::params::api_cfn_service_name}-clone",
+ target => "${::heat::params::api_service_name}-clone",
+ score => 'INFINITY',
+ require => [Pacemaker::Resource::Service[$::heat::params::api_cfn_service_name],
+ Pacemaker::Resource::Service[$::heat::params::api_service_name]],
+ }
+ pacemaker::constraint::base { 'heat-api-cfn-then-heat-api-cloudwatch-constraint':
+ constraint_type => 'order',
+ first_resource => "${::heat::params::api_cfn_service_name}-clone",
+ second_resource => "${::heat::params::api_cloudwatch_service_name}-clone",
+ first_action => 'start',
+ second_action => 'start',
+ require => [Pacemaker::Resource::Service[$::heat::params::api_cloudwatch_service_name],
+ Pacemaker::Resource::Service[$::heat::params::api_cfn_service_name]],
+ }
+ pacemaker::constraint::colocation { 'heat-api-cloudwatch-with-heat-api-cfn-colocation':
+ source => "${::heat::params::api_cloudwatch_service_name}-clone",
+ target => "${::heat::params::api_cfn_service_name}-clone",
+ score => 'INFINITY',
+ require => [Pacemaker::Resource::Service[$::heat::params::api_cfn_service_name],
+ Pacemaker::Resource::Service[$::heat::params::api_cloudwatch_service_name]],
+ }
+ pacemaker::constraint::base { 'heat-api-cloudwatch-then-heat-engine-constraint':
+ constraint_type => 'order',
+ first_resource => "${::heat::params::api_cloudwatch_service_name}-clone",
+ second_resource => "${::heat::params::engine_service_name}-clone",
+ first_action => 'start',
+ second_action => 'start',
+ require => [Pacemaker::Resource::Service[$::heat::params::api_cloudwatch_service_name],
+ Pacemaker::Resource::Service[$::heat::params::engine_service_name]],
+ }
+ pacemaker::constraint::colocation { 'heat-engine-with-heat-api-cloudwatch-colocation':
+ source => "${::heat::params::engine_service_name}-clone",
+ target => "${::heat::params::api_cloudwatch_service_name}-clone",
+ score => 'INFINITY',
+ require => [Pacemaker::Resource::Service[$::heat::params::api_cloudwatch_service_name],
+ Pacemaker::Resource::Service[$::heat::params::engine_service_name]],
+ }
+ pacemaker::constraint::base { 'ceilometer-notification-then-heat-api-constraint':
+ constraint_type => 'order',
+ first_resource => "${::ceilometer::params::agent_notification_service_name}-clone",
+ second_resource => "${::heat::params::api_service_name}-clone",
+ first_action => 'start',
+ second_action => 'start',
+ require => [Pacemaker::Resource::Service[$::heat::params::api_service_name],
+ Pacemaker::Resource::Service[$::ceilometer::params::agent_notification_service_name]],
+ }
+
}
} #END STEP 4