Puppet OpenStack plans for Liberty

Our Vancouver week just ended and I think it was a very productive Summit for the Puppet OpenStack folks.
This blog post summarizes what we did this week, and what we plan for the next release.

Vancouver-Canada

Releases and master branch policy

https://etherpad.openstack.org/p/liberty-summit-design-puppet-master-branch

So we officially decided to support the latest version of OpenStack provided by upstream packages (Ubuntu UCA and CentOS7 RDO) in our modules master branch. That means if you submit a change in the module, it will have to pass our integration testing (running Beaker).

Examples:

  • if your change update configuration to support latest version of OpenStack provided by recent packaging, and break previous OpenStack version, it’s fine, because we have stable branches that aim to support previous versions of OpenStack.
  • if your change aims to delete/add a parameter, it has to be backward compatible for at least 2 releases.

The whole spec will be documented here: https://review.openstack.org/#/c/180141/

We are working on having a easy way to automate the backports to stable branches with https://review.openstack.org/#/c/175849/. We hope it will improve our stable branches so people can actually use them in production without having to stay close from master.

 

Puppet module compliance

https://etherpad.openstack.org/p/liberty-summit-design-puppet-compliant

Moving under the big tent is very exciting but is also challenging. One of our biggest concerns today is consistency across our modules and also with other OpenStack projects.

Most of requirements to have a compliant module are inspired by Puppetlabs criteria. Though it will also require some adjustments regarding our conventions and the way we work with OpenStack community.

A blueprint will come up with the specs that we expect to say that “a module is compliant”. Also, we are in the process to move some modules (that are compliant) under the big tent, while some others will require more work.

To help in this process, we have some folks working on having tools to generate Puppet modules easily and maintain common files synchronized.

 

Handle default OpenStack parameters values

https://etherpad.mozilla.org/liberty-summit-design-puppet-parameter-defaults

We will¬† to try to make sure our default parameters are set to ‘undef‘ and our providers to make sure the parameters are absent if ‘undef’ is defined. That way, if no configuration is provided, the service will run default OpenStack parameters and rely on upstream configuration.

This is still work in progress and some feedback will be required before changing our modules.

 

CI plans

Puppet OpenStack modules have now integration testing working on Ubuntu Trusty & CentOS7 (both running Kilo).

Our next steps are:

Also we are working with OpenStack Infra, who also wants to run testing against their modules: https://etherpad.openstack.org/p/kilo-infra-puppet-testing

They will also start using Beaker so we will have a consistency between what does OpenStack Infra & Puppet modules team, which is a very good news for our collaboration and community work. Technically speaking, we might have to adjust some features we would want to have in Beaker so we can cover a good testing.

Last but not least, we will enable voting for Puppet 4.x very soon, since our modules are already supporting this Puppet version.

You can have a look at the CI status.

 

No puppet-oslo

https://etherpad.openstack.org/p/liberty-summit-design-puppet-oslo

We were wondering how to configure Oslo parameters (example: oslo messaging) and it came up that it was not possible to have a single puppet-oslo module since all Oslo project have specific releases; having multiple puppet-oslo-* would have been too expensive to maintain.

So for now, we are going to update Puppet OpenStack modules to support Oslo messaging with new configuration sections & parameters.

At the end of Liberty, we will have enough experience to know if we continue on that way or if external modules would be needed.

 

Open topics

  • ¬†Some work will be done in Puppet to correctly support systemd, also fix puppet-swift init scripts management.
  • Database sync (ex: nova-manage db sync) will be optional for all modules.
  • Our blueprints will be exposed on http://specs.openstack.org

 

Puppet dinner

We had fun (and ate a great steak) at the end of the week. Talking about Puppet, our jobs, our life… well, it made me think I’m really proud to work in a team like that.

CFqxgIaVIAA9dQT.jpg:large

I also take the opportunity to thank our contributors and the OpenStack community for this awesome summit.

Hopefully see you all in Tokyo!