summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThom May <thom@may.lt>2017-04-06 22:32:42 +0100
committerGitHub <noreply@github.com>2017-04-06 22:32:42 +0100
commitac81120d11dd0e6899180065efb7ee9887f24821 (patch)
tree84ddd1df10347c7beef072349d095ef05faf500a
parent851f744f4fabb1a2fd9c99703ca428749006a878 (diff)
parent8db0ca179f98f1e89f99b987554875e6b78a35b7 (diff)
downloadchef-ac81120d11dd0e6899180065efb7ee9887f24821.tar.gz
Merge pull request #6031 from chef/tm/release_notes
Write release notes for Chef 13
-rw-r--r--Gemfile3
-rw-r--r--Gemfile.lock47
-rw-r--r--RELEASE_NOTES.md189
3 files changed, 149 insertions, 90 deletions
diff --git a/Gemfile b/Gemfile
index cdcfb23f26..c18357639b 100644
--- a/Gemfile
+++ b/Gemfile
@@ -11,8 +11,7 @@ source "https://rubygems.org"
# of bundler versions prior to 1.12.0 (https://github.com/bundler/bundler/commit/193a14fe5e0d56294c7b370a0e59f93b2c216eed)
gem "chef", path: "."
-# tracking master of ohai for chef-13.0 development, this should be able to be deleted after release
-gem "ohai", git: "https://github.com/chef/ohai.git"
+gem "ohai", "~> 13"
gem "chef-config", path: File.expand_path("../chef-config", __FILE__) if File.exist?(File.expand_path("../chef-config", __FILE__))
gem "rake"
diff --git a/Gemfile.lock b/Gemfile.lock
index b46d9c039f..d267240bb9 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -36,23 +36,6 @@ GIT
retriable (>= 1.4)
GIT
- remote: https://github.com/chef/ohai.git
- revision: daeb73c1089d8b611bc5fde3bfddddad28f304eb
- specs:
- ohai (13.0.0)
- chef-config (>= 12.5.0.alpha.1, < 14)
- ffi (~> 1.9)
- ffi-yajl (~> 2.2)
- ipaddress
- mixlib-cli
- mixlib-config (~> 2.0)
- mixlib-log (>= 1.7.1, < 2.0)
- mixlib-shellout (~> 2.0)
- plist (~> 3.1)
- systemu (~> 2.6.4)
- wmi-lite (~> 1.0)
-
-GIT
remote: https://github.com/poise/halite.git
revision: b9b3f61682abe1c656f57b7edbbf43d918c5c16b
specs:
@@ -207,13 +190,13 @@ GEM
mixlib-cli (~> 1.4)
artifactory (2.8.1)
ast (2.3.0)
- aws-sdk (2.9.3)
- aws-sdk-resources (= 2.9.3)
- aws-sdk-core (2.9.3)
+ aws-sdk (2.9.5)
+ aws-sdk-resources (= 2.9.5)
+ aws-sdk-core (2.9.5)
aws-sigv4 (~> 1.0)
jmespath (~> 1.0)
- aws-sdk-resources (2.9.3)
- aws-sdk-core (= 2.9.3)
+ aws-sdk-resources (2.9.5)
+ aws-sdk-core (= 2.9.5)
aws-sigv4 (1.0.0)
backports (3.7.0)
binding_of_caller (0.7.2)
@@ -263,7 +246,7 @@ GEM
docker-api (1.33.3)
excon (>= 0.38.0)
json
- domain_name (0.5.20170223)
+ domain_name (0.5.20170404)
unf (>= 0.0.5, < 1.0.0)
erubis (2.7.0)
ethon (0.10.1)
@@ -406,8 +389,20 @@ GEM
nokogiri (1.7.1-x86-mingw32)
mini_portile2 (~> 2.1.0)
nori (2.6.0)
- octokit (4.6.2)
+ octokit (4.7.0)
sawyer (~> 0.8.0, >= 0.5.3)
+ ohai (13.0.0)
+ chef-config (>= 12.5.0.alpha.1, < 14)
+ ffi (~> 1.9)
+ ffi-yajl (~> 2.2)
+ ipaddress
+ mixlib-cli
+ mixlib-config (~> 2.0)
+ mixlib-log (>= 1.7.1, < 2.0)
+ mixlib-shellout (~> 2.0)
+ plist (~> 3.1)
+ systemu (~> 2.6.4)
+ wmi-lite (~> 1.0)
parallel (1.11.1)
parser (2.4.0.0)
ast (~> 2.2)
@@ -575,7 +570,7 @@ GEM
ffi-win32-extensions
windows-api (0.4.4)
win32-api (>= 1.4.5)
- winrm (2.1.3)
+ winrm (2.2.1)
builder (>= 2.1.2)
erubis (~> 2.7)
gssapi (~> 1.2)
@@ -622,7 +617,7 @@ DEPENDENCIES
netrc
oc-chef-pedant!
octokit
- ohai!
+ ohai (~> 13)
poise!
poise-boiler!
pry
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index fb6d4a8d97..e01bfc9097 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -2,7 +2,101 @@ _This file holds "in progress" release notes for the current release under devel
# Chef Client Release Notes 13.0:
-## Back Compat Breaks
+## Rubygems provider sources behavior changed.
+
+The behavior of `gem_package` and `chef_gem` is now to always apply the `Chef::Config[:rubygems_uri]` sources, which may be a
+String uri or an Array of Strings. If additional sources are put on the resource with the `source` property those are added
+to the configured `:rubygems_uri` sources.
+
+This should enable easier setup of rubygems mirrors particularly in "airgapped" environments through the use of the global config
+variable. It also means that an admin may force all rubygems.org traffic to an internal mirror, while still being able to
+consume external cookbooks which have resources which add other mirrors unchanged (in a non-airgapped environment).
+
+In the case where a resource must force the use of only the specified source(s), then the `include_default_source` property
+has been added -- setting it to false will remove the `Chef::Config[:rubygems_url]` setting from the list of sources for
+that resource.
+
+The behavior of the `clear_sources` property is now to only add `--clear-sources` and has no magic side effects on the source options.
+
+## Ruby version upgraded to 2.4.1
+
+We've upgraded to the latest stable release of the Ruby programming
+language. See the Ruby [2.4.0 Release Notes](https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/) for an overview of what's new in the language.
+
+## Resource can now declare a default name
+
+The core `apt_update` resource can now be declared without any name argument, no need for `apt_update "this string doesn't matter but
+why do i have to type it?"`.
+
+This can be used by any other resource by just overriding the name property and supplying a default:
+
+```ruby
+ property :name, String, default: ""
+```
+
+Notifications to resources with empty strings as their name is also supported via either the bare resource name (`apt_update` --
+matches what the user types in the DSL) or with empty brackets (`apt_update[]` -- matches the resource notification pattern).
+
+## The knife ssh command applies the same fuzzifier as knife search node
+
+A bare name to knife search node will search for the name in `tags`, `roles`, `fqdn`, `addresses`, `policy_name` or `policy_group` fields and will
+match when given partial strings (available since Chef 11). The `knife ssh` search term has been similarly extended so that the
+search API matches in both cases. The node search fuzzifier has also been extracted out to a `fuzz` option to Chef::Search::Query for re-use
+elsewhere.
+
+## Cookbook root aliases
+
+Rather than `attributes/default.rb`, cookbooks can now use `attributes.rb` in
+the root of the cookbook. Similarly for a single default recipe, cookbooks can
+use `recipe.rb` in the root of the cookbook.
+
+## knife ssh can now connect to gateways with ssh key authentication
+
+The new `gateway_identity_file` option allows the operator to specify
+the key to access ssh gateways with.
+
+## Windows Task resource added
+
+The `windows_task` resource has been ported from the windows cookbook,
+and many bugs have been fixed.
+
+## Solaris SMF services can now been started recursively
+
+It is now possible to load Solaris services recursively, by ensuring the
+new `options` property of the `service` resource contains `-r`.
+
+## It's now possible to blacklist node attributes
+
+This is the inverse of the pre-existing whitelisting functionality.
+
+## The guard interpreter for `powershell_script` is Powershell, again
+
+When writing `not_if` or `only_if` statements, by default we now run
+those statements using powershell, rather than forcing the user to set
+`guard_interpreter` each time.
+
+## Zypper GPG checks by default
+
+Zypper now defaults to performing gpg checks of packages.
+
+## The InSpec gem is now shipped by default
+
+The `inspec` and `train` gems are shipped by default in the chef omnibus
+package, making it easier for users in airgapped environments to use
+InSpec.
+
+## Backwards Compatibility Breaks
+
+### Resource Cloning has been removed
+
+When Chef compiles resources, it will no longer attempt to merge the
+properties of previously compiled resources with the same name and type
+in to the new resource. See [the deprecation page](https://docs.chef.io/deprecations_resource_cloning.html) for further information.
+
+### It is an error to specify both `default` and `name_property` on a property
+
+Chef 12 made this work by picking the first option it found, but it was
+always an error and has now been disallowed.
### The path property of the execute resource has been removed
@@ -20,11 +114,11 @@ It is possible that this was being used as a no-op resource, but the log resourc
resource added. Omitting the code property or mixing up the code property with the command property are also common usage mistakes
that we need to catch and error on.
-### The chef_gem resource defaults to not run at compile time
+### The chef\_gem resource defaults to not run at compile time
The `compile_time true` flag may still be used to force compile time.
-### The Chef::Config[:chef_gem_compile_time] config option has been removed
+### The Chef::Config[:chef\_gem\_compile\_time] config option has been removed
In order to for community cookbooks to behave consistently across all users this optional flag has been removed.
@@ -138,46 +232,6 @@ so we have removed support for it. No specific replacement for `pip` is being
included with Chef at this time, but a `pip`-based `python_package` resource is
available in the [`poise-python`](https://github.com/poise/poise-python) cookbooks.
-### Ruby version upgraded to 2.4.1
-
-We've upgraded to the latest stable release of the Ruby programming
-language.
-
-### Resource can now declare a default name
-
-The core `apt_update` resource can now be declared without any name argument, no need for `apt_update "this string doesn't matter but
-why do i have to type it?"`.
-
-This can be used by any other resource by just overriding the name property and supplying a default:
-
-```ruby
- property :name, String, default: ""
-```
-
-Notifications to resources with empty strings as their name is also supported via either the bare resource name (`apt_update` --
-matches what the user types in the DSL) or with empty brackets (`apt_update[]` -- matches the resource notification pattern).
-
-### The knife ssh command applies the same fuzzifier as knife search node
-
-A bare name to knife search node will search for the name in `tags`, `roles`, `fqdn`, `addresses`, `policy_name` or `policy_group` fields and will
-match when given partial strings (available since Chef 11). The `knife ssh` search term has been similarly extended so that the
-search API matches in both cases. The node search fuzzifier has also been extracted out to a `fuzz` option to Chef::Search::Query for re-use
-elsewhere.
-
-### Resources which later modify their name during creation will have their name changed on the ResourceCollection and notifications
-
-```ruby
-some_resource "name_one" do
- name "name_two"
-end
-```
-
-The fix for sending notifications to multipackage resources involved changing the API which inserts resources into the resource collection slightly
-so that it no longer directly takes the string which is typed into the DSL but reads the (possibly coerced) name off of the resource after it is
-built. The end result is that the above resource will be named `some_resource[name_two]` instead of `some_resource[name_one]`. Note that setting
-the name (*not* the `name_property`, but actually renaming the resource) is very uncommon. The fix is to simply name the resource correctly in
-the first place (`some_resource "name_two" do ...`)
-
### Removal of run_command and popen4 APIs
All the APIs in chef/mixlib/command have been removed. They were deprecated by mixlib-shellout and the shell_out mixin API.
@@ -241,37 +295,43 @@ mutable default value, define it inside a `lazy{}` helper like:
property :x, default: lazy { {} }
```
-### Rubygems provider sources behavior changed.
+### Resources which later modify their name during creation will have their name changed on the ResourceCollection and notifications
-The behavior of `gem_package` and `chef_gem` is now to always apply the `Chef::Config[:rubygems_uri]` sources, which may be a
-String uri or an Array of Strings. If additional sources are put on the resource with the `source` property those are added
-to the configured `:rubygems_uri` sources.
+```ruby
+some_resource "name_one" do
+ name "name_two"
+end
+```
-This should enable easier setup of rubygems mirrors particularly in "airgapped" environments through the use of the global config
-variable. It also means that an admin may force all rubygems.org traffic to an internal mirror, while still being able to
-consume external cookbooks which have resources which add other mirrors unchanged (in a non-airgapped environment).
+The fix for sending notifications to multipackage resources involved changing the API which inserts resources into the resource collection slightly
+so that it no longer directly takes the string which is typed into the DSL but reads the (possibly coerced) name off of the resource after it is
+built. The end result is that the above resource will be named `some_resource[name_two]` instead of `some_resource[name_one]`. Note that setting
+the name (*not* the `name_property`, but actually renaming the resource) is very uncommon. The fix is to simply name the resource correctly in
+the first place (`some_resource "name_two" do ...`)
-In the case where a resource must force the use of only the specified source(s), then the `include_default_source` property
-has been added -- setting it to false will remove the `Chef::Config[:rubygems_url]` setting from the list of sources for
-that resource.
+### `use_inline_resources` is always enabled
-The behavior of the `clear_sources` property is now to only add `--clear-sources` and has no magic side effects on the source options.
+The `use_inline_resources` provider mode is always enabled when using the
+`action :name do ... end` syntax. You can remove the `use_inline_resources`
+line.
### `knife cookbook site vendor` has been removed
Please use `knife cookbook site install` instead.
-### Cookbook root aliases
+### `knife cookbook create` has been removed
-Rather than `attributes/default.rb`, cookbooks can now use `attributes.rb` in
-the root of the cookbook. Similarly for a single default recipe, cookbooks can
-use `recipe.rb` in the root of the cookbook.
+Please use `chef generate cookbook` from the ChefDK instead.
-### `use_inline_resources` is always enabled
+### Verify commands no longer support "%{file}"
-The `use_inline_resources` provider mode is always enabled when using the
-`action :name do ... end` syntax. You can remove the `use_inline_resources`
-line.
+Chef has always recommended `%{path}`, and `%{file}` has now been
+removed.
+
+### The `partial_search` recipe method has been removed
+
+The `partial_search` method has been fully replaced by the
+`filter_result` argument to `search`, and has now been removed.
### The logger and formatter settings are more predictable
@@ -319,3 +379,8 @@ fix more problems than it solves, but may causes issues for some use cases.
The implementation switched to `shell_out_with_systems_locale` to match `execute` resource, etc.
+### Chef Client will now exit using the RFC062 defined exit codes
+
+Chef Client will only exit with exit codes defined in RFC 062. This allows other tooling to respond to how a Chef run completes. Attempting to exit Chef Client with an unsupported exit code (either via `Chef::Application.fatal!` or `Chef::Application.exit!`) will result in an exit code of 1 (GENERIC_FAILURE) and a warning in the event log.
+
+When Chef Client is running as a forked process on unix systems, the standardized exit codes are used by the child process. To actually have Chef Client return the standard exit code, `client_fork false` will need to be set in Chef Client's configuration file.