[chef] Chefconf Hackday results

Chronological Thread 
  • From: "Eric G. Wolfe" < >
  • To:
  • Subject: [chef] Chefconf Hackday results
  • Date: Mon, 21 May 2012 16:50:00 -0400

So last week, Fletcher Nichol and myself, took on the task of adding attribute sanity tests, and foodcritic linting, to a simple cookbook. Many others joined us for some Beer-Driven Development throughout the week, almost too many to name (big thanks to Matthew Sauve-Frankel). We also integrated this with Travis CI for shits 'n' giggles. I received some feedback ranging on our testing efforts from "that sounds stupid" to "that looks badass".

Both of us have some community cookbooks that take upwards of 30 minutes to converge. So this was a bit of a proof of concept, and an exercise to provide reference documentation for testing cookbooks. Our main goal was to have a way of testing inputs (attributes) as a cookbook ships. As a cookbook maintainer, I have no way of knowing what attributes someone may override without loading external roles. The way I see it, the least I could do is make sure what does ship in one of my cookbooks is somewhat sane.

I opened a JIRA ticket [COOK-1298] intending to use NTP as a reference cookbook for platform edge-case testing. It seemed like a good hello world example to test this idea out. So, not actually sure if I'll pull request this or not. I guess I am looking for validation from others on the mailing list that this idea is not, in fact, stupid.

I have squashed the commits in the following tree, to hide any drunken commit messages which may, or may not, have occurred at Chefconf. Check it out, and let me know what you think. The TESTING.md is meant to serve as a HOWTO document for testing cookbook inputs as we have done here.

Eric G. Wolfe
Senior Linux Administrator,
IT Infrastructure Systems
Marshall University Computing Services
Drinko Library 428-K
One John Marshall Dr.
Huntington, WV 25755
Phone: 304.942.3970

You will be recognized and honored as a community leader.

Archive powered by MHonArc 2.6.16.