Merge "post-deploy hook for rhel registration"
[apex-tripleo-heat-templates.git] / puppet / manifests / overcloud_controller_pacemaker.pp
index 276ac02..ba25162 100644 (file)
@@ -127,7 +127,7 @@ if hiera('step') >= 1 {
       'innodb_locks_unsafe_for_binlog'=> '1',
       'query_cache_size'              => '0',
       'query_cache_type'              => '0',
-      'bind-address'                  => hiera('controller_host'),
+      'bind-address'                  => hiera('mysql_bind_host'),
       'max_connections'               => '1024',
       'open_files_limit'              => '-1',
       'wsrep_provider'                => '/usr/lib64/galera/libgalera_smm.so',
@@ -274,7 +274,7 @@ MYSQL_HOST=localhost\n",
   # Create all the database schemas
   # Example DSN format: mysql://user:password@host/dbname
   if $sync_db {
-    $allowed_hosts = ['%',hiera('controller_host')]
+    $allowed_hosts = ['%',hiera('mysql_bind_host')]
     $keystone_dsn = split(hiera('keystone::database_connection'), '[@:/?]')
     class { 'keystone::db::mysql':
       user          => $keystone_dsn[3],
@@ -494,7 +494,6 @@ if hiera('step') >= 3 {
     enabled          => false,
     bridge_mappings  => split(hiera('neutron_bridge_mappings'), ','),
     tunnel_types     => split(hiera('neutron_tunnel_types'), ','),
-    local_ip    => hiera('controller_host'),
   }
 
 
@@ -657,20 +656,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 +1167,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