kitchen-cinc
A Test Kitchen provisioner for Cinc Client (the community distribution of Chef Infra Client) that downloads and installs omnibus packages via the Cinc omnitruck API.
Overview
This Test Kitchen plugin provides provisioners that automatically download and install the desired version of Cinc Client on your test instances. This allows you to test your cookbooks against different Cinc versions without pre-installing Cinc on your images.
Installation
Note: This gem will ship as part of Cinc Workstation. If you're using Cinc Workstation, no additional installation is necessary.
For standalone installation, add this line to your Gemfile:
gem "kitchen-cinc"Then execute:
bundle installOr install it directly:
gem install kitchen-cincUsage
Available Provisioners
This gem provides five provisioners:
-
cinc_infra— Modern Cinc Client provisioner using local mode (recommended) -
cinc_zero— Deprecated alias forcinc_infra(maintained for backward compatibility) -
cinc_solo— Cinc Solo provisioner (note: does not support parallel converge) -
cinc_apply— Cinc Apply provisioner for running individual recipes -
cinc_target— Cinc Target Mode provisioner (requires Cinc 19.0.0+, Train-based transport)
Basic Configuration
To use the Cinc Infra provisioner in your kitchen.yml:
provisioner:
name: cinc_infraComplete Example
---
driver:
name: vagrant
provisioner:
name: cinc_infra
product_name: cinc
install_strategy: always
channel: stable
platforms:
- name: ubuntu-24.04
- name: almalinux-9
suites:
- name: default
run_list:
- recipe[my_cookbook::default]Docker (Dokken) Example
---
driver:
name: dokken
privileged: true
chef_image: cincproject/cinc
chef_version: latest
provisioner:
name: cinc_infra
product_name: cinc
transport:
name: dokken
platforms:
- name: ubuntu-24.04
driver:
image: dokken/ubuntu-24.04
pid_one_command: /bin/systemd
- name: almalinux-9
driver:
image: dokken/almalinux-9
pid_one_command: /usr/lib/systemd/systemdConfiguration Options
Every option exposed by the provisioners is documented under
docs/:
-
Provisioners — overview of
cinc_infra,cinc_zero,cinc_solo,cinc_apply, andcinc_target. -
Installation options —
product_name,product_version,channel,install_strategy,download_url,checksum, proxies, and the legacy omnibus options. -
Converge options —
run_list,attributes, logging,multiple_converge,enforce_idempotency,client_rb/solo_rb, Chef Zero host/port, and more. - Cookbook resolution — Policyfile and Berkshelf integration.
- Paths — sandbox, on-instance, and binary paths.
-
Target mode — extra requirements and option
overrides for
cinc_target.
Development
Running Tests
bundle install
bundle exec rake # Run all tests and linting
bundle exec rake spec # Run unit tests only
bundle exec rake lint # Run Cookstyle linting onlyIntegration Tests
# Vagrant
KITCHEN_YAML=kitchen.yml bundle exec kitchen test
# Docker (Dokken)
KITCHEN_YAML=kitchen.dokken.yml bundle exec kitchen testLicense
Apache-2.0 — see LICENSE for details.