Config.rb vs. client.rb vs. knife.rb


#1

Under Chef 12, can /etc/chef/config.rb replace both client.rb and knife.rb as the default client configruation?


#2

I don’t think so, /etc/chef/client.rb is the default client config (well, unless you use chef-client -z which is a whole different story, also stop using that). /etc/chef/solo.rb for chef-solo. .chef/config.rb is the now-preferred workstation config but it is very likely .chef/knife.rb will be supported forever because we’ve been super bad about communicating that change out. I think the rename was mostly prompted by the chef command line tool also using that config.


#3

My intention when I made that change is to have knife.rb just be silently deprecated forever (but not removed) because the cost of keeping it around is low compared to the cost of everyone in the world having to rename. Maybe it could start warning at some point.

That was the original reason. Since then, we’ve released the chef-config gem which any application can use to read a user’s chef configuration without bringing in all of Chef.


#4

Thank you for the clarification.