[Pre-release Announcement] ChefDK 1.1.16


#1

Ohai Chefs!

We have selected 1.1.16 as our ChefDK v1.1 release candidate which is scheduled for release on Monday December 19, 2016.

Release Highlights

New Inspec Test Location

To address bugs and confusion with the previous test/recipes location, all newly generated cookbooks and recipes will place their Inspec tests in test/smoke/default. This placement creates the association of the smoke Workflow phase and the default Kitchen suite where the tests are run.

Default Docker image in kitchen-dokken is now official Chef image

chef/chef is now the default Docker image used in kitchen-dokken.

New Kitchen driver caching mechanism

Kitchen will automatically cache downloaded chef-client packages for use between provisions. For people who use the kitchen-vagrant driver to run Chef, it will automatically consume the new caching mechanism to share the client packages to the guest VM, meaning that you no longer have to wait for the client to download on every guest provision.

In addition, if the chef-client packages are already cached, then it is now possible to use Kitchen completely off-line.

[Workflow] Adopt new job dispatch system on cookbook generation

The chef generate cookbook command now defaults to using the configuration for the new job dispatch system that replaces the previous push jobs based implementation with the SSH based implementation. For more details on this new system and how to use it, see: https://docs.chef.io/job_dispatch.html

Cookstyle 1.1.0 with new code linting Cops

Cookstyle has been updated from 0.0.1 to 1.1.0, which upgrades the RuboCop engine from 0.39 to 0.46 and enables several new cops. This will most likely result in Cookstyle warning on cookbooks that previously passed.

Newly Disabled Cops:

  • Metrics/CyclomaticComplexity
  • Style/NumericLiterals
  • Style/RegexpLiteral in ‘tests’ directory
  • Style/AsciiComments
  • Style/TernaryParentheses
  • Metrics/ClassLength
  • All rails/* cops

Newly Enabled Cops:

  • Bundler/DuplicatedGem
  • Style/SpaceInsideArrayPercentLiteral
  • Style/NumericPredicate
  • Style/EmptyCaseCondition
  • Style/EachForSimpleLoop
  • Style/PreferredHashMethods
  • Lint/UnifiedInteger
  • Lint/PercentSymbolArray
  • Lint/PercentStringArray
  • Lint/EmptyWhen
  • Lint/EmptyExpression
  • Lint/DuplicateCaseCondition
  • Style/TrailingCommaInLiteral
  • Lint/ShadowedException

New DCO Tool Included

We have included a new dco command line tool that makes it easier to contribute to projects like Chef that use the Developer Certificate of Origin. The tool allows you to enable/disable DCO sign-offs on a per repository basis and also allows you to retroactively sign off all commits on a branch. See https://github.com/coderanger/dco for details.

Notable Upgraded Gems

  • chef 12.16.42 -> 12.17.44
  • ohai 8.21.0 -> 8.22.0
  • inspec 1.4.1 -> 1.7.2
  • train 0.21.1 -> 0.22.0
  • test-kitchen 1.13.2 -> 1.14.2
  • kitchen-vagrant 0.20.0 -> 0.21.1
  • winrm-elevated 1.0.1 -> 1.1.0
  • winrm-fs 1.0.0 -> 1.0.1
  • cookstyle 0.0.1 -> 1.1.0

Please see the CHANGELOG for the complete list of changes.

Get the Build

As always, you can download binaries directly from downloads.chef.io or by using the new mixlib-install command line utility available in ChefDK 0.19.6 or greater.

$ mixlib-install download chefdk -v 1.1.16 -c current

Alternatively, you can install ChefDK using one of the following command options:

# In Shell
$ curl https://omnitruck.chef.io/install.sh | sudo bash -s -- -P chefdk -v 1.1.16 -c current

# In Windows Powershell
. { iwr -useb https://omnitruck.chef.io/install.ps1 } | iex; install -project chefdk -version 1.1.16 -channel current

If you want to give this version a spin in Test Kitchen, create or add the following to a .kitchen.local.yml file:

provisioner:
  product_name: chefdk
  channel: current
  product_version: 1.1.16