Excluding Platforms
Perhaps our enterprise has standardized on Ubuntu 20.04 for server tasks so we really only care about testing that our server
recipe works on that platform. That said we still want to be able to test our default recipe against CentOS.
Let’s give kitchen list
a look:
$ kitchen list
Instance Driver Provisioner Verifier Transport Last Action Last Error
default-ubuntu-2004 Vagrant ChefInfra Inspec Ssh <Not Created> <None>
default-centos-8 Vagrant ChefInfra Inspec Ssh <Not Created> <None>
server-ubuntu-2004 Vagrant ChefInfra Inspec Ssh Verified <None>
server-centos-8 Vagrant ChefInfra Inspec Ssh <Not Created> <None>
Add a platform name to an
excludes
array in a suite to remove the platform/suite combination from testing.
Let’s exclude the centos-8
platform from the server
suite so that it
doesn’t accidentally get run. Update kitchen.yml
to look like the following:
---
driver:
name: vagrant
provisioner:
name: chef_infra
verifier:
name: inspec
platforms:
- name: ubuntu-20.04
- name: centos-8
suites:
- name: default
verifier:
inspec_tests:
- test/integration/default
- name: server
named_run_list: server
verifier:
inspec_tests:
- test/integration/server
excludes:
- centos-8
Note: in above example the centos-8
platform is explicitly excluded. You could have use a regexp syntax /<pattern>/
to exclude any platform matching the given pattern.
Now let’s run kitchen list
to ensure the instance is gone:
$ kitchen list
Instance Driver Provisioner Verifier Transport Last Action Last Error
default-ubuntu-2004 Vagrant ChefInfra Inspec Ssh <Not Created> <None>
default-centos-8 Vagrant ChefInfra Inspec Ssh <Not Created> <None>
server-ubuntu-2004 Vagrant ChefInfra Inspec Ssh Verified <None>
Finally let’s destroy our running instances:
$ kitchen destroy
-----> Starting Test Kitchen (v3.2.2)
-----> Destroying <default-ubuntu-2004>...
Finished destroying <default-ubuntu-2004> (0m0.00s).
-----> Destroying <default-centos-8>...
Finished destroying <default-centos-8> (0m0.00s).
-----> Destroying <server-ubuntu-2004>...
==> default: Forcing shutdown of VM...
==> default: Destroying VM and associated drives...
Vagrant instance <server-ubuntu-2004> destroyed.
Finished destroying <server-ubuntu-2004> (0m12.55s).
-----> Test Kitchen is finished. (0m17.39s)
Now that we’ve completed our git daemon feature and made sure we’re testing it on only the platform we care about we’ve come to the end of our guide!
Congratulations
You’ve just written a valid Chef Infra cookbook, complete with tests, that is ready to be improved upon further. Before you leave, check out some further resources to help you along your testing journey.