[COOK-3155] Be able to install chef-client from omnibus packages #102
I concur with @chrisroberts that this cookbook's functionality is separate from the
I think the chef-client cookbook should remain more "narrow" in scope, and handle the post installation configuration of the Chef Client itself (/etc/chef/client.rb, running as a service or scheduled task, etc). That is, it shouldn't perform installation of Chef, that should be out of band from the context of the Chef run since the timing/sequence of that is awkward (how can I run Chef if I haven't installed it?).
More on this, to quote someone knowledgeable on the history here, regarding why chef-client doesn't support updates:
Second, the cookbook predated the creation of omnibus, and at one point attempted to handle upgrading the chef gem. [snip]. When omnibus came along, the upgrade process became more complex. We now have an API service that concerns itself with determining the right package file to retrieve for installation, but we (CHEF) never really wrote a client to handle that because we had the
Heavy Water created the omnibus-updater cookbook to cover this gap. It works very well. At this point in time there is probably enough adoption of that cookbook that converting people to use something else is like turning a barge in a river.
Migrating the functionality of the omnibus-updater cookbook to the chef-client cookbook would make the latter's codebase more complicated (it's already reasonably complex) and potentially difficult for users and contributors to follow. It would require more effort in testing and we simply don't have the bandwidth for that. Heavy Water is doing a good job of maintaining that cookbook and I'm inclined to keep it that way, rather than try to absorb that into our cookbook