a testing framework • DSL for acceptance testing puppet code against a ‘real’ environment • Spin up a box • Apply your puppet code • Test your expectations • Uses rspec and serverspec under the hood to spin up nodes in vagrant/aws/vsphere/docker
• Modules that support multiple versions of distros • Not every “base” image is the same • You care about idempotency • You don’t trust modules written by others • You’re baking your images
describe service('ntpd') do it { should be_enabled } end describe docker_container(‘mysql’) do it { should be_running } end describe windows_feature('Web-Webserver') do it { should be_installed.by("powershell") } end