From 5927148c4b5813180204c2983b5c95b69a2ad265 Mon Sep 17 00:00:00 2001 From: Michele Baldessari Date: Wed, 13 Jul 2016 16:30:45 -0400 Subject: Make ::tripleo::profile::base classes work with multiple nodes In the Next Generation HA architecture a number of active/active services will be run via systemd. In order for this to work we need to make sure that the sync_db operation only takes place on the bootstrap node, just like it is done today for the pacemaker profiles. We do this by removing sync_db as a parameter and instead set it to true or false depending if the hostname matches the bootstrap_node as it is done today in the pacemaker role. Note that we call hiera('bootstrap_nodeid', undef) because if a profile is included on a non controller node that variable will be undefined. The following testing was done: - HA puppet-pacemaker.yaml scenario with three computes - NonHA with one controller - NonHA with three controllers Fixes-Bug: 1600149 Co-Author: cmsj@tenshu.net Change-Id: I04a7b9e3c18627ea512000a34357acb7f27d6e0e Implements: blueprint ha-lightweight-architecture --- manifests/profile/pacemaker/ceilometer/collector.pp | 4 +--- manifests/profile/pacemaker/cinder/api.pp | 4 +--- manifests/profile/pacemaker/glance.pp | 4 +--- manifests/profile/pacemaker/gnocchi/api.pp | 11 ----------- manifests/profile/pacemaker/heat/engine.pp | 4 +--- manifests/profile/pacemaker/keystone.pp | 8 +------- manifests/profile/pacemaker/neutron/plugins/ml2.pp | 13 +++---------- manifests/profile/pacemaker/neutron/plugins/nuage.pp | 13 +++---------- manifests/profile/pacemaker/neutron/plugins/opencontrail.pp | 13 +++---------- manifests/profile/pacemaker/neutron/plugins/plumgrid.pp | 13 +++---------- manifests/profile/pacemaker/nova/api.pp | 4 +--- manifests/profile/pacemaker/sahara/engine.pp | 4 +--- 12 files changed, 19 insertions(+), 76 deletions(-) (limited to 'manifests/profile/pacemaker') diff --git a/manifests/profile/pacemaker/ceilometer/collector.pp b/manifests/profile/pacemaker/ceilometer/collector.pp index 2a838f2..6610a07 100644 --- a/manifests/profile/pacemaker/ceilometer/collector.pp +++ b/manifests/profile/pacemaker/ceilometer/collector.pp @@ -40,9 +40,7 @@ class tripleo::profile::pacemaker::ceilometer::collector ( include ::ceilometer::params include ::tripleo::profile::pacemaker::ceilometer - class { '::tripleo::profile::base::ceilometer::collector': - sync_db => (downcase($::hostname) == $pacemaker_master), - } + include ::tripleo::profile::base::ceilometer::collector if $step >= 5 and downcase($::hostname) == $pacemaker_master { $ceilometer_backend = downcase(hiera('ceilometer_backend', 'mongodb')) diff --git a/manifests/profile/pacemaker/cinder/api.pp b/manifests/profile/pacemaker/cinder/api.pp index 2c9cedf..6354244 100644 --- a/manifests/profile/pacemaker/cinder/api.pp +++ b/manifests/profile/pacemaker/cinder/api.pp @@ -45,9 +45,7 @@ class tripleo::profile::pacemaker::cinder::api ( $pacemaker_master = false } - class { '::tripleo::profile::base::cinder::api': - sync_db => $pacemaker_master, - } + include ::tripleo::profile::base::cinder::api if $step >= 5 and $pacemaker_master { pacemaker::resource::service { $::cinder::params::api_service : diff --git a/manifests/profile/pacemaker/glance.pp b/manifests/profile/pacemaker/glance.pp index 10f4f03..91fddf6 100644 --- a/manifests/profile/pacemaker/glance.pp +++ b/manifests/profile/pacemaker/glance.pp @@ -76,9 +76,7 @@ class tripleo::profile::pacemaker::glance ( } include ::tripleo::profile::base::glance::api - class { '::tripleo::profile::base::glance::registry': - sync_db => $pacemaker_master, - } + include ::tripleo::profile::base::glance::registry if $step >= 4 { if $glance_backend == 'file' and $glance_file_pcmk_manage { diff --git a/manifests/profile/pacemaker/gnocchi/api.pp b/manifests/profile/pacemaker/gnocchi/api.pp index 684527f..da65731 100644 --- a/manifests/profile/pacemaker/gnocchi/api.pp +++ b/manifests/profile/pacemaker/gnocchi/api.pp @@ -18,29 +18,18 @@ # # === Parameters # -# [*pacemaker_master*] -# (Optional) The hostname of the node responsible for bootstrapping tasks -# Defaults to hiera('bootstrap_nodeid') -# # [*step*] # (Optional) The current step in deployment. See tripleo-heat-templates # for more details. # Defaults to hiera('step') -# -# [*sync_db*] -# (Optional) Whether to run db sync -# Defaults to undef class tripleo::profile::pacemaker::gnocchi::api ( - $pacemaker_master = hiera('bootstrap_nodeid'), $step = hiera('step'), - $sync_db = true, ) { include ::tripleo::profile::pacemaker::gnocchi class { '::tripleo::profile::base::gnocchi::api': step => $step, - sync_db => (downcase($::hostname) == $pacemaker_master), } } diff --git a/manifests/profile/pacemaker/heat/engine.pp b/manifests/profile/pacemaker/heat/engine.pp index 47b8a09..158c138 100644 --- a/manifests/profile/pacemaker/heat/engine.pp +++ b/manifests/profile/pacemaker/heat/engine.pp @@ -39,9 +39,7 @@ class tripleo::profile::pacemaker::heat::engine ( } include ::tripleo::profile::pacemaker::heat - class { '::tripleo::profile::base::heat::engine': - sync_db => $pacemaker_master, - } + include ::tripleo::profile::base::heat::engine if $step >= 5 and $pacemaker_master { pacemaker::resource::service { $::heat::params::engine_service_name : diff --git a/manifests/profile/pacemaker/keystone.pp b/manifests/profile/pacemaker/keystone.pp index 46a40db..5a3701b 100644 --- a/manifests/profile/pacemaker/keystone.pp +++ b/manifests/profile/pacemaker/keystone.pp @@ -46,17 +46,11 @@ class tripleo::profile::pacemaker::keystone ( if $::hostname == downcase($bootstrap_node) { $pacemaker_master = true - $manage_roles = true } else { $pacemaker_master = false - $manage_roles = false } - class { '::tripleo::profile::base::keystone': - sync_db => $pacemaker_master, - manage_roles => $manage_roles, - manage_endpoint => $manage_roles - } + include ::tripleo::profile::base::keystone if $step >= 5 and $pacemaker_master and $enable_load_balancer { pacemaker::constraint::base { 'haproxy-then-keystone-constraint': diff --git a/manifests/profile/pacemaker/neutron/plugins/ml2.pp b/manifests/profile/pacemaker/neutron/plugins/ml2.pp index 6c9d8b1..e5e13b7 100644 --- a/manifests/profile/pacemaker/neutron/plugins/ml2.pp +++ b/manifests/profile/pacemaker/neutron/plugins/ml2.pp @@ -18,19 +18,12 @@ # # === Parameters # -# [*pacemaker_master*] -# (Optional) The hostname of the pacemaker master -# Defaults to hiera('bootstrap_nodeid', undef) -# -class tripleo::profile::pacemaker::neutron::plugins::ml2 ( - $pacemaker_master = hiera('bootstrap_nodeid', undef), -) { +class tripleo::profile::pacemaker::neutron::plugins::ml2 +{ include ::neutron::params include ::tripleo::profile::pacemaker::neutron - class { '::tripleo::profile::base::neutron::plugins::ml2': - sync_db => ($::hostname == downcase($pacemaker_master)) - } + include ::tripleo::profile::base::neutron::plugins::ml2 } diff --git a/manifests/profile/pacemaker/neutron/plugins/nuage.pp b/manifests/profile/pacemaker/neutron/plugins/nuage.pp index ea40d38..de00761 100644 --- a/manifests/profile/pacemaker/neutron/plugins/nuage.pp +++ b/manifests/profile/pacemaker/neutron/plugins/nuage.pp @@ -18,16 +18,9 @@ # # === Parameters # -# [*pacemaker_master*] -# (Optional) The hostname of the pacemaker master -# Defaults to hiera('bootstrap_nodeid', undef) -# -class tripleo::profile::pacemaker::neutron::plugins::nuage ( - $pacemaker_master = hiera('bootstrap_nodeid', undef), -) { +class tripleo::profile::pacemaker::neutron::plugins::nuage +{ - class { '::tripleo::profile::base::neutron::plugins::nuage': - sync_db => ($::hostname == downcase($pacemaker_master)) - } + include ::tripleo::profile::base::neutron::plugins::nuage } diff --git a/manifests/profile/pacemaker/neutron/plugins/opencontrail.pp b/manifests/profile/pacemaker/neutron/plugins/opencontrail.pp index 8db3cb2..f1568e9 100644 --- a/manifests/profile/pacemaker/neutron/plugins/opencontrail.pp +++ b/manifests/profile/pacemaker/neutron/plugins/opencontrail.pp @@ -18,16 +18,9 @@ # # === Parameters # -# [*pacemaker_master*] -# (Optional) The hostname of the pacemaker master -# Defaults to hiera('bootstrap_nodeid', undef) -# -class tripleo::profile::pacemaker::neutron::plugins::opencontrail ( - $pacemaker_master = hiera('bootstrap_nodeid', undef), -) { +class tripleo::profile::pacemaker::neutron::plugins::opencontrail +{ - class { '::tripleo::profile::base::neutron::plugins::opencontrail': - sync_db => ($::hostname == downcase($pacemaker_master)) - } + include ::tripleo::profile::base::neutron::plugins::opencontrail } diff --git a/manifests/profile/pacemaker/neutron/plugins/plumgrid.pp b/manifests/profile/pacemaker/neutron/plugins/plumgrid.pp index 57f9e31..7313ef9 100644 --- a/manifests/profile/pacemaker/neutron/plugins/plumgrid.pp +++ b/manifests/profile/pacemaker/neutron/plugins/plumgrid.pp @@ -18,16 +18,9 @@ # # === Parameters # -# [*pacemaker_master*] -# (Optional) The hostname of the pacemaker master -# Defaults to hiera('bootstrap_nodeid', undef) -# -class tripleo::profile::pacemaker::neutron::plugins::plumgrid ( - $pacemaker_master = hiera('bootstrap_nodeid', undef), -) { +class tripleo::profile::pacemaker::neutron::plugins::plumgrid +{ - class { '::tripleo::profile::base::neutron::plugins::plumgrid': - sync_db => ($::hostname == downcase($pacemaker_master)) - } + include ::tripleo::profile::base::neutron::plugins::plumgrid } diff --git a/manifests/profile/pacemaker/nova/api.pp b/manifests/profile/pacemaker/nova/api.pp index 30ab733..8a6dc8d 100644 --- a/manifests/profile/pacemaker/nova/api.pp +++ b/manifests/profile/pacemaker/nova/api.pp @@ -42,9 +42,7 @@ class tripleo::profile::pacemaker::nova::api ( stop => '/bin/true', } - class { '::tripleo::profile::base::nova::api': - sync_db => (downcase($::hostname) == $pacemaker_master), - } + include ::tripleo::profile::base::nova::api if $step >= 5 and downcase($::hostname) == $pacemaker_master { pacemaker::resource::service { $::nova::params::api_service_name: diff --git a/manifests/profile/pacemaker/sahara/engine.pp b/manifests/profile/pacemaker/sahara/engine.pp index 6265e80..850c645 100644 --- a/manifests/profile/pacemaker/sahara/engine.pp +++ b/manifests/profile/pacemaker/sahara/engine.pp @@ -39,9 +39,7 @@ class tripleo::profile::pacemaker::sahara::engine ( } include ::tripleo::profile::pacemaker::sahara - class { '::tripleo::profile::base::sahara::engine': - sync_db => $pacemaker_master - } + include ::tripleo::profile::base::sahara::engine if $step >= 5 and $pacemaker_master { pacemaker::resource::service { $::sahara::params::engine_service_name : -- cgit 1.2.3-korg