Preparing for Chef Client 13

Over the last year, we’ve adopted a monthly release cadence for Chef. This has served us well, giving our users (and our staff!) a predictable schedule and making it safer and easier to release a version of Chef than ever before. Now, it’s time to introduce the next step. Every April we’ll release a new major version of Chef client, starting with Chef Client 13 this April.

For most people, upgrading to ChefClient 13 from Chef Client 12 (or even Chef Client 11) should be relatively stress free. There are some significant changes. Testing is required for even the smallest deployments. This article should help you get ready.

Why do we need to make Chef Client 13?

Chef Client 12.0 is a little more than two years old. We have made a huge number of improvements. Removing obsolete code and changing behaviors and APIs requires a major release. A major revision honors our Semantic Versioning contract.

The pace of change has made it difficult for cookbook authors to support all versions of Chef Client 12. For example, Chef Client 12.14 included the yum_repository resource. Cookbooks running Chef versions earlier than 12.14 must depend on the yum cookbook to configure repositories. A cookbook, named compat_resource, backports some functionality for cookbook authors. Using this cookbook as a long-term solution makes many of us nervous.

How can you prepare for Chef Client 13?

Chef includes deprecation notices to ensure that it is easy to find problems. The deprecations are listed on the documentation site. The Chef client will provide a link to a specific page with details of each encountered deprecation and how to remediate it. There are two Chef configuration options that simulate some of the behavior of Chef Client 13. We recommend enabling those options in Test Kitchen or in integration environments. To enable them in Test Kitchen, add:

client_rb:

   treat_deprecation_warnings_as_errors: true

   resource_cloning: false

to the provisioner block. Chef Automate users can search for deprecation warnings in Visibility’s Kibana.

What does this mean for Chef Client 12?

We’re committed to providing fixes to severe bugs and security vulnerabilities to Chef Client 12 until April of 2018, when we will release Chef Client 14.

What about the Chef Server?

There’s no plan to release Chef Server 13. Chef Server 12 is fully forwards and backwards compatible, and will continue to support new releases of the Chef client. We always recommend you upgrade to the latest version of the Chef server.

Why should you be excited about Chef Client 13?

It’s the best version of the Chef client we’ve made. We’ve made huge progress on Windows support, we’ve added a large number of new resources to the core of Chef that you’ll be able to use consistently, we’ve made writing new resources much simpler and more robust, and we’ve made Chef faster.

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.