Test Kitchen with Cinc
Test Kitchen is the standard cookbook-testing framework in the Chef ecosystem. There are two well-supported ways to run it against Cinc Client instead of Chef Infra Client:
kitchen-cinc— a dedicated set of Cinc provisioners. We recommend new and migrated test suites use thecinc_*provisioner names. Thechef_*names are also supported as a transition aid so existing suites keep working until you can switch them over.kitchen-dokken(2.23.0+) — nativeproduct_name: cincsupport for the Docker-based driver. Use this when you’re already on dokken for fast container-based testing.
Both ship as part of Cinc Workstation, so if you’re already using Workstation you have them available.
Option 1: kitchen-cinc
kitchen-cinc provides five Cinc-specific provisioners that drive cinc-client (rather than chef-client) inside the test instance:
| Provisioner | Purpose |
|---|---|
cinc_infra | The standard, recommended choice — equivalent to chef_infra |
cinc_zero | Local mode against an in-process server — equivalent to chef_zero |
cinc_solo | Solo mode — equivalent to chef_solo |
cinc_apply | One-off recipe application — equivalent to chef_apply |
cinc_target | Target mode (remote execution) — equivalent to chef_target |
For backwards compatibility, the plugin also accepts the upstream chef_* names — an existing kitchen.yml using provisioner: name: chef_infra will resolve to the Cinc variant once kitchen-cinc is installed, so a migration can be a zero-config first step.
We recommend updating your kitchen.yml to use the cinc_* names once you’ve confirmed the suite passes. The intent is clearer — your test suite is exercising Cinc Client, not Chef Infra Client — and the chef_* alias is best treated as a transition aid rather than a long-term configuration.
Installation
The gem is included in Cinc Workstation. Standalone:
gem install kitchen-cincOr in a Gemfile:
gem "kitchen-cinc"Example kitchen.yml
Provisioning a Vagrant VM with Cinc Client off omnitruck:
driver:
name: vagrant
provisioner:
name: cinc_infra
platforms:
- name: ubuntu-24.04
- name: almalinux-9
suites:
- name: default
run_list:
- recipe[my_cookbook::default]kitchen-cinc defaults to installing Cinc Client from omnitruck.cinc.sh automatically, so no URL or product configuration is required.
Option 2: kitchen-dokken
kitchen-dokken runs Cinc/Chef Client inside a container against another container, which is dramatically faster than spinning up a VM. As of kitchen-dokken 2.23.0 (released May 2026), Cinc is a first-class option.
Setting product_name: cinc automatically configures:
- Image:
cincproject/cincinstead ofchef/chef - Binary path:
/opt/cinc/bin/cinc-client - Volume container naming:
cinc-prefix (avoids collisions with Chef-based suites running in parallel) - License acceptance: skipped (Cinc isn’t a licensed product)
Example kitchen.yml
driver:
name: dokken
chef_version: 19
provisioner:
name: dokken
product_name: cinc
transport:
name: dokken
platforms:
- name: almalinux-9
driver:
image: dokken/almalinux-9
- name: ubuntu-24.04
driver:
image: dokken/ubuntu-24.04
suites:
- name: default
run_list:
- recipe[my_cookbook::default]chef_version accepts any tag published on the cincproject/cinc image — a major version (19, 18), a minor version (19.0, 18.7), a full semver (19.0.0), or latest. The Chef-style channel names stable and current are not supported by the Cinc image, since we only ship from a single stable channel.
You can also pin to a specific Cinc Client tag by overriding the image:
driver:
name: dokken
chef_image: cincproject/cinc
chef_version: 19.0.0Which one should I use?
- Already on dokken? Use Option 2 — minimal config change, fastest test iteration.
- Migrating an existing
chef_*suite? Installkitchen-cinc— thechef_*names alias to the Cinc variants so the suite starts running against Cinc immediately. Then rename tocinc_*once the suite is green; that’s the recommended end state. - Building new test suites from scratch? Use
kitchen-cincwith thecinc_*provisioner names. Pair with whichever driver (Vagrant, dokken, ec2, hyperv, …) fits your environment.
Where to file issues
kitchen-cincbugs and feature requests → github.com/test-kitchen/kitchen-cinckitchen-dokkenbugs and feature requests → github.com/test-kitchen/kitchen-dokken- Cinc Client behavior the provisioner exposed →
distribution/clienton Cinc GitLab - Cinc container image issues → see Container images