This is happening thanks to a refactoring of the data manipulation code formerly in Kitchen::Config
.
There are now 3 main configuration blocks that can be placed in the various levels:
driver
: Configurtation relavent to Kitchen drivers. This is a combination of what wasdriver_plugin
anddriver_config
. Backwards compatability is guarenteed with the legacy formats for a time, then will be deprecated (with a warning when encountered), then will be removed in a future release.provisioner
: Configuration relating to the automation tool being used. Currently supporting"chef_solo"
and"chef_zero"
. Previously several Chef-related config paths were dumped in a Suite block, namelydata_path
,data_bags_path
,environments_path
,nodes_path
,roles_path
, etc. These will be supported for backwards compatability, then will be deprecated (with a warning when encountered), then will be removed in a future release.busser
: Configuration relating to the Busser gem such as version to install, alternative path to Ruby, and coming soon runner plugin version support. Thebusser
block is net new but will be very helpful when developing Busser runner plugins or pinning versions the components.
There remain 3 places to put the above configuration blocks:
- In a particular Suite block
- In a particular Platform block
- In the root of the YAML document, which is also known as the common location
The precedence order for recursive merging is as follows (from highest to lowest):
- Suite
- Platform
- Common