[openstack-dev] [puppet] vision on new modules
emilien at redhat.com
Wed Jun 8 20:42:03 UTC 2016
Over the last months we've been creating more and more modules  
and I would like to take the opportunity to continue some discussion
we had during the last Summits about the quality of our modules.
 octavia, vitrage, ec2api, tacker, watcher, congress, magnum,
mistral, zaqar, etc.
 by the end of Newton, we'll have ~ 33 Puppet modules !
Announce your work
As a reminder, we have defined a process when adding new modules:
This process is really helpful to scale our project and easily add modules.
If you're about to start a new module, I suggest you to start this
process and avoid to start it on your personal github, because you'll
loose the valuable community review on your work.
I've noticed some folks pushing 3000 LOC in Gerrit when adding the
bits for new Puppet modules (after the first cookiecutter init).
That's IMHO bad, because it makes reviews harder, slower and expose
the risk of missing something during the review process. Please write
modules bits by bits.
Example: start with init.pp for common bits, then api.pp, etc.
For each bit, add its unit tests & functional tests (beaker). It will
allow us to write modules with good design, good tests and good code
A good Puppet module is one that we can use to successfully deploy an
OpenStack service. For that, please add beaker tests when you're
initiating a module. Not at the end of your work, but for every new
class or feature.
It helps to easily detect issues that we'll have when running Puppet
catalog and quickly fix it. It also helps community to report feedback
on packaging, Tempest or detect issues in our libraries.
If you're not familiar with beaker, you'll see in existing modules
that there is nothing complicated, we basically write a manifest that
will deploy the service.
If you're new in this process, please join our IRC channel on freenode
#puppet-openstack and don't hesitate to poke us.
Any feedback / comment is highly welcome,
More information about the OpenStack-dev