Chef 0.6.0 Release


#1

Hello! How are my favorite cooks? Its been a while since our last
release (around twice as long as we prefer, actually,) but we make up
for our tardiness with a whole heap of fabulous for you.

We begin, as always, with the MVP award. It was a tight race: Chef
0.5.4 MVP (http://blog.opscode.com/2009/02/chef-054.html) Arjuna
Christensen (http://junglist.gen.nz) rebuilt the Chef Server Web UI
using pilu’s web-app-theme
(http://github.com/pilu/web-app-theme/tree/master), making it orders
of magnitude more pleasing (in addition to resolving four other
tickets). He also added support for CouchDB 0.9
(http://couchdb.apache.org), and fixed a bug in Cookbook names with
dots in them.

Matthew Kent, though, stepped up and packaged Chef (and all of its
dependencies) for CentOS/Red Hat as RPMs, complete with initialization
scripts (http://wiki.opscode.com/display/chef/Enterprise+Linux+variants+with+rpms)

  • while still finding time to patch up the yum package provider
    (giving a serious speedup for Red Hat users.)

While the joy brought to us by the new Web UI is strong, in the end we
decided we had to hand the Chef 0.6.0 MVP award to Matthew. As a
bunch of Systems Administrators ourselves, we know just how hard it
can be to do this sort of thing. Thank you so much for all your hard
work - you truly made a huge difference in the lives of everyone who
wants to use Chef on Enterprise Linux.

For those of you worried about Arjuna’s feelings, fear not - his
consolation prize is a job at Opscode! Stoked to have you with us
full time, Arjuna.

What was the rest of our lovely community up to, you ask?

  • Matthew Landauer (http://www.openaustralia.org/) kept up his
    history of making FreeBSD support in Chef a first-class experience
    with a trio of patches to the Ports provider.
  • Joe Williams (http://www.joeandmotorboat.com/) added a Status Page
    to the web UI, along with a patch allowing only specific OpenIDs to
    auth against the server.
  • Dan Walters provided a compatibility fix for those of you using
    Ruby 1.8.5 (a better Dir.glob, if you want to know the details. :wink:
  • Michael Lim fixed up deleting entries in custom search indexes.
  • Miguel Cabeça fixed an erroneous exception when we tried to delete
    files that already did not exist. He also provided a ton of great
    feedback about Chef’s internals, filed several tickets, and commented
    on what our future directions should be. Thanks for the patch, and
    the outstanding feedback, Miguel - we’re grateful.
  • Thom May added Tags as a top-level UI element for Nodes. (You’ll
    like this when we get Roles
    (http://wiki.opscode.com/display/chef/Roles+and+Infrastructures)
    implemented)
  • Caleb Tennis did me a real favor: he fixed several of my recurring
    typos. He also improved the Gentoo service provider (on Gentoo,
    everything always has a status command), and has enabled manual
    checksum hints on remote files.
  • Joshua Sierles (http://diluvia.net/) patched the Apt provider so
    that it functions on systems whose default language is not English.
    Thanks for making Chef work for people outside of the former English
    Colonies, Joshua. :slight_smile:
  • Mark Imbriaco (http://twitter.com/markimbriaco) knocked out a
    super fix: we now checksum all the files in your cookbooks in advance,
    saving potentially hundreds of HTTP round-trips. Look for big
    speedups on systems once the initial set of cookbooks is cached.

While Opscode could have rested on our laurels
(http://blog.opscode.com/2009/04/opscode-announces-25-million-in-series-a-round.html),
we instead did some hacking of our own:

  • Chris Brown moved the Chef Server into a Merb Slice
    (http://wiki.merbivore.com/howto/slice), making it easy to embed it in
    your own Merb applications. He also fixed up a series of irritating
    bugs around how we treat numbers (negative UID/GIDs, octal modes for
    file permissions,) and fixed up the namespace for our internal
    Exceptions.
  • I only snuck in two patches this time around - one fixing an issue
    with delayed notifications for the same resource firing more than
    once, and putting the final nail in the coffin of how we handle
    reading the stdout/stderr of spawned processes.
  • Benjamin Black (http://blog.layer8.net/) enabled CouchDB as an
    optional backing store for OpenID, making life easier for people
    running load balanced Chef servers.
  • New hire Nuo Yan (fresh out of college, no less!) added a class to
    simplify editing files within Chef Providers, enabled the setting of a
    umask for execute resources, and stopped us from creating backup files
    (then deleting them immediately) when we didn’t need to. Check out
    how awesome his comments are when he closes bugs
    (http://tickets.opscode.com/browse/CHEF-216), compared to mine
    (http://tickets.opscode.com/browse/CHEF-238) - the gold standard,
    straight from the new guy.
  • Chris Walters, another of our new engineers, had time to slip in a
    pair of fixes to Chef’s file handling (deleting resources that point
    to symlinks, always managing file permissions.) He also patched the
    chef-server to send an appropriate error code when a client requests a
    missing template or remote file. We’re lucky to have snagged an
    engineer of his caliber to work with us - glad to have you on the
    team, Chris.

As always, you can find instructions for installing the new release on
the wiki (http://wiki.opscode.com/).

No release would be complete without a shout out to the burgeoning
Chef community - we get more people working on the project, both with
code and ideas every day. We could never build a tool good enough to
automate the worlds infrastructure without each and every one of you
helping us - we’re humbled.

Now, enough about our spiffy tool and waxing on about how we love you

  • go cook up some awesome infrastructure!

The full changelog follows:

Tue Apr 28 16:43:43 PDT 2009
Release Notes - Chef - Version 0.6.0
http://tickets.opscode.com

** Bug
* [CHEF-134] - User IDs and GIDs with negative numbers cause a
type exception
* [CHEF-162] - delayed notifications should coalesce so they don’t
run multiple times
* [CHEF-163] - remote_file not working on head, 404 due to missing route
* [CHEF-164] - Slice routing changes break remote file provider
* [CHEF-169] - Detect and use new view URL’s for CouchDB 0.9.0 compatability
* [CHEF-171] - Package name with a dash (-) in it is not recognised
* [CHEF-173] - With debug logging level set long running commands
do not show their output in real time
* [CHEF-174] - directory mode not set correctly
* [CHEF-182] - Chef::Exception masks ::Exception (see OHAI-79)
* [CHEF-185] - file delete backs up links
* [CHEF-186] - file delete fails if file does not exist
* [CHEF-188] - Merb dependencies for both the server app and slice
need to be updated to 1.0.10
* [CHEF-190] - apt provider fails on non-English debian installations
* [CHEF-195] - The backup attribute for File needlessly creates a
backup then deletes it when set to 0
* [CHEF-198] - chef-solo banner
* [CHEF-206] - chef-server-slice rake install fails
* [CHEF-207] - chef-server and chef-server-slice should require
merb > 1.0, not specific versions
* [CHEF-218] - Search indexes are broken due to missing route
* [CHEF-222] - CouchDB 0.9 compat causes the client to attempt a
connection to the CouchDB server (while instantiating a node object)
* [CHEF-227] - Delete operation of Search Index is not working
* [CHEF-228] - chef-server under passenger: Controller class not
found for controller `registrations’
* [CHEF-230] - remote_file with a url should include a type of
hash option to verify the downloaded file is what we expected
* [CHEF-237] - Apt provider won’t install msttcorefonts
* [CHEF-238] - Commands with over 4k of output will block forever
* [CHEF-244] - Chef server no longer checks openid’s against the
authorized_openid_identifiers configuration

** Improvement
* [CHEF-54] - chef-server should be a merb slice
* [CHEF-129] - Implement pilu’s web-app-theme for chef-server
* [CHEF-148] - cookbook naming and routing
* [CHEF-153] - Allow access to a list of OpenID’s via configration.
* [CHEF-159] - CookbookLoader#load_cascading_files uses
Dir.glob(array) syntax, which is unavailable on RHEL and Centos
* [CHEF-167] - chef-server-slice rake install requires sudo
* [CHEF-172] - In FreeBSD package provider simplify source
parameter “magic” by using PKGNAME in ports Makefile
* [CHEF-177] - Where multiple ports have the same name allow path
to ports to be given
* [CHEF-192] - speed up yum provider
* [CHEF-200] - fixes from centos packaging attempt
* [CHEF-210] - enterprise linux init scripts and configs
* [CHEF-213] - Fixing typos in the code
* [CHEF-214] - On Gentoo, services always support the :status
command, so enable it by default
* [CHEF-246] - Should be clearer what tags are attached to a node
* [CHEF-247] - Let chef-server and chef-client compare checksums
in bulk rather than one at a time.

** New Feature
* [CHEF-78] - Add a mixin for parsing a file and replacing lines
* [CHEF-176] - Chef status page that displays basic info about
each chef managed node
* [CHEF-191] - Enable optional CouchDB storage for OpenID
associations and nonces
* [CHEF-216] - Allow execute/script resources to set umask


Opscode, Inc.
Adam Jacob, CTO
T: (206) 508-4759 E: adam@opscode.com