aboutsummaryrefslogtreecommitdiffstats
path: root/manifests/profile/base
diff options
context:
space:
mode:
authorMichele Baldessari <michele@acksyn.org>2016-07-13 16:30:45 -0400
committerMichele Baldessari <michele@acksyn.org>2016-07-18 21:45:25 +0200
commit5927148c4b5813180204c2983b5c95b69a2ad265 (patch)
treefd901117f33fe45e5e988c3de3432268548080e9 /manifests/profile/base
parent4f0582ea40b6d1d2330bfd7683ab40852ed09403 (diff)
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
Diffstat (limited to 'manifests/profile/base')
-rw-r--r--manifests/profile/base/ceilometer/collector.pp18
-rw-r--r--manifests/profile/base/cinder/api.pp17
-rw-r--r--manifests/profile/base/glance/registry.pp15
-rw-r--r--manifests/profile/base/gnocchi/api.pp15
-rw-r--r--manifests/profile/base/heat/engine.pp15
-rw-r--r--manifests/profile/base/ironic.pp19
-rw-r--r--manifests/profile/base/keystone.pp31
-rw-r--r--manifests/profile/base/manila/scheduler.pp17
-rw-r--r--manifests/profile/base/neutron.pp4
-rw-r--r--manifests/profile/base/neutron/plugins/ml2.pp15
-rw-r--r--manifests/profile/base/neutron/plugins/nuage.pp19
-rw-r--r--manifests/profile/base/neutron/plugins/opencontrail.pp19
-rw-r--r--manifests/profile/base/neutron/plugins/plumgrid.pp19
-rw-r--r--manifests/profile/base/neutron/server.pp32
-rw-r--r--manifests/profile/base/nova/api.pp17
-rw-r--r--manifests/profile/base/sahara/engine.pp18
-rw-r--r--manifests/profile/base/trove/api.pp17
17 files changed, 198 insertions, 109 deletions
diff --git a/manifests/profile/base/ceilometer/collector.pp b/manifests/profile/base/ceilometer/collector.pp
index c294e56..b0a986f 100644
--- a/manifests/profile/base/ceilometer/collector.pp
+++ b/manifests/profile/base/ceilometer/collector.pp
@@ -18,20 +18,24 @@
#
# === Parameters
#
+# [*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
# for more details.
# Defaults to hiera('step')
-#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to true
-#
class tripleo::profile::base::ceilometer::collector (
- $step = hiera('step'),
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
$ceilometer_backend = downcase(hiera('ceilometer_backend', 'mongodb'))
# MongoDB
diff --git a/manifests/profile/base/cinder/api.pp b/manifests/profile/base/cinder/api.pp
index a2da25f..ad970f6 100644
--- a/manifests/profile/base/cinder/api.pp
+++ b/manifests/profile/base/cinder/api.pp
@@ -18,19 +18,24 @@
#
# === 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
# for more details.
# Defaults to hiera('step')
-#
+
class tripleo::profile::base::cinder::api (
- $sync_db = true,
- $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
class { '::tripleo::profile::base::cinder':
pacemaker_master => $sync_db,
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
diff --git a/manifests/profile/base/gnocchi/api.pp b/manifests/profile/base/gnocchi/api.pp
index d415ee9..870a9bb 100644
--- a/manifests/profile/base/gnocchi/api.pp
+++ b/manifests/profile/base/gnocchi/api.pp
@@ -22,20 +22,25 @@
# (Optional) Gnocchi backend string file, swift or rbd
# Defaults to swift
#
+# [*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
# for more details.
# Defaults to hiera('step')
-#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to undef
class tripleo::profile::base::gnocchi::api (
$gnocchi_backend = downcase(hiera('gnocchi_backend', 'swift')),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
$step = hiera('step'),
- $sync_db = true,
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
include ::tripleo::profile::base::gnocchi
diff --git a/manifests/profile/base/heat/engine.pp b/manifests/profile/base/heat/engine.pp
index b48837c..1fd627f 100644
--- a/manifests/profile/base/heat/engine.pp
+++ b/manifests/profile/base/heat/engine.pp
@@ -18,19 +18,24 @@
#
# === Parameters
#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to undef
+# [*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
# for more details.
# Defaults to hiera('step')
-#
+
class tripleo::profile::base::heat::engine (
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
$step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
if $step >= 3 and $sync_db {
include ::heat::db::mysql
diff --git a/manifests/profile/base/ironic.pp b/manifests/profile/base/ironic.pp
index 139654b..dd30dd7 100644
--- a/manifests/profile/base/ironic.pp
+++ b/manifests/profile/base/ironic.pp
@@ -18,18 +18,23 @@
#
# === Parameters
#
+# [*bootstrap_node*]
+# (Optional) The hostname of the node responsible for bootstrapping tasks
+# Defaults to hiera('bootstrap_nodeid')
+#
# [*step*]
# (Optional) The current step of the deployment
# Defaults to hiera('step')
-#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to true
-#
+
class tripleo::profile::base::ironic (
- $step = hiera('step'),
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
if $step >= 3 {
include ::ironic
diff --git a/manifests/profile/base/keystone.pp b/manifests/profile/base/keystone.pp
index 706b78f..9617c11 100644
--- a/manifests/profile/base/keystone.pp
+++ b/manifests/profile/base/keystone.pp
@@ -18,34 +18,33 @@
#
# === Parameters
#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to true
-#
-# [*manage_roles*]
-# (Optional) whether to create keystone admin role
-# Defaults to true
-#
-# [*manage_endpoint*]
-# (Optional) Whether to create keystone endpoints
-# Defaults to true
-#
# [*manage_db_purge*]
# (Optional) Whether keystone token flushing should be enabled
# Defaults to hiera('keystone_enable_db_purge', 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
# for more details.
# Defaults to hiera('step')
-#
+
class tripleo::profile::base::keystone (
- $sync_db = true,
- $manage_roles = true,
- $manage_endpoint = true,
$manage_db_purge = hiera('keystone_enable_db_purge', true),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
$step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ $manage_roles = true
+ $manage_endpoint = true
+ } else {
+ $sync_db = false
+ $manage_roles = false
+ $manage_endpoint = false
+ }
if $step >= 3 and $sync_db {
include ::keystone::db::mysql
diff --git a/manifests/profile/base/manila/scheduler.pp b/manifests/profile/base/manila/scheduler.pp
index b6d7593..3d39c4a 100644
--- a/manifests/profile/base/manila/scheduler.pp
+++ b/manifests/profile/base/manila/scheduler.pp
@@ -18,19 +18,24 @@
#
# === Parameters
#
+# [*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
# for more details.
# Defaults to hiera('step')
-#
-# [*sync_db*]
-# (Optiona) Whether to run db sync.
-# Defaults to true.
-#
+
class tripleo::profile::base::manila::scheduler (
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
$step = hiera('step'),
- $sync_db = true,
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
if $step >= 3 and $sync_db {
include ::manila::db::mysql
diff --git a/manifests/profile/base/neutron.pp b/manifests/profile/base/neutron.pp
index 1ee2d90..7b07b1f 100644
--- a/manifests/profile/base/neutron.pp
+++ b/manifests/profile/base/neutron.pp
@@ -23,9 +23,9 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::neutron (
- $step = hiera('step'),
+ $step = hiera('step'),
) {
- if hiera('step') >= 3 {
+ if $step >= 3 {
include ::neutron
include ::neutron::config
}
diff --git a/manifests/profile/base/neutron/plugins/ml2.pp b/manifests/profile/base/neutron/plugins/ml2.pp
index 8218c9e..0193615 100644
--- a/manifests/profile/base/neutron/plugins/ml2.pp
+++ b/manifests/profile/base/neutron/plugins/ml2.pp
@@ -22,20 +22,25 @@
# (Optional) The mechanism drivers to use with the Ml2 plugin
# Defaults to hiera('neutron::plugins::ml2::mechanism_drivers')
#
-# [*sync_db*]
-# (Optional) Whether to run Neutron DB sync operations
-# Defaults to undef
+# [*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
# for more details.
# Defaults to hiera('step')
-#
+
class tripleo::profile::base::neutron::plugins::ml2 (
$mechanism_drivers = hiera('neutron::plugins::ml2::mechanism_drivers'),
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
$step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
include ::tripleo::profile::base::neutron
diff --git a/manifests/profile/base/neutron/plugins/nuage.pp b/manifests/profile/base/neutron/plugins/nuage.pp
index 5d3661e..4ada340 100644
--- a/manifests/profile/base/neutron/plugins/nuage.pp
+++ b/manifests/profile/base/neutron/plugins/nuage.pp
@@ -16,19 +16,24 @@
#
# Nuage Neutron profile for tripleo
#
+# [*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
# for more details.
# Defaults to hiera('step')
-#
-# [*sync_db*]
-# (Optional) Whether to run Neutron DB sync operations
-# Defaults to undef
-#
+
class tripleo::profile::base::neutron::plugins::nuage (
- $step = hiera('step'),
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
include ::tripleo::profile::base::neutron
diff --git a/manifests/profile/base/neutron/plugins/opencontrail.pp b/manifests/profile/base/neutron/plugins/opencontrail.pp
index 96d7421..6cd710a 100644
--- a/manifests/profile/base/neutron/plugins/opencontrail.pp
+++ b/manifests/profile/base/neutron/plugins/opencontrail.pp
@@ -16,19 +16,24 @@
#
# Opencontrail Neutron profile for tripleo
#
+# [*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
# for more details.
# Defaults to hiera('step')
-#
-# [*sync_db*]
-# (Optional) Whether to run Neutron DB sync operations
-# Defaults to undef
-#
+
class tripleo::profile::base::neutron::plugins::opencontrail (
- $step = hiera('step'),
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
include ::tripleo::profile::base::neutron
diff --git a/manifests/profile/base/neutron/plugins/plumgrid.pp b/manifests/profile/base/neutron/plugins/plumgrid.pp
index f5cd273..efd75ac 100644
--- a/manifests/profile/base/neutron/plugins/plumgrid.pp
+++ b/manifests/profile/base/neutron/plugins/plumgrid.pp
@@ -18,19 +18,24 @@
#
# === Parameters
#
+# [*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
# for more details.
# Defaults to hiera('step')
-#
-# [*sync_db*]
-# (Optional) Whether to run Neutron DB sync operations
-# Defaults to undef
-#
+
class tripleo::profile::base::neutron::plugins::plumgrid (
- $step = hiera('step'),
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
include ::tripleo::profile::base::neutron
diff --git a/manifests/profile/base/neutron/server.pp b/manifests/profile/base/neutron/server.pp
index 8b5539e..5a1b377 100644
--- a/manifests/profile/base/neutron/server.pp
+++ b/manifests/profile/base/neutron/server.pp
@@ -18,24 +18,46 @@
#
# === Parameters
#
+# [*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
# for more details.
# Defaults to hiera('step')
#
class tripleo::profile::base::neutron::server (
- $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
include ::tripleo::profile::base::neutron
- if $step >= 3 {
+ if $step >= 3 and $sync_db {
include ::neutron::db::mysql
}
- if $step >= 4 {
+ # We start neutron-server on the bootstrap node first, because
+ # it will try to populate tables and we need to make sure this happens
+ # before it starts on other nodes
+ if $step >= 4 and $sync_db {
include ::neutron::server::notifications
- include ::neutron::server
+ # We need to override the hiera value neutron::server::sync_db which is set
+ # to true
+ class { '::neutron::server':
+ sync_db => $sync_db,
+ }
+ }
+ if $step >= 5 and !$sync_db {
+ include ::neutron::server::notifications
+ class { '::neutron::server':
+ sync_db => $sync_db,
+ }
}
-
}
diff --git a/manifests/profile/base/nova/api.pp b/manifests/profile/base/nova/api.pp
index 3b36c57..9c7d295 100644
--- a/manifests/profile/base/nova/api.pp
+++ b/manifests/profile/base/nova/api.pp
@@ -16,21 +16,24 @@
#
# Nova API profile for tripleo
#
-# === Parameters
+# [*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
# for more details.
# Defaults to hiera('step')
#
-# [*sync_db*]
-# (Optional) Whether to run db sync
-# Defaults to true
-#
class tripleo::profile::base::nova::api (
- $step = hiera('step'),
- $sync_db = true,
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
include ::tripleo::profile::base::nova
diff --git a/manifests/profile/base/sahara/engine.pp b/manifests/profile/base/sahara/engine.pp
index 8fa1f5f..f792a96 100644
--- a/manifests/profile/base/sahara/engine.pp
+++ b/manifests/profile/base/sahara/engine.pp
@@ -18,19 +18,25 @@
#
# === 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
# for more details.
# Defaults to hiera('step')
-#
+
class tripleo::profile::base::sahara::engine (
- $sync_db = true,
- $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
+
if $step >= 3 and $sync_db {
include ::sahara::db::mysql
}
diff --git a/manifests/profile/base/trove/api.pp b/manifests/profile/base/trove/api.pp
index a98f114..06edf7f 100644
--- a/manifests/profile/base/trove/api.pp
+++ b/manifests/profile/base/trove/api.pp
@@ -18,19 +18,24 @@
#
# === 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
# for more details.
# Defaults to hiera('step')
-#
+
class tripleo::profile::base::trove::api (
- $sync_db = true,
- $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
) {
+ if $::hostname == downcase($bootstrap_node) {
+ $sync_db = true
+ } else {
+ $sync_db = false
+ }
if $step >= 3 and $sync_db {
include ::trove::db::mysql