Blog-Infrastructure_100x385

Updates on the Opscode Cookbooks Project

You may have noticed from recent posts to the mailing list, or by watching the ticket system that we have been pretty busy updating our cookbooks with community contributions and other fixes. In this post, I will explain what we have been up to, what we’re planning for the near-term, and how you, our excellent community, can help out.

Recent Efforts

Every week, we have internal ticket triage meetings for all our open source projects. You may have seen the emails to the Chef mailing lists about these. Opscode Cookbooks project are included in those triage activities, and this post is to update where we are.

First, I’d like to thank everyone who uses our cookbooks, finds issues and takes the time to report them and submit patches. You are awesome and you help make Chef awesome.

Second, I’d like to apologize for the delay and age on some of the submittals. We have recently merged contributions as old as 8 months, and would like to thank you for your patience. As we have over 100 cookbooks, and some of them are very complex, it takes a lot of time and effort to properly maintain everything – but we are committed to doing so and striving to improve our response.

Along those lines, we have updated a significant number of our cookbooks over the past few weeks. Over 40 tickets were closed in the COOK project, and over 60 pull requests on the GitHub project were addressed. As awesome as you all are, unfortunately we can’t merge every patch, though we do merge many – if not most – contributions. As a result, the following cookbooks have been updated and released to the Chef Community Site with the indicated version:

apache2

The apache2 cookbook is one of our most popular cookbooks, and it received a lot of love for Red Hat Enterprise Linux platforms (RHEL/CentOS/Scientific), numerous bug-fixes, and a revised and updated README documenting the cookbook itself.

Tickets resolved:

aws

With Chef, you rule the cloud, especially with this cookbook as a helper. It provides lightweight resources for EBS volumes and Elastic IP on Amazon AWS EC2 instances, and the latest version fixes a few bugs, in particular related to EBS volumes. Thank you, Viral Shah, for your fixes!

Tickets resolved:

chef-client

The chef-client cookbook is intended to manage the Chef Client agent itself. It supports building a configuration and starting the service. The highlight for the latest released cookbook is the addition of support for SMF on Solaris systems as the service type for this purpose. Thanks to Jason Williams!

Tickets resolved:

database, mysql & postgresql

These three cookbooks help system administrators manage MySQL and PostgreSQL specifically. As of the latest version:

  • the database cookbook has libraries that extend Chef with new resources for managing databases and database users for mysql, postgresql and also sql_server.
  • The mysql cookbook used to have its own lightweight resources and providers for managing a database, but this is moved into the database cookbook. The resource name is still “mysql_database”, but the provider is significantly leveled-up.
  • The postgresql cookbook gained providers in the database cookbook as well. We improved support for RHEL family distributions, but we have only tested the changes on RHEL and Scientific Linux version 6.1.

You can read all about the resources and providers in the database cookbook’s README. I also want to mention sql_server cookbook has not only made an appearance, it is also supported by the database cookbook’s resources and providers.

Tickets resolved:

Tickets resolved in other cookbooks:

Cookbook Support

We put together a Cookbook Support wiki page describing how we offer support and maintenance for our publicly released Chef Cookbooks. The page documents the expectations that our community and customers can have regarding support for Opscode Cookbooks.

If you are an Opscode Hosted or Private Chef customer, you may open a support ticket at the support site to get help with our cookbooks, or through emailing [email protected]. Additionally, anyone can open a ticket in the public Jira ticket ticket system just as before. All are also encouraged to participate and be involved in the Chef Community through the Opscode Community Site, the Chef mailing lists, or the Chef IRC channel.

We are hopeful that this new Cookbook Support wiki page, and other recent improvements and changes to the Chef Wiki will prove helpful in having the information you need for efficiently automating your infrastructure with Chef!

Community Contributions

If you would like to be involved and help out, we definitely appreciate it. We do have a small and reasonable set of expectations.

Anyone can contribute by creating and commenting on tickets at http://tickets.opscode.com. These contributions are welcome, and valuable. Please be descriptive, and indicate the cookbook name and version, and your node’s platform and version.

As our cookbooks are all Apache 2.0 licensed, we do require a contributor license agreement for all code contributions, no exceptions. This is important to protect all Chef users, as written about previously The How to Contribute page on the Chef Wiki describes the process and provides access to the contributor license agreement.

Upcoming Plans

Our work isn’t done, and we’re not resting on our laurels. The COOK project in our open source JIRA still has over 50 resolved tickets, most of them waiting to be merged into the repository and released in new cookbook versions. We also have over 170 open tickets that need to be addressed. Finally, you, our community, have been waiting patiently for us to address the 70+ pull requests on GitHub. We will continue to meet weekly to triage tickets and also merge changes and release updated cookbook versions.

We will soon publish a cookbook style guide that describes what we consider to be good practices for authoring and modifying cookbooks, and will ensure that all of the Opscode Cookbooks stand as examples of the guide’s application. The completion of the guide will be announced through this blog, and documented on the Chef Wiki.

Thanks for using Chef, and being part of the Chef Community!

Joshua Timberman

Joshua Timberman is a Code Cleric at CHEF, where he Cures Technical Debt Wounds for 1d8+5 lines of code, casts Protection from Yaks, and otherwise helps continuously improve internal technical process.