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


chef-dk (13) Versions 2.0.2

Installs/configures the Chef-DK

cookbook 'chef-dk', '= 2.0.2'
cookbook 'chef-dk', '= 2.0.2', :supermarket
knife supermarket install chef-dk
knife supermarket download chef-dk
Quality 0%

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 here.

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, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Chef-DK Cookbook CHANGELOG

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.2 failed this metric

FC031: Cookbook without metadata file: /tmp/cook/d15ed80c939f34d790cd4ced/chef-dk/metadata.rb:1
FC045: Consider setting cookbook name in metadata: /tmp/cook/d15ed80c939f34d790cd4ced/chef-dk/metadata.rb:1