Chef-rfc: Arbitrary Cookbook ID Endpoint


Hello Chefs,

I’ve written a chef-rfc to propose a new cookbook storage API. The main features of this new API are:

  • Cookbooks are identified by arbitrary string IDs. These must be unique by cookbook name
  • Cookbooks uploaded to this API are not required to have unique version numbers
  • Cookbooks uploaded via this API will not (by default, at least) be visible from the existing cookbook storage API.

This is intended to support a new mode of operation in chef-client, where cookbook versions are determined statically ahead of time (on the workstation or by Ci) and written to a document which is published to the chef-server. chef-client then retrieves this document to find the set of cookbook artifacts it should use. It is of course possible to do this with the existing APIs, but I believe that this is needlessly limiting to users’ freedom in determining their desired workflow (some examples of this are documented in the RFC).

Please have a look and feel free to offer any comments:

Daniel DeLeo