[openstack-dev] [chef] Refactoring and cleanup of all cookbooks during the Mitaka cycle

Jan Klare j.klare at cloudbau.de
Mon Nov 9 18:00:32 UTC 2015


Hi everyone,

we have just merged the last patches to branch our stable/liberty release for all our openstack-chef cookbooks (starting right now). During the liberty cycle and at the mitaka design summit we discussed our goals for the current cycle and our next big steps. Since we identified the refactoring and cleanup as one of our main goals during this cycle, we are now getting it started. The biggest part of this process is written down in this spec:
http://specs.openstack.org/openstack/openstack-chef-specs/specs/liberty/all/refactor_config_templates.html <http://specs.openstack.org/openstack/openstack-chef-specs/specs/liberty/all/refactor_config_templates.html>
In addition to that, we are going to remove all of the unmaintained code from all cookbooks. Right now this means we are finally going to drop Suse support, since there was no contribution during the last 2 cycles to maintain the support and we agreed to not keep unmaintained code during the refactoring and cleanup process (if there is anybody out there who wants to keep this code, please step up and maintain it, we are happy to support you). Most of the other specific attributes (e.g. for vmware, ceph or docker) support will be moved from the basic service cookbooks to more specialised and opinionated wrapper cookbooks or recipes. Although we will drop a lot of code and feature support (switch case scenarios) initially in our basic service cookbooks, it should be very easy to add this support in wrapper cookbooks after that. We think that moving to a modular cookbook style with generic defaults is the best way of keeping the cookbooks maintain- and wrapable. Since these patches need to be finished in all cookbooks before they will work again, we agreed on the following steps for the patch process:
1) remove all unneeded/default attributes from the attributes file and template
2) move all specific attributes (e.g. vmware, ceph or docker) either to documentation or a specific recipe
3) cleanup the rest of the attributes by replacing the template with the new template logic (refactor_config_templates spec) and adapt the recipe where the template ressource is called
4) adapt the specs (unit tests) to work again
5) wait for the other cookbooks to get finished with the same steps to make proper integration testing possible again
(see also http://eavesdrop.openstack.org/meetings/openstack_chef/2015/openstack_chef.2015-11-09-16.01.log.html <http://eavesdrop.openstack.org/meetings/openstack_chef/2015/openstack_chef.2015-11-09-16.01.log.html>)
As soon as we hit step 5 with all cookbooks, we will make additional small changes to get our integration testing working again and merge all of the changes as soon as this happens. This means that the biggest part of the cleanup and refactoring will happen in one commit to achieve a working set of cookbooks for integration testing (one commit but at least 5 patchsets to make it a little more reviewable). After this big patch, we will continue the refactoring process in the usual small steps before releasing a stable branch again. The current target for the next release is refactored_stable/liberty working at least on ubuntu14.04 and centos7 . We will not include support for distributions without at least one active contributor maintaining it after our initial cleanup step (might be added lateron). If you think there should be support for more distributions initially, please step up and we will try to support you as good as possible.

Cheers,
Jan 

----------------------------
irc: jklare
(openstack-chef PTL)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20151109/fc121bd0/attachment.html>


More information about the OpenStack-dev mailing list