Chef Server 12.1.0-rc.1 Now Available

Ohai Chefs!

I’m pleased to announce that Chef Server 12.1.0-rc.1 is now available for download. Here are some of this release’s highlights:

* Significant performance improvements.
* Policyfiles and cookbook artifacts are complete and are enabled by default.
* Server API Versioning: API `0` is now deprecated, and current API version level is `1`.
* Key Rotation enhancements.
* Security update from postgres 9.2.9 to 9.2.10.
* Solr update from 4.5.1 to 4.9.1.
* JRE update from 7u25 to 8u31, which includes both security and performance improvements
* Multiple bug fixes and component updates.
* A number of improvements made to enhance the overall quality of Chef Server, streamline testing, and to make contributing to Chef Server as straight-forward as possible.

For further details please reference the Release Notes, and for even more information you can take a look at the ChangeLog.

#### Performance Improvements

Several performance-related issues have been resolved in 12.1.0. In particular, the depsolver endpoint now puts considerably less load on the postgres server. Further, we’ve corrected a regression which caused the postgres transaction count to spike in 12.0.7, and have made protocol-level improvements that reduce the number of network packets used by each erchef and bifrost node to talk to the postgres server by 75%.

When we release 12.1.0 final, we’ll include a more detailed discussion of the impacts these changes had on our own hosted environment.

#### Policyfile Endpoints

These are now complete and are enabled by default. As part of the upgrade, any of your existing organizations will be updated to support them.

#### Server API Version

This release introduces server API version `1` and deprecates `0`. Version 0 remains the default behavior until it is desupported. The API Changes and Additions section of the Release Notes contains further information about the related API changes. Existing clients of the API will see no changes unless they explicitly request v1.

Work is underway to integrate server API version support into both chef-client
and the Chef Server add-ons. Expect more news on these fronts with the
final release announcement.

All features and fixes mentioned in this post are available under both API v0 and v1.

#### Key Rotation

* Support has been added for server-side key generation – when `PUT` or `POST`ing to a keys endpoint, include `create_key: true` in the request body.
* `chef-server-ctl` key commands are now using a unified client-side keys API.

### Release Timeline

One additional RC is currently planned containing further fixes and enhancements.
Barring issues, the final release is expected to follow shortly thereafter.

### Known Issues

In one upgrade test case from Open Source Chef Server 11, `chef-server-ctl` did not link into /usr/bin correctly. If you’re upgrading from OSCS 11, after step 3 you can perform the following additional step to ensure that the correct `chef-server-ctl` is available to proceed:

sudo ln -sf /opt/opscode/bin/chef-server-ctl /usr/bin

Then proceed as normal. We have only had this occur once in testing – if recurs, it will be addressed in RC2.

### Downloads

Because this is a release candidate and not a final release, it is not yet available via the Downloads page, or the stable packagecloud channel. Instead, use the links below:

* Chef Server 12.1.0-rc.1 for Ubuntu 10.04 lucid
* Chef Server 12.1.0-rc.1 for Ubuntu 12.04 precise
* Chef Server 12.1.0-rc.1 for Ubuntu 12.04 trusty
* Chef Server 12.1.0-rc.1 for RHEL-5
* Chef Server 12.1.0-rc.1 for RHEL-6

Marc Paradise

Marc has over 19 years of experience in software design, development and delivery, and has been with Chef since 2011. Other interests include writing, distributed computing, hardware hacking, container technology, and a myriad of other accumulated pastimes. Marc only talks about himself in the third person when writing biographical blurbs.