Note
Finally got around to writing up the work that I did at Capital One on our #Chef pipelines which I was very proud of.
It's a bit of a long read, but details some pretty impactful changes made over several months of solo work - between games of Apex Legends - and hopefully is transferrable to other folks.
TL;DR is listen to what your users want, instead of telling them to use a thing they don't particularly like but have no choice in
Mon, 09 Jan 2023 09:33 by Jamie Tanna
.
#chef .
Article
What I learned rebuilding our CI/CD pipelines for Chef Cookbooks (22 mins read).
How a focus on developer experience and user needs helped us rebuild (Capital One's) CI/CD pipelines for Chef cookbooks the right way.
Mon, 09 Jan 2023 09:30 by Jamie Tanna
.
#chef
#capital-one
#jenkins
#job-dsl
#developer-experience .
Article
Updating the CA Certificate bundle in Chef Installations (3 mins read).
How to update/add new certificates to the Certificate Authority Certificate Bundle in a Chef Development Kit / Workstation installation.
Wed, 02 Mar 2022 09:59 by Jamie Tanna
.
#blogumentation
#chef .
Article
Debugging Chef Variables With Logs (3 mins read).
How you can use different means of logging to make operations with Chef cookbook a little easier.
Mon, 13 Dec 2021 20:01 by Jamie Tanna
.
#blogumentation
#chef .
Article
Converting a Kitchen YAML to Chef Attributes (2 mins read).
How to convert attributes being set for your Chef Test Kitchen integration tests to an attributes.rb
format.
Wed, 08 Dec 2021 21:40 by Jamie Tanna
.
#blogumentation
#chef
#test-kitchen .
Article
Programatically Comparing Versions Using Chef's Versioning Schemes (1 mins read).
How to use Chef's versioning classes to determine whether a version constraint is matched.
Thu, 15 Jul 2021 20:48 by Jamie Tanna
.
#blogumentation
#chef
#ruby .
Article
Uploading Community Cookbooks from Supermarket to Chef Server (1 mins read).
How to upload a given community cookbook from Chef Supermarket to Chef Server, using Berkshelf.
Mon, 19 Apr 2021 09:02 by Jamie Tanna
.
#blogumentation
#chef
#berkshelf .
Article
Constructing an Ordered Dependency Graph for Chef Cookbooks, using Berkshelf (3 mins read).
How to create a dependency graph for a given cookbook's dependencies to understand the order to install them in.
Sun, 18 Apr 2021 11:51 by Jamie Tanna
.
#blogumentation
#chef
#berkshelf
#ruby .
Note
Hey #ChefFriends how do you generally manage syncing a cookbook between Supermarket and #Chef Server? Wondered if there's anything currently out there to pull the cookbook and it's dependencies, in the right order to Server?
Sun, 18 Apr 2021 10:30 by Jamie Tanna
.
#chef-friends
#chef .
Article
Using Dynamically Generated Non-AWS Owned SSH Keys with Test Kitchen on EC2 (3 mins read).
How to set up kitchen-ec2 to use an SSH key that isn't available in AWS by amending the user-data
of the created EC2 instance.
Fri, 16 Apr 2021 17:21 by Jamie Tanna
.
#blogumentation
#chef
#test-kitchen
#aws
#ssh .
Article
Waiting for SSH service
on Test Kitchen with the Docker driver (1 mins read).
How to resolve Waiting for SSH service
when running kitchen-docker.
Wed, 07 Apr 2021 17:09 by Jamie Tanna
.
#blogumentation
#chef
#test-kitchen
#docker .
Article
Better Chef Reporting for Automated Pipelines (1 mins read).
How to get better machine-parseable reports for your Chef Pipelines.
Mon, 29 Mar 2021 19:39 by Jamie Tanna
.
#blogumentation
#chef
#jenkins
#test-kitchen
#rubocop
#cookstyle
#rspec .
Article
Managing Your Chef Gem Dependencies More Easily in your Gemfile
(2 mins read).
How to source your Chef Gem dependencies from your Chef cookbook's metadata.rb
instead of duplicating them between files.
Wed, 24 Mar 2021 13:42 by Jamie Tanna
.
#blogumentation
#chef
#ruby .
Article
Programatically Determining the Version of a Chef Cookbook (1 mins read).
How to determine a Chef cookbook's version programatically, using Ruby.
Tue, 23 Mar 2021 22:04 by Jamie Tanna
.
#blogumentation
#chef
#ruby .
Article
How to Use Cookstyle to Autocorrect Style Issues (1 mins read).
How to use the cookstyle
tool with Chef cookbooks to autocorrect style issues.
Sun, 14 Mar 2021 12:41 by Jamie Tanna
.
#blogumentation
#chef
#ruby
#chefdk
#chef-workstation
#cookstyle .
Note
Well it's taken me a few years, but I've finally worked out how to manage Gems in #Chef without horrible chef exec bundle exec ...
commands https://www.jvt.me/posts/2021/02/22/chefdk-gemfile/
Mon, 22 Feb 2021 21:54 by Jamie Tanna
.
#chef .
Article
Installing Gems From Your Gemfile
When Developing Chef Cookbooks using the ChefDK / Chef Workstation (2 mins read).
How to install Ruby Gems in local development using your Gemfile
.
Mon, 22 Feb 2021 21:51 by Jamie Tanna
.
#blogumentation
#chef
#ruby
#chefdk
#chef-workstation .
Article
Gotcha: AWS SDK Proxy Setup with Test Kitchen (2 mins read).
How to avoid odd proxy issues when using the AWS SDK, when using Test Kitchen.
Wed, 06 May 2020 14:42 by Jamie Tanna
.
#blogumentation
#chef
#test-kitchen
#proxy .
Article
Using Chef to Delete Files that aren't in a List (2 mins read).
How to delete files in a directory that don't match a list.
Tue, 10 Dec 2019 23:10 by Jamie Tanna
.
#blogumentation
#chef .
Article
ChefSpec Gotcha: Using render_file
When Deleting Files (2 mins read).
How to use render_file
with ChefSpec when you're deleting the file.
Fri, 06 Dec 2019 21:44 by Jamie Tanna
.
#blogumentation
#chef
#chefspec .
Article
Chef Attributes and default.rb
- it's in the name (3 mins read).
Why you should only be setting defaults in your Chef attributes, and moving heavy lifting elsewhere.
Thu, 07 Nov 2019 18:49 by Jamie Tanna
.
#nablopomo
#chef
#chefspec .
Article
Setting up a custom RubyGems Repository for Chef in Test Kitchen (1 mins read).
How to use a private RubyGems repository for your Chef gem dependencies in Test Kitchen.
Tue, 17 Sep 2019 13:33 by Jamie Tanna
.
#chef
#blogumentation
#test-kitchen .
Article
How Many Gadgets Does the Kitchen Need?! The Many Tools for Chef Dependency Management (5 mins read).
Looking at the different dependency management solutions of Chef, and how, where and why you would use each one.
Sun, 15 Sep 2019 14:59 by Jamie Tanna
.
#blogumentation
#chef .
Article
Performing a No-Op with chef-client
using JSON (2 mins read).
How to perform a chef-client
run without executing anything.
Sun, 10 Feb 2019 22:33 by Jamie Tanna
.
#blogumentation
#chef .
Article
How to run tests from the ChefDK in Docker (6 mins read).
How to get up and running with the ChefDK to perform common tests, such as unit tests and linting.
Wed, 05 Dec 2018 23:07 by Jamie Tanna
.
#blogumentation
#chef
#chefdk
#docker .
Article
Using Fake Cookbooks for Writing ChefSpec Tests for your Custom Chef Resources (3 mins read).
A directory structure I've found quite useful for writing ChefSpec tests for custom resources, by creating a fake cookbook within the cookbook you're testing.
Thu, 29 Nov 2018 21:18 by Jamie Tanna
.
#blogumentation
#chef
#custom-resource
#chefspec .
Article
Chef 14 Upgrade: Change in ValidationFailed
error messages when setting required
properties (2 mins read).
The updated error message returned by a Chef ValidationFailed
error, when you're specifying which properties are required
on a custom resource.
Mon, 12 Nov 2018 23:35 by Jamie Tanna
.
#blogumentation
#chef-14-upgrade
#chef
#chefspec
#chef-14 .
Article
Revert 'Some knowledge-sharing news' (5 mins read).
The unfortunate decision to cancel my Packt training courses.
Sun, 28 Oct 2018 18:40 by Jamie Tanna
.
#news
#events
#chef
#testing
#tdd .
Article
Test-Driven Chef Cookbook Development Using ChefSpec (and a sprinkling of InSpec) (39 mins read).
Using the example of deploying and running a Java JAR file as a way to show the lifecycle of a fully test-driven Chef cookbook.
Tue, 04 Sep 2018 14:52 by Jamie Tanna
.
#howto
#blogumentation
#chef
#test-kitchen
#chefspec
#tdd
#testing
#guide .
Article
Using chef-shell
to interactively debug attributes and recipes (5 mins read).
How to use chef-shell
to see attribute config and recipes, with and without a Chef Server.
Wed, 29 Aug 2018 13:38 by Jamie Tanna
.
#chef
#chef-shell
#blogumentation
#test-kitchen
#chef-server
#chefdk .
Article
OggCamp 2018 (21 mins read).
A look at my time at OggCamp 2018, the talks I presented and attended.
Thu, 23 Aug 2018 18:18 by Jamie Tanna
.
#events
#oggcamp
#chef
#public-speaking
#openapi
#swagger
#free-software
#open-source
#collaborative-culture .
Article
Some exciting job and knowledge-sharing news (4 mins read).
Moving into Quality Engineering, publishing Chef training courses, conference speaking about Chef at OggCamp and the complex mess that is this very static website at DevOpsDays London.
Fri, 06 Jul 2018 22:24 by Jamie Tanna
.
#news
#capital-one
#events
#chef
#testing
#conference
#job
#tdd
#oggcamp
#devopsdays .
Article
Notes from the AWS + Chef Dev Day Roadshow in London (13 mins read).
Notes from the AWS Dev Day Roadshow in London, where we got to play around with Chef, Chef Automate and InSpec using AWS OpsWorks.
Sun, 24 Jun 2018 22:25 by Jamie Tanna
.
#aws
#chef
#events
#chef-server
#opsworks
#cloud-formation
#cloud-custodian
#deployment
#containers
#chef-automate
#inspec .
Article
Beware: delete
ing a file
in Chef doesn't actually delete
it (3 mins read).
Why you should explicitly add backup false
when delete
ing a file
through Chef, to avoid leaving potentially sensitive files still on the box.
Mon, 30 Apr 2018 17:54 by Jamie Tanna
.
#blogumentation
#chef .
Article
Morsels of Goodness: What's Cooking in Chef 14? (5 mins read).
A look at the new features coming in the new Chef 14 release, as well as what to watch out for when upgrading.
Mon, 23 Apr 2018 16:09 by Jamie Tanna
.
#chef-14
#chef
#foodcritic
#cookstyle
#rubocop
#ruby
#test-kitchen .
Article
Bundling Common Rake Tasks into a Gem (8 mins read).
An example of how to create a helper gem for common Rake task, using the real-world example of Chef cookbooks.
Thu, 05 Apr 2018 21:17 by Jamie Tanna
.
#blogumentation
#chef
#chefdk
#gem
#ruby
#rake
#foodcritic
#rubocop
#rspec
#knife-cookbook-doc
#gitlab-ci .
Article
Running docker login
as another user in Chef (2 mins read).
Hitting the error permission denied while trying to connect to the Docker daemon socket
when trying to run docker login
as a non-root user in Chef.
Mon, 26 Mar 2018 21:14 by Jamie Tanna
.
#docker
#chef
#blogumentation .
Article
Chef 13 Upgrade: knife-cookbook-doc
Rubocop Updates (1 mins read).
Disabling the Missing space after #
and Do not use block comments
errors for your knife-cookbook-doc
formatted comments.
Fri, 09 Mar 2018 17:30 by Jamie Tanna
.
#blogumentation
#chef-13-upgrade
#chef
#knife-cookbook-doc
#chef-13
#documentation
#chef-13-upgrade-rubocop .