- From: Joshua Timberman <
>
- To:
,
- Subject: [[chef-dev]] Update on the future of Opscode's cookbooks post
- Date: Tue, 24 May 2011 13:04:06 -0600
Hello Chefs!
This is an update on the post we made a couple weeks back regarding the
future of Opscode’s cookbooks and cookbooks repository. We are going to
switch master branch to reflect the changes that have been made in the 0.10.0
branch this week. Aside from removal of a number of cookbooks (which has been
done in the 0.10.0 branch), we’ve made several other important changes you
should be aware of.
Chef Environments
Several cookbooks that used search also used an “app_environment” attribute
which generally came from a role of the same name. This has been replaced
with the node’s chef_environment. If you don’t specify an environment for the
node, _default will be used instead. This may have adverse effects if you’re
using multiple “environment roles”, so you should be careful about upgrading
cookbooks to the newer version. The following cookbooks on the community site
do not have this change as of the stated version:
application 0.99.9
database 0.99.0
haproxy 0.8.1
munin 0.10.1
nagios 0.4.4
radiant 0.11.3
Newer versions of these cookbooks released to the community site will use
Chef 0.10′s environments.
If you’re using the cookbook repository directly, the commit for this change
in the repository is93aedac, you’ll want to make sure you have not updated to
that commit until you’re ready to use Chef 0.10′s environments.
Metadata JSON
We maintain cookbook metadata as Ruby DSL files and let knife generate the
metadata as JSON. In the updated repository, we have removed the
metadata.json files. The reason is, prior to Chef 0.10.0 the metadata was
generated in the cookbook directory as “metadata.json” every time a cookbook
upload was done. Depending on the local system’s Ruby version, this might
cause the file content to be different. When using the Ruby DSL metadata.rb
file, there is no need to generate the metadata.json file by knife (cookbook
upload and site share commands). To simplify maintenance and prevent these
from possibly being forgotten and stale, we simply removed them from the
repository. If you prefer the JSON file, you can generate it and remove the
metadata.rb file in your own repository.
This change in Chef is reflected by the following tickets:
http://tickets.opscode.com/browse/CHEF-1311
http://tickets.opscode.com/browse/CHEF-2210
Consistency
We’re not quite done, but we’re actively working to make the cookbooks more
consistent. What this means:
Attributes will use the quoted string notation, e.g.
“node['apache']['listen_ports']“.
Each cookbook will have a README.md. We chose markdown because it is more
universally parsable by tools and text editor plugins than RDOC.
We’ll continue to work on these tasks after we’ve moved the branches around
in the repository.
Upcoming Steps
The branch formerly known as “0.10.0″ is now “future”. We’re going to take
the following steps with regard to the repository this week.
Ensure the current master is updated.
Rebase the “future” branch with current master.
Tag repository with “future-freeze” to reflect the point in time where the
cookbooks are now.
Create a “future-freeze” branch at this same point in time. This is where
users who use the GitHub repository as a whole repository, or sub-module
should be updated. As the name implies, this will be frozen, and we won’t
actively maintain it.
Merge the current working branch, “future” into master. This will reflect the
changes described in the previous blog post and above.
Push master, the “future-freeze” tag and upload cookbooks to community site.
Once the master branch reflects what we’ve planned here, we’ll maintain
“master” as we did before. We’re also going to release new versions of the
cookbooks to the Community Site.
--
Opscode, Inc.
Joshua Timberman, Director of Training and Services
IRC, Skype, Twitter, Github: jtimberman
- [[chef-dev]] Update on the future of Opscode's cookbooks post, Joshua Timberman, 05/24/2011
Archive powered by MHonArc 2.6.16.