ChefTable
ChefTable is a knife plugin to aid in cookbook development workflow. Its intention is to help automate versioning within environments and cookbook freezing based on a stable branch. Building off of the knife-spork plugin ChefTable helps to provide consistency within the environment.
Usage
Currently, two helpers are available:
knife table set
and
knife table serve
Setting the table
First, we set the table either by adding new or modifying existing features. To do this, we set the table with a basic description of what is being added:
knife table set new feature
This will create a new working branch named 'WIP-new_feature'. The prefix
for the branch defaults to 'WIP-' but can be modified using the -p
option.
If it is known what cookbooks will be modified, you can provide them while
setting:
knife table set -c iptables,mysql new feature
Service
Service works on the assumption that any new code into the stable branch (master
by default) will arrive via pull requests. By default, it will find the last
pull request in the log and update based on changes within that merge. The default
behavior of the serve
command will upload and freeze any changed cookbooks. Optionally,
environments can be provided to have the cookbook versions automatically pegged. Also,
roles and data bags can be automatically uploaded as well.
Options for serve:
--environments ENV[,ENV...]
'Update versions in given environments'--git-autopush
'Automatically commit and push any changes to master'--git-tag
'Automatically create tag for frozen cookbook'--git-branch BRANCH
'Set working branch'--git-remote-name NAME
'Remote repo name'--git-autocommit
'Automatically commit changes'--autoproceed
'Answer yes to any prompts'--roles
'Upload any changed roles'--data-bags
'Upload any changed data bags'