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


chefdk_bootstrap (51) Versions 0.2.3

Bootstrap a developer workstation for local Chef development using the ChefDK

cookbook 'chefdk_bootstrap', '= 0.2.3'
cookbook 'chefdk_bootstrap', '= 0.2.3', :supermarket
knife supermarket install chefdk_bootstrap
knife supermarket download chefdk_bootstrap
Quality 0%

Zero to First Cookbook in Twenty Minutes

Run one simple command to easily setup your Windows workstation for Chef cookbook development in 20 minutes.

The bootstrap script will:

  1. Install the latest ChefDK package
  2. Create a chef directory in your home directory.
  3. Download the chefdk_bootstrap cookbook via Berkshelf
  4. Run chef-client to install the rest of the tools you'll need.

Quickstart - Windows

Copy the PowerShell commands below and paste them into a PowerShell Admin console. This will execute the bootstrap script on your workstation.

$script = (Invoke-WebRequest
$script | Invoke-Expression

Quickstart - Mac

Mac support is coming soon.

What does it do?

This cookbook installs these tools:


Atom, a free, general purpose, cross-platform, open source, text editor. Out of the box, Atom supports all the languages you will need for Chef development: Ruby, PowerShell, Bash, XML, JSON, etc.

Source Control

Git - command line git client and tools.

Local Virtualization

Virtualbox - Oracle's free, open source virtualization tool for local cookbook testing.

Vagrant - ChefDK's included Test Kitchen tool uses Vagrant to spin up local VMs for cookbook testing.



  • Installs Chocolatey, a Windows package manager, similar to apt-get on Ubuntu or homebrew on Mac. Chocolatey is used to install packages like posh-git and kdiff3.

  • Installs all the other tools marked true in the node['chefdk_bootstrap']['package'] hash.

  • Includes the Powershell profile configuration recipe.


  • Installs the Atom editor


  • Installs git, git-credential-winstore, and posh-git.


  • Installs gitextensions, a GUI git client.


  • Installs the free, open-source diff/merge tool, kdiff3.


  • Configures a global PowerShell profile to correct the $env:HOME environment variable and run chef shell-init powershell.


  • Installs Vagrant.


  • Installs Virtualbox.


The attributes defined by this recipe are organized under the node['chefdk_bootstrap'] namespace.

Attribute Description Type Default
['atom']['source_url'] Windows: Atom installer package source URL URL String
['atom']['source_url'] Mac: Atom installer package source URL URL String
['package']['atom'] Whether to install Atom or not boolean true
['package']['kdiff3'] Whether to install kdiff3 or not boolean true
['package']['vagrant'] Whether to install Vagrant or not boolean true
['package']['virtualbox'] Whether to install Virtualbox or not boolean true
['package']['git'] Whether to install git and related packages or not boolean true
['package']['gitextensions'] Whether to install gitextensions or not boolean true


The first time you check out this cookbook, run


to download and install the development tools.


Three forms of cookbook testing are available:

Style Checks

bundle exec rake style

Will run foodcritic (cookbook style) and rubocop (Ruby style/syntax) checks.

Unit Tests

bundle exec rake spec

Will run ChefSpec tests. It is a good idea to ensure that these tests pass before committing changes to git.

Unit Test Coverage

bundle exec rake coverage

Will run the ChefSpec tests and report on test coverage. It is a good idea to make sure that every Chef resource you declare is covered by a unit test.

Automated Testing with Guard

bundle exec guard

Will run foodcritic, rubocop (if enabled) and ChefSpec tests automatically when the associated files change. If a ChefSpec test fails, it will drop you into a pry session in the context of the failure to explore the state of the run.

To disable the pry-rescue behavior, define the environment variable DISABLE_PRY_RESCUE before running guard:


Integration Tests

bunlde exec rake kitchen:all

Will run the test kitchen integration tests. These tests use Vagrant and Virtualbox, which must be installed for the tests to execute.

These are only available for cookbooks that target Unix-like systems. Support for Windows targets is expected by the end of 2014.

After converging in a virtual machine, ServerSpec tests are executed. This skeleton comes with a very basic ServerSpec test; refer to for detail on how to create tests.


Nordstrom, Inc.


Copyright 2015 Nordstrom, Inc.

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.

Dependent cookbooks

git ~> 4.2
chocolatey ~> 0.3

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

Revision History for chefdk_bootstrap


  • Update README
  • Add introduction to bootstrap script.
  • Add Atom source URL for Mac platform


  • Bootstrap script bug fixes


  • Add PowerShell bootstrap script


PuTTY is difficult to configure and outside the scope of what this cookbook is trying to do. Furthermore the Github for Windows client doesn't use PuTTY either.



  • Initial version

Foodcritic Metric

0.2.3 failed this metric

FC031: Cookbook without metadata file: /tmp/cook/97b146fce84d9019e84d20e8/chefdk_bootstrap/metadata.rb:1
FC045: Consider setting cookbook name in metadata: /tmp/cook/97b146fce84d9019e84d20e8/chefdk_bootstrap/metadata.rb:1