Changes to the Jenkins cookbook


Ohai Chefs!

Over the past month, the Release Engineering team at Chef has been working on a large refactor of the Jenkins cookbook. This refactor changes the underlying way we create and manage Jenkins resources and adds idempotency, extensibility, and more. In short, it’s going to be delicious.

However, there are going to be breaking changes. As part of this refactor, we were forced to add, remove, and change various Recipes, Attributes, APIs and LWRPs in order to ensure future flexibility and expansion of the cookbook. It is highly unlikely this new version will remain compatible with your existing cookbooks!

Given the importance of Jenkins inside an organization, we are providing advanced notice for this breaking change. The new Jenkins cookbook version will be “2.0.0”. You should lock your infrastructure at Jenkins < 2.0.0 until you are ready to upgrade.

Environment locks:

“cookbook_versions”: {
“jenkins”: “< 2.0.0”
Berkshelf or Librarian:

cookbook ‘jenkins’, '< 2.0.0’

What about the existing issues?
Many of the existing tickets / GitHub Pull Requests are fixed or obsoleted by this refactor. The team will triage existing tickets and determine appropiate case-by-case action at that time. Over the next few weeks, we will enable GitHub issue tracking and deprecate the “jenkins” component on the JIRA ticketing system. We will send an update with more information about this transition in the future.

How long do I have to upgrade?
We are expecting to release the initial 2.0 release on Monday, January 13 2014. You should lock your Jenkins cookbook version before that date, but you may upgrade at your leisure.

Where’s the CHANGELOG?
This is just a preliminary email to encourage users to lock their existing cookbook version. The team will send a release email with the full changelog, changeset, git diff, etc that you’re accustomed to viewing.

Did you finally fix X?
Did you add support for Y?
Many of the existing issues are resolved or obsoleted by this refactor.

Seth Vargo
Release Engineer, Opscode