cookbook 'storage', '= 8.0.0', :supermarket
storage
(21) Versions
8.0.0
-
Follow0
Installs/Configures storage
cookbook 'storage', '= 8.0.0'
knife supermarket install storage
knife supermarket download storage
storage-cookbook
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).
Attributes
<table> <tr> <th>Key</th> <th>Type</th> <th>Description</th> <th>Default</th> </tr> <tr> <td><tt>['storage']['ephemeral_mounts']</tt></td> <td>Array</td> <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> <td><tt>automatic</tt></td> </tr> </table>
Usage
Recipes
storage::default
Include storage
in a wrapper cookbook:
include_recipe 'storage::default'
...or include storage
in your node's run_list
:
{
"run_list": [
"recipe[storage::default]"
]
}
Resources
format_mount
Formats a device, creates a mount point for it, and the mounts it.
Attributes
- 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
)
e.g.
ruby
storage_format_mount '/mnt/dev0' do
device_name '/dev/xvdb1'
fs_type 'ext4'
reserved_space 5
end
Contributing
- Fork the repository on Github
- Create a named feature branch (i.e.
add-new-recipe
) - Write you change
- Write tests for your change (if applicable)
- Run the tests, ensuring they all pass
- Submit a Pull Request
License and Authors
Author:: Eric Herot eric.herot@gmail.com
Jeff Byrnes thejeffbyrnes@gmail.com
storage CHANGELOG
v8.0.0 (2019-01-03)
- Upgrade to
aws
v8.x to avoid Ruby gem depsolving slowness (chef-cookbooks/aws#365, darkskyapp/infrastructure#383)
v7.0.2 (2018-07-11)
- Add workaround for existing @darkskyapp systems that have EFS mounted to specific paths in
/mnt
v7.0.1 (2018-07-03)
- Fix bug with how attributes are populated on first convergences
v7.0.0 (2018-07-03)
- Fix issue with resource properties (evertrue/storage-cookbook#12)
- Add support for various NVMe instances (e.g.,
c5d
)- These do not support adding EBS volumes via the attribute +
storage::ebs
recipe, due to how they remap the device path (e.g., from/dev/xvde
->/dev/nvme2n1
)
- These do not support adding EBS volumes via the attribute +
- Drop Chef 12 support, update to work under Chef 13 & 14
- Drop Ubuntu 14.04 support, update for Ubuntu 16.04 & 18.04
- Drop
storage::udev-fix
; it is non longer necessary - Upgrade
aws
cookbook dependency - Update unit & integration testing
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
- Drops
v4.0.0 (2016-05-31)
- Update to
et_fog
~> 2.0- Updates the
apt
andbuild-essential
deps
- Updates the
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?
afternode['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
& installingbuild-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
8.0.0 passed this metric
Contributing File Metric
8.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 https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
8.0.0 passed this metric
No Binaries Metric
8.0.0 passed this metric
Publish Metric
8.0.0 passed this metric
Supported Platforms Metric
8.0.0 passed this metric
Testing File Metric
8.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 https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
8.0.0 passed this metric
8.0.0 passed this metric
8.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 https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
8.0.0 passed this metric
No Binaries Metric
8.0.0 passed this metric
Publish Metric
8.0.0 passed this metric
Supported Platforms Metric
8.0.0 passed this metric
Testing File Metric
8.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 https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
8.0.0 passed this metric
8.0.0 passed this metric
8.0.0 passed this metric
Publish Metric
8.0.0 passed this metric
Supported Platforms Metric
8.0.0 passed this metric
Testing File Metric
8.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 https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
8.0.0 passed this metric
8.0.0 passed this metric
8.0.0 passed this metric
Testing File Metric
8.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 https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
8.0.0 passed this metric
8.0.0 failed this metric
8.0.0 passed this metric