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 3.0.0

Installs/Configures mcrouter

cookbook 'mcrouter', '= 3.0.0', :supermarket
cookbook 'mcrouter', '= 3.0.0'
knife supermarket install mcrouter
knife supermarket download mcrouter
Quality 67%


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



  • memcached cookbook
  • magic cookbook


The following platforms are supported and tested with Test Kitchen:

  • Ubuntu 16.04
  • Ubuntu 18.04


  • Chef 12.11+


  • 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: default['mcrouter']['cli_opts']['async-dir']
  • node['mcrouter']['config'] - See configuration options at mcrouter wiki.


  • node['mcrouter']['user'] - User that mcrouter will run as

  • node['mcrouter']['local_memcached'] - Enable a local installation of memcache. true by default.

  • node['memcached']['port'] - Configure memcached port. This are overrides of memcached cookbook

  • node['memcached']['udp_port'] - Configure memcached udp port. This are overrides of memcached cookbook

  • node['mcrouter']['cli_opts'] - Collection of hashes that will be passed to mcrouter on start. You can see the whole list here

  • node['mcrouter']['config'] - This will become mcrouter configuration file. You can read more at Config Files on mcrouter wiki


Author:: EverTrue, Inc.

Author:: Jeff Byrnes

Dependent cookbooks

build-essential >= 0.0.0
magic ~> 1.5
memcached ~> 5.1

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

CHANGELOG for mcrouter

[v3.0.0] (2019-03-26)

Breaking changes:

  • Convert node['mcrouter']['version'] to node['mcrouter']['commit_hash'] given that FB has a weird release process.
  • Remove node['folly']['version'] given that the mcrouter project specifies the folly commit to use. See FOLLY_COMMIT
  • Switch to SystemD for the mcrouter service


  • Added support for Ubuntu 16.04, CentOS 7.2 and CentOS 7.3

[v2.0.2] (2015-12-15)


  • Delete only build subdirectory (so that ark does not run twice)

[v2.0.1] (2015-12-07)


  • Updated test kitchen file format
  • Re-order build/install ops so that build dirs are always deleted

[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

3.0.0 passed this metric

Contributing File Metric

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

3.0.0 passed this metric

No Binaries Metric

3.0.0 passed this metric

Testing File Metric

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

3.0.0 passed this metric