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


mcrouter (7) Versions 2.0.0

Installs/Configures mcrouter

cookbook 'mcrouter', '= 2.0.0', :supermarket
cookbook 'mcrouter', '= 2.0.0'
knife supermarket install mcrouter
knife supermarket download mcrouter
Quality 33%


Build Status
Coverage Status

Install mcrouter and its dependencies, and provide mechanisms to configure and start mcrouter.

This cookbook can, optionally, install a copy of memcached to use locally. This can be disabled by setting node['mcrouter']['local_memcached'] to false.


  • apt cookbook
  • ark cookbook
  • memcached cookbook
  • magic cookbook


  • Include mcrouter::default in your node’s run list.

If you wish to customize any of the configuration for mcrouter, you will want to edit the two attributes used to populate the config file and the CLI arguments passed to mcrouter on service start:

  • node['mcrouter']['cli_opts']
    • Do not overwrite this completely; the values specified already are required, instead, either:
      • supply updated values for these in addition to your new options
      • specify your particular CLI option: set['mcrouter']['cli_opts']['async-dir']
  • node['mcrouter']['config']



Wraps it all up with a nice bow.

  1. Set up & update apt using apt::default
  2. Install memcached using memcached::default if local memcached is enabled
  3. Include recipes from this cookbook to build, install, configure, and start mcrouter:
    • mcrouter::folly
    • mcrouter::install
    • mcrouter::configure
    • mcrouter::service


Handle the installation of mcrouter from source.


Handle the installation of folly, a C++ lib Facebook developed.


Configure mcrouter.


Set up, enable, and start services for mcrouter.


Author:: EverTrue, Inc. (

Dependent cookbooks

apt >= 0.0.0
build-essential >= 0.0.0
ark >= 0.0.0
memcached ~> 1.7
magic ~> 1.1

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

CHANGELOG for mcrouter

[v2.0.0] (2015-08-17)

Breaking changes:

  • Folly version updated to v0.53.0
    • This is now adjustable via an attribute, node['folly']['version']
  • Mcrouter version set to v0.5.0
    • This is now adjustable via an attribute, node['mcrouter']['version']


  • Packages needed for Folly/Mcrouter updated as per most recent Folly/Mcrouter docs

[v1.0.1] (2015-07-15)


  • Add dependency package: libssl-dev

[v1.0.0] (2015-07-09)

Breaking changes:

  • ['mcrouter']['src_dir'] no longer determines build location (that is now :file_cache_path), and as a result...
  • Builds are now done in :file_cache_path instead of /opt
  • mcrouter::folly is now included by mcrouter::install


  • Vastly clean up the install process (e.g. now using ark for source install)
    • Stopped installing gtest
    • Pruned Apt package install list
    • Use ./configure defaults rather than specifying a zillion environment variables
    • Just do make install for mcrouter and use the default install location (rather than linking /usr/local/bin/mcrouter -> node['mcrouter']['install_dir']/bin/mcrouter)
    • Just install build-essentials with the cookbook rather than devoting half the cookbook to setting up the build system
    • Break package installs out into _deps recipe
  • Folly and McRouter now delete their build directories once they're finished installing
  • Update the README
  • Clean up the Upstart script a bit


  • Run ldconfig after make install on folly (addresses "library not found" issue with mcrouter)

[v0.2.2] (2015-02-28)


  • Subscribed service[mcrouter] to its own service script to restart on any changes to its CLI options

[v0.2.1] (2015-02-25)


  • Updated, clarified README

[v0.2.0] (2015-02-25)


  • Replace missed hard-coded ownership settings with node['mcrouter']['user']


  • Switch from hard-coded CLI flags to an hash attribute-driven system, utilizing the magic cookbook

[v0.1.0] (2015-02-24)


  • Fix paths for dependent libraries for mcrouter build
  • Ensure dirs needed for mcrouter exist
  • Fix test assertion for mcrouter config


  • Parameterize paths for folly & mcrouter
    • Makes for simpler configuration of builds
  • Fix path to optionally-installed double-conversion lib
  • Install & configure memcached to start on port 11811
    • mcrouter needs an instance of memcached somewhere to talk to; simplest thing is to just install it locally
  • Set up an Upstart service to manage mcrouter

[v0.0.1] (2015-02-19)


  • Initial release:
    • Builds & installs mcrouter

Collaborator Number Metric

2.0.0 passed this metric

Contributing File Metric

2.0.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must contain a file

Foodcritic Metric

2.0.0 failed this metric

FC122: Use the build_essential resource instead of the recipe: mcrouter/recipes/_deps.rb:1
Run with Foodcritic Version 14.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any

No Binaries Metric

2.0.0 passed this metric

Testing File Metric

2.0.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must contain a file

Version Tag Metric

2.0.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must include a tag that matches this cookbook version number