Chef Workflow Part One - chef-boneyard/chef-summit-2014 GitHub Wiki

Session Title Chef Workflow

10/2/2014, Greenwood, 14:30

Convener - Adam Jacobs

Participants

Summary of Discussions

Workflow

Berkshelf rebellion. Some use it only for dependency resolution.

Workflows lots of methods. Problem lots of flows are sensitive to any change and fail massively.

Want a stable workflow.

Classically were 2 choices that were supported: Huge repo all cookbooks. Separate repos.

Come up with a workflow api, list of what we do with chef is sort of small.

? What are the bad/alternative workflows?

Anything but an equality pin. Probably a bad idea. Moving pinning is a missing part. Suggest anything but equality in the environment is wrong. All development in production. Top level cookbook can be used to generate a complete list of pins.

Background on pinning. Cookbooks have semver versions. Forced by Adam. Cookbook metadata has pinning. <, =, ~> Environment pinning same operators. Pinning everything makes graph resolution really hard. The right thing to do is equality pinning.

Rails - how to deal with pulled versions. Chef just fails.

ChefDk User workflow tool. Help people get to a sane workflow. Shocking how many things we have to think about to work on chef if done in a team. Chef server history was a bit weak.

Developers pushing to the chef server is an anti-pattern.

Development with test kitchen is so much easier than without. Easy to converge as much as possible, throw away instances are important. Add CI to make the whole thing life changing.

CI even without testing, doing versioning and knife upload is reason enough.

Testing should happen on the development environment, pushing to the chef server to do testing smells. Running guard for automated quick testing is great. Just testing converge on dev machine.

Important to test converge on new servers in development. Is there a way to test dirty servers. Some ways were suggested.

Suggested that test kitchen is so easy, not always. Lots of good test environments available. Docker, EC2, vagrant.

Chef generate - lower the barrier to cookbook development.

How to grow developers. Gently - small steps. Recipe to write resume?

What are the steps after using ChefDk to create a cookbook? Something to push to server is one option. Lots of opinions on how to put stuff to into chef. Travis is used for testing some times.

Philosophically wrong things. kinfe upload taught to folks, wrong things to do. Different organizations have different needs. Really small upload may make sense. Increasing friction by disallowing knife upload is just wrong.

Good story about adopting ChefDk. Fills holes. Using Chef-librarian is also ok.

What will we do now? What needs to happen next?

⚠️ **GitHub.com Fallback** ⚠️