Chef Blogs

Upgrading to Chef Client 13 – Answers to all your questions

Thom May | Posted on | Products and Projects | release

It’s great to see how much excitement there is for the upcoming release of Chef Client 13 on April 10th! We’ve had a bunch of questions about this release. I’ll address some of the frequently asked questions here so you’ll be prepared to upgrade.

How do I get Chef Client 13 today?

Builds are flowing in the current channel for the very latest chef client 13 hotness. You can download them manually from https://downloads.chef.io/chef/current/ . To use them with Test Kitchen, add the following to your .kitchen.yml:

provisioner: 

  product_name: chef

  channel: current

What’s the best way to test my cookbooks?

Running Chef Client 12.19 is the most informative way to test your cookbooks. That will tell you, with links to the documentation, which deprecated features you’re using. Once you have a cookbook with no deprecation errors, add a suite in test kitchen that installs the latest Chef Client 13 build and test there too.

I’ve found a bug in Chef Client 13!

We’d love to hear about it. While each current build runs through an extensive test suite on many platforms, we can’t test every cookbook ever made! If you do have a bug, please file an issue at Chef’s GitHub issues page with the information we request.

What should I do if a community cookbook I depend on has deprecation warnings?

The very best thing you can do is to submit a Pull Request fixing it. All cookbook maintainers are working through upgrading to Chef Client 13, and if you can help one of them out then you’re doing good for everyone. If you can’t do that, then definitely submit an Issue telling the maintainer that there’s a deprecation warning. You can find the Issues URL and the Source URL in Supermarket for each cookbook.

Chef’s dedicated Cookbook Engineering team are ensuring that all the cookbooks that Chef makes available are error free on Chef 13 in time for the launch, but do file issues or contact them in the #cookbook-engineering channel on our Community Slack.

What versions of Chef Server are compatible with Chef Client 13?

All versions of Chef Server 12 are compatible with Chef Client 13. As always, we recommend that our users should upgrade to the latest release of Chef Server to ensure maximum performance and stability.

When will support end for Chef Client 11 and 12

We always support the last major version of Chef, so currently we support Chef Client 11 and 12. When we release Chef Client 13, Chef Client 11 will be End Of Life, but Chef Client 12 will continue to be supported until Chef Client 14 is released in April 2018.

End Of Life means that we will no longer provide any new releases of Chef Client 11, but Chef Server and Hosted Chef will continue to allow users of Chef Client 11 to synchronise their nodes. For Hosted Chef, we will announce a sunset time for support of Chef Client 11 separately.

Will there be changes to developing Custom Resources in Chef Client 13?

We’re not intending to make major changes to developing Custom Resources. We’ve focussed heavily on ensuring correctness and safety when developing resources, and on removing some of the sharper edges.

We’ve made a deprecations page that specifically lists all the changes we’ve made to the syntax.

How should we upgrade from Chef Client 11?

You should upgrade to Chef Client 12 first. The changes between 11 and 12 are summarised at https://docs.chef.io/upgrade_client_notes.html, but mostly relate to enhanced validation of SSL certificates by the client. Once your nodes are able to communicate with the Chef Server, you can proceed with the upgrade to Chef Client 13.

Can you do multiple packages with specific versions?

Yes!

package %w{ foo bar baz } do

  version [ 1, 2, 3 ]

end

will install foo with version 1, bar with version 2, and baz with version 3.

If you have any further questions regarding the Chef Client 13 upgrade, please join us in person at ChefConf, online in the Community Slack, or on our forums.