Test kitchen 1.0 - Fletcher Nichol
Upcoming SlideShare
Loading in...5
×
 

Test kitchen 1.0 - Fletcher Nichol

on

  • 760 views

 

Statistics

Views

Total Views
760
Views on SlideShare
760
Embed Views
0

Actions

Likes
1
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Test kitchen 1.0 - Fletcher Nichol Test kitchen 1.0 - Fletcher Nichol Presentation Transcript

  • Test Kitchen 1.0 A Config Management-Neutral Integration Testing Tool Fletcher Nichol October 26, 2013 DevOpsDays Vancouver 2013
  • I love big screens!
  • Ah.
  • Confidence
  • Test Kitchen
  • A test harness tool to execute your configured code on one or more platforms in isolation
  • Currently run Chef converges
  • Seeking input from other configuration management communities very soon
  • commit fda10bb71cc45c7eebeb4355f8dafa2b55f00709 Author: Fletcher Nichol <fnichol@nichol.ca> Date: Sat Dec 1 10:51:52 2012 -0700 Jamie: A Chef Convergence Integration Test Harness. Also, what the heck I am getting into here?
  • commit c8303426363a50a08137e518e124dad31facb9f1 Author: Fletcher Nichol <fnichol@nichol.ca> Date: Mon Jan 28 22:22:08 2013 -0700 Thank you Jamie, hello Test Kitchen. This is a first-pass renaming of the Jamie project to test-kitchen. The following are major breaking changes: * * * * * * all constant references of `Jamie` have been renamed to `Kitchen` the .jamie.yml file has been renamed to .kitchen.yml the binary bin/jamie has been renamed to bin/kitchen the Rake task namespace :jamie is now :kitchen the Thor task namespace :jamie is now :kitchen the `kitchen new_plugin` subcommand will create a 'kitchen-*' gem project
  • Happiness!
  • Goals
  • Simple workflow
  • Stressing speed
  • Optimizing for freshness of code & config
  • Declarative
  • Static configuration
  • Dead simple CI integration
  • $ bundle install $ rake kitchen:all
  • Testing freedom
  • Framework agnostic
  • Concurrent execution
  • Isolated log files
  • Virtualization freedom
  • Decoupled (plugin architecture)
  • Explicit vs. implicit
  • Concepts Demo Ecosystem
  • Concepts Demo Ecosystem
  • Test Kitchen runs suites on target platforms as instances using drivers
  • Platform
  • Platform Operating system or target system
  • Platform Operating system version
  • Platform Hardware architecture, networking, virtualization, etc.
  • Platform It has a name
  • Suite
  • Suite The Chef configuration
  • Suite A run list, node attributes
  • Suite It has a name
  • Instance
  • Instance A suite + platform
  • Instance Name is auto-generated
  • Instance Has associated actions: create, converge, setup, verify, destroy
  • Driver
  • Driver An implementation of instance actions
  • Driver Packaged as a RubyGem
  • Driver One driver per instance
  • Driver Defines its own configuration requirements
  • Bonus!
  • Test Kitchen runs suites on target platforms as instances using drivers and lets you optionally run tests on them to verify state
  • How?
  • Busser
  • “Your Mars Rover on a converged node” - me
  • “Your tests, your way!” - also me
  • Only dependency is Ruby (and thor gem)
  • Prepares node for test suites
  • Installs test runner plugins
  • busser-bash, busser-bats, busser-minitest, busser-shunit2, busser-aruba, busserserverspec, busser-rspec, busser-shpec, busser-cucumber
  • No tests? No problem!
  • Concepts Demo Ecosystem
  • TK::Demorama.new.start!
  • Concepts Demo Ecosystem
  • Linting
  • Foodcritic
  • puppet-lint
  • Unit
  • ChefSpec
  • rspec-puppet
  • Integration
  • Test Kitchen
  • [insert website here] More? Tell me!
  • Infrastructure
  • Cucumber-Chef
  • TestLab
  • Leibniz
  • Vagabond
  • Honorable Mention
  • Berkshelf
  • Vagrant
  • Bonus!
  • DRAFT Test Kitchen! Guide! Soon!
  • Confidence
  • Thanks! Fletcher Nichol @fnichol github.com/fnichol hw-ops.com/people#fletcher
  • Credits! • http://www.flickr.com/photos/michaelschiltz/4993352001/ • http://www.flickr.com/photos/nazly/6867975450/ • http://www.flickr.com/photos/jpdaigle/59942231/ • http://www.flickr.com/photos/absent/2157057475/ • http://www.flickr.com/photos/seattlemunicipalarchives/ 6871310641/ • http://www.flickr.com/photos/nasamarshall/7698035402/ • http://www.flickr.com/photos/pankseelen/6339570829/ • http://www.flickr.com/photos/adampenney/2424992539/ • http://www.flickr.com/photos/fnichol/galleries/ 72157636856466494/ • http://www.flickr.com/photos/robboudon/6035265163/ • http://www.flickr.com/photos/51342261@N08/5478506479/ • http://www.flickr.com/photos/waferboard/4659835234/ • http://www.flickr.com/photos/parkeyparker/4316936774/ • http://www.flickr.com/photos/28096801@N05/4916430883/ • http://www.flickr.com/photos/swfphotos/7498333224/ • http://www.flickr.com/photos/brandonshigeta/4374998947/ • http://www.flickr.com/photos/mcdarius/8524417604/ • http://www.flickr.com/photos/legin101/5210511841/ • http://www.flickr.com/photos/bamboo-adventure/ 3530133273/ • http://www.flickr.com/photos/hoteldelapaixgeneve/ 5592080585/ • http://www.flickr.com/photos/the_eggwhite/8136644446/ • http://www.flickr.com/photos/34667924@N08/3853027446/ • http://www.flickr.com/photos/robboudon/6035816980/