2017 Chef Project Year in Review

The Chef project has had an incredibly busy 2017 – and thank you all for your help and support!

Our Community

On GitHub, we’ve seen 3,733 Pull Requests, from 618 people. More than 50% of those Pull Requests were from non-Chef employees, which continues to amaze and delight me. We couldn’t achieve everything we’ve done this year without everyone who’s contributed their time – by supporting others in Discourse and Slack, by filing bugs, writing cookbooks and contributing changes to existing ones, and writing documentation. Speaking of Slack, a delightful 4000 of you choose to spend time in our community.

Our community came together in Seattle, London, and New York for our Community Summits, bringing fantastic discussions and some really exciting developments.

The RFC Process is how we ensure that Chef improves. It’s the way our community designs major features, describes how our processes work, and learns how (and when) to hug each other. We discuss our RFCs weekly on Slack , and this year we’ve discussed 41 Pull Requests, resulting in 17 new RFCs, and many updates to existing ones.

The Chef Client and Server

This year, the Chef Client has taken some major steps forward. We’re now shipping supported builds for SuSE Linux Enterprise, and next month we’ll add official support for ARM aarch64 servers. Chef Client 13, the first major release of the Chef Client for two and a half years, has brought additional predictability and safety, a cleaner API for writing Custom Resources, and more resources. We’re committed to producing monthly releases of the Chef Client, and we can’t wait to get Chef Client 14 in your hands next April.

On the upgrading front, this year we released the chef_client_updater cookbook. It supports upgrading the Chef Client on all our supported platforms – including Windows – from Chef Client 11 onwards. It’s quickly become a vital part of keeping the Chef Client up to date.

The Chef Server has had many exciting improvements in 2017. We’ve revamped our secrets management for configuration, making it simpler and safer to manage the server configuration. We’ve added support for ElasticSearch 5 as a search backend, and have exposed a new stats endpoint to improve monitoring of the Chef Server.

Developer Tools

The ecosystem of developer tools has also continued to improve in leaps and bounds. Test Kitchen has seen a lot of usability improvements, including the start of the new ‘kitchen doctor’ command. In addition, the Test Kitchen drivers, such as kitchen-ec2, kitchen-azurerm and kitchen-google, have also seen a lot of work to support additional use cases and new cloud features. We also launched the new Test Kitchen website.

ChefSpec now automatically generates matchers for all resources, allowing you to write unit tests for recipes that include custom resources easily. In general we recommend that integration tests (with InSpec) are the most appropriate way to test your cookbooks, but unit testing with ChefSpec is really important when writing custom resources, and plans are afoot to improve the experience next year.

Foodcritic and Cookstyle are the best way to ensure your cookbooks are standards compliant, and this year has seen a truly phenomenal amount of work on those projects. Foodcritic can already warn about all the forthcoming deprecations in Chef Client 14, as well as all the ones we shipped in Chef Client 13, making it easier to upgrade than ever. All of these tools ship in the ChefDK.

Thank You!

Thank you all for all your contributions to Chef this year! I can’t wait to see what 2018 brings, and to see you all at one of our delightful community events, or online!

Author Thom May

Thom is an engineer on Chef's Community Engineering team, based in London. He works on Chef, ohai, cookbooks and pretty much anything else Chef has ever shipped.