Automate testing and delivery of cookbooks * Track all cookbooks for an org or enterprise * Uniform space to do integration testing * Manage dependency and versions of cookbooks for many environments using one codebase * Teams collaborate/integrate in source code only ie git * Developers work locally, no direct access to chef servers/orgs via knife
the cookbooks • 2. pipeline job for the berksfile • 4. CD/CI job per cookbook uploads to artifact chef server • 3. promote jobs move cookbooks across environments
cookbook watches for changes on cookbooks runs tests uploads cookbook to chef server/org artifact? ! creates spiceweasel job watches for changes on yml for chef artifacts (data_bags, environments and roles) uploads artifacts
job per cookbook watches for changes on cookbooks runs tests uploads cookbook to chef server/org artifact? ! creates spiceweasel job watches for changes on yml for chef artifacts (data_bags, environments and roles) uploads artifacts
]; then berks update -c /var/lib/jenkins/.berkshelf/config.json else berks install -c /var/lib/jenkins/.berkshelf/config.json fi berks upload -c /var/lib/jenkins/.berkshelf/config.json reads a master berksfile creates jenkins job per cookbook watches for changes on cookbooks runs tests uploads cookbook to chef server/org artifact? ! creates spiceweasel job watches for changes on yml for chef artifacts (data_bags, environments and roles) uploads artifacts
upload to PROD chef server berks apply PROD create promote jobs per environment AND/OR chef server/org uploads cookbooks/artifacts from one chef server/org to another pin versions in environments
pipeline git tagging / metadata bump berkshelf DSL test before merge data bags for chef orgs documentation (derp) better ssh key management partials all providers tagging back berkshelf DSL test before merge data in data bags how to test the pipeline cookbook