Deprecation: Some Attribute Methods (CHEF-4)¶
We are continuously improving and streamlining the way attributes work in Chef, to make it easier for users to reason about and safely configure their servers.
This page documents many deprecations over the course of many Chef releases.
Method Access¶
Setting and accessing node attributes has been standardized on “bracket” syntax. The older “method” syntax is deprecated and will be removed in Chef 13.
Removal: Chef 13
Example¶
Both lines in the example will cause separate deprecation warnings.
node.chef.server = "https://my.chef.server"
chef_server = node.chef.server
Remediation¶
Convert method syntax to bracket syntax by using brackets to denote attribute names. The code below is identical in function to the example above:
node['chef']['server'] = "https://my.chef.server"
chef_server = node['chef']['server']
Set and Set_Unless¶
Setting node attributes with set
or set_unless
has been deprecated in favor of explicitly setting the precedence level. These methods will be removed in Chef 14.
Removal: Chef 14
Example¶
node.set['chef']['server'] = "https://my.chef.server"
node.set_unless['chef']['server'] = "https://my.chef.server"
Remediation¶
Choose the appropriate precedence level, then replace set
with that precedence level.
node.default['chef']['server'] = "https://my.chef.server"
node.default_unless['chef']['server'] = "https://my.chef.server"