Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


chef-dk (13) Versions 2.0.3

Installs/configures the Chef-DK

cookbook 'chef-dk', '= 2.0.3', :supermarket
cookbook 'chef-dk', '= 2.0.3'
knife supermarket install chef-dk
knife supermarket download chef-dk
Quality 100%

Chef-DK Cookbook

Cookbook Version
Build Status
Code Climate
Coverage Status

A cookbook for installing the Chef Development Kit.


As of version 0.3.0, Chef-DK packages are available for RHEL/CentOS/etc. 6,
Ubuntu 12.04/13.10, Debian 6/7, OS X 10.8/10.9, and Windows 7/8/2008/2012. Each
of these platforms is supported by this cookbook.

In some cases, platforms that aren't officially supported by Chef-DK may still
function. For example, this cookbook can be used to install the OS X package
onto 10.10 systems, or the Ubuntu package onto 14.04 systems. YMMV.

Prior to Chef 11.12.0, the core did not offer the windows_package resource
that is used for installation under Windows. This cookbook will not run on
Windows under earlier versions of Chef.

This cookbook consumes the
dmg cookbook in order to
support OS X installs. That cookbook's limitations, such as the inability
to upgrade or uninstall packages, are thus present in the OS X implementation

Package download information is obtained from Chef's
Omnitruck API using the
Omnijack Gem that is
installed at runtime.


This cookbook can be implemented either by calling its resource directly, or
adding the recipe that wraps it to your run_list.



Calls the chef_dk resource to do a package install.



Attributes are provided to allow overriding of the package version or URL the
default recipe installs:

default['chef_dk']['version'] = 'latest'
default['chef_dk']['package_url'] = nil
default['chef_dk']['global_shell_init'] = false



Wraps the fetching of the package file from S3 and the package installation
into a single resource:


chef_dk 'my_chef_dk' do
    version '1.2.3-4'
    global_shell_init true
    action :install


Action Description
:install Default; installs the Chef-DK
:remove Uninstalls the Chef-DK


Attribute Default Description
version 'latest' Install a specific version*
prerelease false Enable installation of prerelease builds
nightlies false Enable installation of nightly builds
package_url nil DL from a specific URL*
global_shell_init false Set ChefDK as the global default Ruby**

* A version and package_url cannot be used together

** The global Ruby env is set by a bashrc, so not compatible with Windows


This cookbook includes a provider for each of its supported platform families.
By default, the chef_dk resource will determine a provider to used based on
the platform on which Chef is running.


A generic provider of all non-platform-specific functionality.


Provides the Ubuntu platform support.


Provides the Mac OS X platform support.


Provides the RHEL and RHELalike platform support.


Provides the Windows platform support.


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Run style checks and RSpec tests (bundle exec rake)
  4. Commit your changes (git commit -am 'Add some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

License & Authors

Copyright 2014, Jonathan Hartman

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

Chef-DK Cookbook CHANGELOG

v2.0.3 (2014-10-24)

  • Switch release tool from Stove to Emeril

v2.0.2 (2014-10-24)

  • Update required version of Omnijack; fix issues with Ruby exceptions being thrown on nodes with Chef installed via system packages

v2.0.1 (2014-09-19)

  • Fix failure when installing Chef-DK 0.2.2+ on Mac
  • Log a warning message on "yolo" unsupported package installs

v2.0.0 (2014-09-15)

  • Use the Omnijack Ruby Gem for queries to the Omnitruck API
  • Support optionally installing prerelease or nightly builds
  • Use Chef's Omnitruck metadata service to always know the 'latest' version
  • Update to ChefDK 0.2.1-1 as 'latest' version
  • Support pre-11.12.0 Chef on all platforms but Windows
  • Add ability to set chef shell-init system-wide, via @patrickayoup

v1.0.2 (2014-07-31)

  • Fix bug with OS X package reinstalling on every Chef run

v1.0.0 (2014-07-19)

  • Update to the latest Chef-DK, v0.2.0-2
  • Add Windows support
  • Refactor the one monolithic provider into platform-specific ones

v0.3.2 (2014-07-03)

  • Fix recipe compilation errors in chef-client/chef-zero, via @someara

v0.3.0 (2014-06-28)

  • Allow user to set a custom package_url

v0.2.0 (2014-06-27)

  • Add OS X support

v0.1.0 (2014-06-23)

  • Initial release!

v0.0.1 (2014-06-16)

  • Development started

Foodcritic Metric

2.0.3 passed this metric