Make ::tripleo::profile::base classes work with multiple nodes
authorMichele Baldessari <michele@acksyn.org>
Wed, 13 Jul 2016 20:30:45 +0000 (16:30 -0400)
committerMichele Baldessari <michele@acksyn.org>
Mon, 18 Jul 2016 19:45:25 +0000 (21:45 +0200)
commit5927148c4b5813180204c2983b5c95b69a2ad265
treefd901117f33fe45e5e988c3de3432268548080e9
parent4f0582ea40b6d1d2330bfd7683ab40852ed09403
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
29 files changed:
manifests/profile/base/ceilometer/collector.pp
manifests/profile/base/cinder/api.pp
manifests/profile/base/glance/registry.pp
manifests/profile/base/gnocchi/api.pp
manifests/profile/base/heat/engine.pp
manifests/profile/base/ironic.pp
manifests/profile/base/keystone.pp
manifests/profile/base/manila/scheduler.pp
manifests/profile/base/neutron.pp
manifests/profile/base/neutron/plugins/ml2.pp
manifests/profile/base/neutron/plugins/nuage.pp
manifests/profile/base/neutron/plugins/opencontrail.pp
manifests/profile/base/neutron/plugins/plumgrid.pp
manifests/profile/base/neutron/server.pp
manifests/profile/base/nova/api.pp
manifests/profile/base/sahara/engine.pp
manifests/profile/base/trove/api.pp
manifests/profile/pacemaker/ceilometer/collector.pp
manifests/profile/pacemaker/cinder/api.pp
manifests/profile/pacemaker/glance.pp
manifests/profile/pacemaker/gnocchi/api.pp
manifests/profile/pacemaker/heat/engine.pp
manifests/profile/pacemaker/keystone.pp
manifests/profile/pacemaker/neutron/plugins/ml2.pp
manifests/profile/pacemaker/neutron/plugins/nuage.pp
manifests/profile/pacemaker/neutron/plugins/opencontrail.pp
manifests/profile/pacemaker/neutron/plugins/plumgrid.pp
manifests/profile/pacemaker/nova/api.pp
manifests/profile/pacemaker/sahara/engine.pp