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>