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

Knife Role Spaghetti Knife Plugin

Knife plugin for Chef to draw dependency graphs for roles that have become spaghetti.

Install & Usage Instructions



Ruby 1.9.3 and higher.

This plugin requires on Graphviz, and should be installed prior to
installing the plugin.

Graphviz may be obtained through a variety of methods. On OSX an easy method is
via Homebrew:

$ brew install graphviz

Gem install, via RubyGems:

$ gem install knife-role-spaghetti


NOTE: Ensure that your knife.rb has the role_path setting configured.

Since this is a Knife plugin, execution should be performed in your Chef repository.


$ knife role spaghetti

with no arguments should result in a new file named role-spaghetti.png in your
repo root.

$ knife role spaghetti "/tmp/someotherfilename.png"

will place the file in the specified location.

Execute knife role spaghetti -h for more options.


From a sample role, courtesy of @jtimberman, along with one from the Opscode Wiki, plus one more cyclic role model, produces this image:

Sample Roles

(full resolution here)

Running through the neato renderer (with the -N switch) produces this image:

Sample Roles Neato

(full resolution here)