Examples
We’ve collected a variety of examples to highlight all the different things one can do with Test Kitchen.
kitchen-vagrant
The default driver with a default provider of VirtualBox. Here is a fully annotated example of the kitchen.yml
generated by chef generate
---
# Configure the driver (cloud/hypervisor)
driver:
name: vagrant #ec2, dokken, libvirt
# provider: virtualbox
# Configure the provisioner (config management)
provisioner:
name: chef_infra #chef_infra (legacy of chef_zero), chef_solo, salt_solo, puppet_apply, ansible_playbook, shell
# Configure the verifier (testing framework)
verifier:
name: inspec
# Enumerate platforms
# A platform represents a single configuration of an operating system
# While this is often 1:1, the names allow this to be customizable
# At least 1 platform is **required**
platforms:
# Drivers may support defaults that automatically
# map certain names to an image for the given driver
- name: ubuntu-20.04
- name: centos-8
# Enumerate suites
# At least 1 suite is **required**
suites:
# The name of each suite maps to a configuration / set of tests
# Depending on the verifier, default locations may be inferred based on
# directory naming
- name: default
run_list:
- recipe[git_cookbook::default]
verifier:
inspec_tests:
- test/integration/default
attributes:
Sometimes you’d like to add another NIC to your VM or bump up the memory. You might have a forwarded_port
you’d like
to add also. The following snippet has a couple of suggestions for doing this. You can even turn on the auto_correct
if you think
you’ll need it.
name: vagrant
network:
- ["forwarded_port", {guest: 80, host: 8080, auto_correct: true}]
- ["forwarded_port", {guest: 443, host: 8443}]
- ["private_network", {ip: "10.0.0.1"}]
customize:
cpus: 2
memory: 4096
The driver tries to closely mirror the upstream, as illustrated by forwarded_port and private_network.
If you would like more information, the kitchen-vagrant GitHub page has more.
---
driver:
name: vagrant
network:
- ["forwarded_port", {guest: 8080, host: 8081}]
provisioner:
name: chef_solo
data_bags_path: './test/integration/data_bags/'
solo_rb:
environment: test
platforms:
- name: ubuntu-20.04
suites:
- name: default
run_list:
- recipe[hangops-jobbot::default]
attributes: