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/base/glance/registry.pp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'manifests/profile/base/glance') diff --git a/manifests/profile/base/glance/registry.pp b/manifests/profile/base/glance/registry.pp index 774f646..ce89d12 100644 --- a/manifests/profile/base/glance/registry.pp +++ b/manifests/profile/base/glance/registry.pp @@ -18,9 +18,9 @@ # # === Parameters # -# [*sync_db*] -# (Optional) Whether to run db sync -# Defaults to true +# [*bootstrap_node*] +# (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 @@ -30,12 +30,17 @@ # [*glance_backend*] # (Optional) Glance backend(s) to use. # Defaults to downcase(hiera('glance_backend', 'swift')) -# + class tripleo::profile::base::glance::registry ( - $sync_db = true, + $bootstrap_node = hiera('bootstrap_nodeid', undef), $step = hiera('step'), $glance_backend = downcase(hiera('glance_backend', 'swift')), ) { + if $::hostname == downcase($bootstrap_node) { + $sync_db = true + } else { + $sync_db = false + } if $step >= 3 and $sync_db { include ::glance::db::mysql -- cgit 1.2.3-korg