Skip to end of metadata
Go to start of metadata

This page documents the breaking changes from Chef version 0.7.x and earlier to Chef version 0.8.x

Without a doubt...
The biggest breaking change is that the 0.8 series is not backwards compatible between client and server to any previous Chef version. Make sure you follow the instructions for [Upgrading Chef 0.7.x to 0.8.x], and remember that the Server will need to be upgraded before the clients.

Authentication

We have dramatically altered the [LEG:Authentication] model, and now rely on digitally signing each request. What you need to know is this: when you upgrade your Chef Server, it will create a "Validation Key" called validation.pem. This key should be put in /etc/chef/validation.pem on all your Chef Clients, and will be used to allow them to generate their individual client keys. Once a client has registered, the validation key should be removed from it. Josh Timberman has a recipe that can do this automatically for you.

REST API

The Server API has been made more consistent, and now exists for every operation the Chef Server can perform. It is also dramatically different in many places from the previous API - so if you have tools that hit the Chef Server REST API, make sure you update them.

cookbook_path now has a more consistent order

The configuration option 'cookbook_path' has been reversed, so that it goes in order from least-to-most specific. In Chef 0.7, if you had:

Chef 0.7 cookbook_path configuration setting

You should now have:

Chef 0.8 cookbook_path configuration setting

Search

The syntax for Searching inside of Chef Recipes has changed. Previously, it was possible to return only certain attributes from a search:

Chef 0.7 Search

In this example, the result was always a list of items that matched, and the item itself was simply a hash with the data requested.

With the API updates in Chef 0.8, we now return full objects from search queries - this makes utilizing them much more consistent (from a user point of view) but means that it's no longer reasonable to return sub-sets of the data. In Chef 0.8:

Chef 0.8 Search

Will work. Notice that we're now getting the full node object itself.

In addition, the creation of custom search indexes is replaced by Data Bags. If you were using the previous custom search index functionality, move to Data Bags.

See the full Search documentation for more about the search feature of Chef.

Run Lists, not Recipe Lists

In Chef 0.7 we introduced the concept of a Run List, which allows you to mix Recipes and Roles. Due to the awesome work of Thom May, Chef 0.8 allows Roles to contain other Roles. This means that where in Chef 0.7 you would have written:

Chef 0.7 Recipe List

You should now be writing:

Chef 0.8 Run List

Your previous code will still work, but we will log a warning every time we encounter it, and expect it to be deprecated in the next major Chef release.

CouchDB 0.8 unsupported

CouchDB 0.8 is no longer supported by the Chef Server. Opscode provides a recipe for installing CouchDB 0.9.1+ from source, and this is handled on supported server platforms in the [bootstrap]. When upgrading CouchDB, you need to dump the database from the old version and load it from the dump file.

Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.