Skip to content

Latest commit

 

History

History
171 lines (128 loc) · 6 KB

RELEASE_NOTES.md

File metadata and controls

171 lines (128 loc) · 6 KB

ChefDK 2.4 Release Notes

Rename smoke tests to integration tests.

The cookbook, recipe, and app generators now name the test directory integration instead of smoke.

Improved Performance Downloading Cookbooks from a Chef Server

Policyfile users who use a Chef Server as a cookbook source will experience faster cookbook downloads when running chef install. Chef Server's API requires each file in a cookbook to be downloaded separately; ChefDK will now download the files in parallel. Additionally, HTTP keepalives are enabled to reduce connection overhead.

Cookbook Artifact Source for Policyfiles

Policyfile users may now source cookbooks from the Chef Server's cookbook artifact store. This is mainly intended to support the upcoming include_policy feature, but could be useful in some situations.

Given a cookbook that has been uploaded to the Chef Server via chef push, it can be used in another policy by adding code like the following to the ruby policyfile:

cookbook "runit",
  chef_server_artifact: "https://chef.example/organizations/myorg",
  identifier: "09d43fad354b3efcc5b5836fef5137131f60f974"

Add include_policy directive

Policyfile maybe now use the include_policy directive as described in RFC097. This directive's purpose is to allow the inclusion policyfile locks to the current policyfile. In this iteration, we support sourcing lock files from a local path or a chef server. Below is a simple example of how the include_policy directive can be used.

Given a policyfile base.rb:

name 'base'

default_source :supermarket

run_list 'motd'

cookbook 'motd', '~> 0.6.0'

Run:

>> chef install ./base.rb

Building policy base
Expanded run list: recipe[motd]
Caching Cookbooks...
Using      motd         0.6.4
Using      chef_handler 3.0.2

Lockfile written to /home/jaym/workspace/chef-dk/base.lock.json
Policy revision id: 1238e7a353ec07a4df6636cdffd8805220a00789bace96d6d70268a4b0064023

This will produce the base.lock.json that will be included in our next policy users.rb:

name 'users'

default_source :supermarket

run_list 'user'

cookbook 'user', '~> 0.7.0'

include_policy 'base', path: './base.lock.json'

Run:

>> chef install ./users.rb

Building policy users
Expanded run list: recipe[motd::default], recipe[user]
Caching Cookbooks...
Using      motd         0.6.4
Installing user         0.7.0
Using      chef_handler 3.0.2

Lockfile written to /home/jaym/workspace/chef-dk/users.lock.json
Policy revision id: 20fac68f987152f62a2761e1cfc7f1dc29b598303bfb2d84a115557e2a4a8f27

This will produce a users.lock.json that has the base policyfile lock merged in.

More information can be found in RFC097 and the docs.

New tools bundled

We are now shipping the following new tools as part of Chef-DK

  • kitchen-digitalocean
  • kitchen-google
  • knife-ec2
  • knife-google

Chef Provisioning AWS uses AWS SDK v2

The Chef Provisioning AWS gem has been updated from the Amazon AWS SDK V1 to V2. This includes a huge number of under the hood improvements and bug fixes.

Notable Updated Gems

  • aws-sdk 2.10.45 -> 2.10.90
  • chef 13.4.19 -> 13.6.4 (Changelog)
  • chefspec 7.1.0 -> 7.1.1 (Changelog
  • chef-provisioning 2.5.0 -> 2.6.0 (Changelog)
  • chef-provisioning-aws 2.2.2 -> 3.0.0 (Changelog)
  • chef-provisioning-fog 0.21.0 -> 0.26.0 (Changelog)
  • chef-sugar 3.5.0 -> 3.6.0 (Changelog)
  • fauxhai 5.3.0 -> 5.5.0 (Changelog)
  • foodcritic 11.4.0 -> 12.2.1 (Changelog)
  • inspec 1.36.1 -> 1.44.13 (Changelog)
  • kitchen-digitalocean new @ 0.9.8
  • kitchen-google new @ 1.4.0
  • kitchen-inspec 0.19.0 -> 0.20.0 (Changelog)
  • knife-ec2 new @ 0.16.0
  • knife-google new @ 3.2.0
  • knife-spork 1.6.3 -> 1.7.1 (Changelog)
  • mixlib-install 2.1.12 -> 3.8.0 (Changelog)
  • rspec 3.6.0 -> 3.7.0 (Changelog)
  • serverspec 2.40.0 -> 2.41.3
  • test-kitchen 1.17.0 -> 1.19.2 (Changelog)
  • train 0.26.2 -> 0.29.2 (Changelog)
  • winrm-fs 1.0.1 -> winrm-fs 1.1.1 (Changelog)

ChefDK 2.3 Release Notes

ChefDK 2.3 includes Ruby 2.4.2 to fix the following CVEs:

  • CVE-2017-0898
  • CVE-2017-10784
  • CVE-2017-14033
  • CVE-2017-14064

The 2.2.1 release includes RubyGems 2.6.13 to fix the following CVEs:

  • CVE-2017-0899
  • CVE-2017-0900
  • CVE-2017-0901
  • CVE-2017-0902

ChefDK 2.3 includes:

  • Chef 13.4.19
  • InSpec 1.36.1
  • Berkshelf 6.3.1
  • Chef Vault 3.3.0
  • Foodcritic 11.4.0
  • Test Kitchen 1.17.0
  • Stove 6.0

Stove is now included

We are now shipping stove in ChefDK, to aid users in uploading their cookbooks to supermarkets.

The cookbook generator now adds a LICENSE file

The cookbook generator now adds a LICENSE file when creating a new cookbook.

Boilerplate tests are generated for the CentOS platform

When chef generate cookbook is ran, boilerplate unit tests for the CentOS 7 platform are now generated as well.