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


storage (21) Versions 6.0.0

Installs/Configures storage

cookbook 'storage', '= 6.0.0', :supermarket
cookbook 'storage', '= 6.0.0'
knife supermarket install storage
knife supermarket download storage
Quality 17%


Cookbook Version
Build Status
Coverage Status

A cookbook for mounting all available EC2 ephemeral volumes and saving their
respective mount points into node attributes.

Supported Platforms

EC2 only (but it will fail cleanly on other platforms).


<td>An array of strings, set automatically by the recipe, to be used by other cookbooks, which lists the mount points of ephemeral storage devices.</td>




Include storage in a wrapper cookbook:

include_recipe 'storage::default'

...or include storage in your node's run_list:

  "run_list": [



Formats a device, creates a mount point for it, and the mounts it.

  • mount_point (name attribute) The directory where the filesystem should be mounted
  • device_name The path to the device (typically starts with /dev)
  • fs_type Filesystem type to use for formatting (default: ext4)
  • reserved_space Percentage of space to reserve for the superuser (default: 0)

storage_format_mount '/mnt/dev0' do
device_name '/dev/xvdb1'
fs_type 'ext4'
reserved_space 5


  1. Fork the repository on Github
  2. Create a named feature branch (i.e. add-new-recipe)
  3. Write you change
  4. Write tests for your change (if applicable)
  5. Run the tests, ensuring they all pass
  6. Submit a Pull Request

License and Authors

Author:: EverTrue, Inc. (


v6.0.0 (2017-03-09)

  • Discover NVMe devices when running on EC2
  • Override udev memory ballooning config on Ubuntu 16 (workaround for this bug)
  • Convert LWRP to custom resource
  • BREAKING: Drop instance_store_volumes? method (no longer being used)
  • BREAKING(ish): Format using ext4 by default
  • Memoize dev_names helper method so that it runs only once
  • Add an attribute for reserved_space
  • Make error handling and logging a bit more paranoid
  • Also test on Ubuntu 16.04 (needed for NVMe)

v5.0.1 (2016-09-08)

  • Verify that device files actually exist before trying to mount+format them

v5.0.0 (2016-06-07)

  • Update to et_fog ~> 4.0
    • Drops apt dep in favor of Chef built-in apt

v4.0.0 (2016-05-31)

  • Update to et_fog ~> 2.0
    • Updates the apt and build-essential deps

v3.0.1 (2016-05-19)

  • Only call ebs recipe if there are EBS volumes

v3.0.0 (2016-05-19)

  • BREAKING: Switch to using aws::ec2_hints to load ohai hints (removing ec2test recipe)
  • Create, mount, and, format EBS volumes listed in attributes

v2.2.7 (2015-09-25)

  • Add version constraint for Chef > 12

v2.2.6 (2015-07-13)

  • Delete the node['storage']['ephemeral_mounts'] key if there are no ephemeral mounts (because many cookbooks check for this key without using .empty?)
  • Check instance_store_volumes? after node['ec2']['block_device_mapping_ephemeral0'] because the former throws an exception when not on ec2

v2.2.5 (2015-06-24)

  • Ensure that /proc/mounts exists before reading it
  • Return an empty array of mounts when running chefspec

v2.2.4 (2015-04-07)

  • Create an rspec test for disable_mount("/mnt")
  • Add a default action: run
  • Use rspec3 format in ServerSpec tests.
  • Disable mount[/mnt] if there are no ephemeral devices
  • Remove usage of encrypted data bag secret
  • Remove unused attributes for AWS credentials data bag

v2.2.3 (2015-03-31)

  • Use "greater than" version constraint for et_fog cookbook
  • Use blank credentials for connecting to AWS

v2.2.2 (2015-01-21)

  • Fix copypasta in EverTools::Storage.fog method re: memoizing

v2.2.1 (2014-12-11)

  • Parameterize credentials data bag location (Fixes #3)

v2.2.0 (2014-12-08)

  • Add testing on Ubuntu 14.04
  • Switch to open source license
  • Update for Serverspec v2
  • Clean up config & other misc. files

v2.1.8 (2014-09-08)

  • Fix the way we deal with a lack of anything to mount and don't blow up when not on ec2
  • Test local vagrant storage provisioning (so that wrapper cookbooks stop choking on our crappy code)
  • Bump the AMI to a newer version

v2.1.7 (2014-09-08)

  • Update to et_fog v1.1.1 to avoid issues with apt-get update & installing build-essential at compile time

v2.1.6 (2014-08-05)

  • Confirm (using Fog) that the current instance flavor has instance storage

v2.1.5 (2014-07-30)

  • Disable /mnt mount (instead of just unmounting it) and enable the new mounts

v2.1.4 (2014-07-28)

  • Populate ephemeral_mounts attribute even if /mnt/dev is already mounted

v2.1.3 (2014-07-17)

  • Use /proc/mounts (rather than node attributes) to see if we need to run
  • Fix method reference error in vagrant support

v2.1.2 (2014-07-01)

  • s/ephemeral1/ephemeral0/ in library this time

v2.1.1 (2014-06-30)

  • Look for ephemeral0 in ec2 attributes

v2.1.0 (2014-06-26)

  • Fixed error making it impossible to converge twice
  • Move format-mount to a resource
  • Library-ify a bunch of small functions

v2.0.2 (2014-06-26)

  • Add some real content to the README
  • Handle NPE by only printing mounts if there are any

v2.0.1 (2014-06-25)

  • Do umount during precompile phase

v2.0.0 (2014-05-06)

  • Add vagrant support

v1.0.1 (2014-05-05)

  • Initial release

Collaborator Number Metric

6.0.0 passed this metric

Contributing File Metric

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

6.0.0 failed this metric

FC064: Ensure issues_url is set in metadata: storage/metadata.rb:1
FC065: Ensure source_url is set in metadata: storage/metadata.rb:1
FC069: Ensure standardized license defined in metadata: storage/metadata.rb:1
Run with Foodcritic Version 13.1.1 with tags metadata,correctness ~FC031 ~FC045 and failure tags any

No Binaries Metric

6.0.0 failed this metric

Failure: Cookbook should not contain binaries. Found:

Testing File Metric

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

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