atomic-penguin's blog

Musings on Linux, Opscode Chef, online gaming, and home cooking.

Stupid Jenkins Tricks, Part 2: Cookbook Pipelines

Sorry for the delay in updating this series about Chef and Jenkins. Last week I was busy celebrating with family and went through the Master’s hooding and commencement ceremonies. Unfortunately, I didn’t get a chance to revisit the blog until now.

This week I was getting acclimated to my new job at Cycle Computing. I am super stoked about this opportunity, and all of my Cycle colleagues seem like a friendly, and smart, bunch of people.

I wanted to get a few more thoughts from my Masters Capstone project into blog form. I want others to be able to learn from both the technical and theoretical side of my research. This post is distilled continuous integration theory applied to Chef cookbooks. Its not prescriptive, and it may not work for you. It was extremely effective in practice at Marshall, however.

Over a period of 12 weeks, there were 159 changes introduced into two cookbooks. There was a nominal failure rate of 19.2% to 20.31% in the continuous integration environment. The more realistic effective failure rate was actually 16.43% to 18.37% in the continuous integration environment. However, there was only a 0.99% to 1.92% rate of defect release for the in-scope software units over the course of the project.

Stupid Jenkins Tricks, Part 1: Rubocop

I have spent the last three months working on a Masters thesis, and just finished up last week after Chefconf. Trust me, you probably don’t want to read that long-winded monstrosity which is short on technical details. The high-level view of that project was building a continuous integration (CI) pipeline for internal Cookbook development at Marshall.

I learned quite a few tricks during that project, and figured out a few ways to expand on those ideas from Chefconf 2014. The hack day event(s), hallway track, and a few of the talks were all insightful towards this end. In this first part, I am going to tackle some low hanging fruit and demonstrate how to track Rubocop warnings on Jenkins, much like one would track Foodcritic warnings.

TIL: System Generated Errata List and Patch Changelog With Yum

I was looking for a way to create a system generated CVE, or errata, list for a production change request today. I recall this being easier on RHN (Red Hat Network) portal, in the past. That has changed so much, I don’t even know where to look, and apparently cannot list more than 10 errata issues per-page.

HOWTO Test-kitchen and Encrypted Data Bags

I have been playing around with test-kitchen more recently. One of the community members suggested I embed an encrypted data_bag into the certificates cookbook for integration testing with test-kitchen.

Following, is the process used to set up test-kitchen for encrypted data_bag use. This documentation might be useful to others trying to integrate encrypted data_bag testing into their cookbooks.

Multi-knife HOWTO


Here is an example shared configuration for knife, the command and control utility which ships with Opscode Chef. You can drop this off in your chef-repo/.chef/ directory, and multiple developers can use the same knife configuration to interact with more than one Chef server, or the Opscode platform.

By using Bash functions and environment variables we can change the chef server, which knife is configured to use, on the fly.

Disabling VerticalSync in KDE for Steam4Linux Beta

According to Wikipedia, Vertical synchronization (or VerticalSync) is

an option in most systems, wherein the video card is prevented from doing anything visible to the display memory until after the monitor finishes its current refresh cycle.

In layman’s terms, when Vertical synchronization is turned on, many aspects of video processing are locked to the reported refresh rate of your display hardware. In other words, if your fancy LCD screen reports 60 Hz. is its own supported refresh rate, then games or video playback will be capped at 60 frames per second when Vertical synchronization is turned on.

Mini-HOWTO: Building a Deb Package for Beta NVidia Drivers

Since the first week of this last November, the closed Linux Steam beta has been underway. I think the latest official count of Linux beta users is somewhere near 80,000 gamers. That is a pretty impressive closed beta headcount considering that is more than 1% of the active 5 million users who use Steam daily. It is really an exciting time for all the Linux desktop users. As the introduction of Steam has encouraged GPU OEMs to improve their Linux video drivers. Also, some of the game developers participating in the Linux beta have been supporting their customers and fixing bugs, even for those not officially included in the closed beta program.

Atomic Penguins Feel Good Chili

When I am not writing Opschef cookbooks, I do enjoy real cooking in my spare time. I have been down and out with a bit of a cold for the last week. With it getting colder outside and with me feeling a bit better today, I decided to make a big pot of chili.

There is just something about having a big pot stewing and making your house smell homey, like a big pot of soup, which can make you feel better. Capsaicin, the magical stuff which make peppers hot, is thought to break up congestion, to help clear up your sinuses, and helps with the management of pain. So some spicy Chili certainly can’t hurt, especially given the cold I have suffered through this week.

Foodfight Podcast - Episode 17, Testing With Eric G. Wolfe & Fletcher Nichol

I had such a blast at the inaugural Chefconf in San Francisco, CA. This was my first time visiting the area, I had a chance to visit the Alcatraz prison. I also drank a lot of Anchor Steam, while pair programming with Fletcher Nichol to make the NTP cookbook a reference cookbook for testing Chef recipes.

During my second appearance on the Food Fight show, we covered what we hacked on throughout Chefconf with regard to Travis CI automated testing. We also talked a bit about what we are doing internally with Jenkins to test our cookbook code. Here is the link to the podcast audio and also the show notes.