[openstack-dev] [TripleO] puppet pacemaker thoughts... and an idea

Emilien Macchi emilien at redhat.com
Thu May 7 14:42:00 UTC 2015



On 05/06/2015 10:32 PM, Dan Prince wrote:
(...)
> 
> I think this split is a good compromise and would probably even speed up
> the implementation of the remaining pacemaker features too. And removing
> all the pacemaker conditionals we have from the non-pacemaker version
> puts us back in a reasonably clean state I think.
> 

I don't really like having a "fork" of the controller code, which could
become pain to maintain. (ie: each new feature on controllers has to be
coded in both manifests).

I really prefer having parameters & Hiera in the party to enable or not
Pacemaker.

FWIW, here is how we did in SpinalStack:

1) Install Pacemaker / Corosync:
https://github.com/stackforge/puppet-openstack-cloud/blob/master/manifests/clustering.pp

2) Create a wrapper to manage resources:
https://github.com/stackforge/puppet-openstack-cloud/blob/master/manifests/clustering/pacemaker_service.pp
(that use collocation and order wrappers too)

3) Example for Nova API: disable Pacemaker by default:
https://github.com/stackforge/puppet-openstack-cloud/blob/master/manifests/compute/api.pp#L74

4) Since puppet-openstack_extras manage the service in the catalog with
Pacemaker, the code is the same for Pacemaker / non-pacemaker usage:
https://github.com/stackforge/puppet-openstack-cloud/blob/master/manifests/compute/api.pp#L81-L90

5) If pacemaker is enabled (yes, we have a condition...): we enable the
resource:
https://github.com/stackforge/puppet-openstack-cloud/blob/master/manifests/compute/api.pp#L81-L90


The pacemaker wrapper is
https://github.com/stackforge/puppet-openstack_extras/blob/master/manifests/pacemaker/service.pp
so 100% upstream.
We are using puppetlabs-corosync and not puppet-pacemaker so the code is
much cleaner and Puppetish (providers, etc).
The code is really lightweight in the composition layer and flexible to
add more options easily.

We are using puppet-pacemaker now, so we can't (now at least) use
openstack_extras wrapper, but still we can take this approach in
consideration.
-- 
Emilien Macchi

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150507/88492f35/attachment.pgp>


More information about the OpenStack-dev mailing list