diff options
Diffstat (limited to 'RELEASE_NOTES.md')
-rw-r--r-- | RELEASE_NOTES.md | 127 |
1 files changed, 100 insertions, 27 deletions
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 7afe618ac9..5e04bff069 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -5,6 +5,106 @@ Please see [https://docs.chef.io/release_notes.html](https://docs.chef.io/releas ## Highlighted enhancements for this release: +### `attribute_changed` event hook + +* Added `attribute_changed` event hook: + +In a cookbook library file, you can add this in order to print out all attribute changes in cookbooks: + +```ruby +Chef.event_handler do + on :attribute_changed do |precedence, key, value| + puts "setting attribute #{precedence}#{key.map {|n| "[\"#{n}\"]" }.join} = #{value}" + end +end +``` + +If you want to setup a policy that override attributes should never be used: + +```ruby +Chef.event_handler do + on :attribute_changed do |precedence, key, value| + raise "override policy violation" if precedence == :override + end +end +``` + +There will likely be some missed attribute changes and some bugs that need fixing (hint: PRs accepted), there could be +added command line options to print out all attribute changes or filter them (hint: PRs accepted), or to add source +file and line numbers to the event (hint: PRs accepted). + +### Automatic connection to Chef Automate's Data Collector with supported Chef Server + +Chef Client will automatically attempt to connect to the Chef Server +authenticated data collector proxy. If you have a supported version of +Chef Server and have enabled this feature on the Chef Server, Chef +Client run data will automatically be forwarded to Automate without +additional Chef Client configuration. If you do not have Automate or the +feature is disabled on the Chef Server, Chef Client will detect this and +disable data collection. + +Note that Chef Server 12.11.0+ (not yet released as of the time this was +written) is required for this feature. + +### RFC018 Partially Implemented: Specify `--field-separator` for attribute filtering + +If you have periods (`.`) in your Chef Node attribute keys, you can now pass +the `--field-separator` (or `-S`) flag along with your `--attribute` (or `-a`) +flag to specify a custom nesting character other than `.`. + +In a situation where the *webapp* node has the following node data: +```json +{ + "foo.bar": "baz", + "alpha": { + "beta": "omega" + } +} +``` + +Running `knife node show` with the default field separator (`.`) won't show +us the data we're expecting for some attributes: + +```shell +$ knife node show webapp -a foo.bar +webapp: + foo.bar: + +$ knife node show webapp -a alpha.beta +webapp: + alpha.beta: omega +``` + +However, by specifying a field separator other than `.` we're now able to show +the data. + +```shell +$ knife node show webapp -S: -a foo.bar +webapp: + foo.bar: baz + +$ knife node show webapp -S: -a alpha:beta +webapp: + alpha:beta: omega +``` + +### Package locking for Apt, Yum, and Zypper + +To allow for more fine grained control of package installation the `apt_package`, +`yum_package`, and `zypper_package` resources now support the `:lock` and `:unlock` actions. + +```ruby +package "httpd" do + action :lock +end + +package "httpd" do + action :unlock +end +``` + +### `powershell_package` resource + * Added powershell_package resource and provider which supports installation of packages through Powershell Package Manager ```ruby @@ -42,31 +142,4 @@ Please see [https://docs.chef.io/release_notes.html](https://docs.chef.io/releas For using powershell_package resource, Administrative access is required and source needs to be already added in Powershell Package Manager using `Register-PackageSource` command -* Added `attribute_changed` event hook: - -In a cookbook library file, you can add this in order to print out all attribute changes in cookbooks: - -```ruby -Chef.event_handler do - on :attribute_changed do |precedence, key, value| - puts "setting attribute #{precedence}#{key.map {|n| "[\"#{n}\"]" }.join} = #{value}" - end -end -``` - -If you want to setup a policy that override attributes should never be used: - -```ruby -Chef.event_handler do - on :attribute_changed do |precedence, key, value| - raise "override policy violation" if precedence == :override - end -end -``` - -There will likely be some missed attribute changes and some bugs that need fixing (hint: PRs accepted), there could be -added command line options to print out all attribute changes or filter them (hint: PRs accepted), or to add source -file and line numbers to the event (hint: PRs accepted). - ## Highlighted bug fixes for this release: - |