infochimps-labs/ironfan — pull request #325 by joshbronson (2013-12-11 19:10:38+00:00)
Title: add ironfan components and plugins, bump to 5.0.0

Ironfan components provide functionality similar to Chef roles: they
provide a way to group recipes and attributes. Unlike roles, they live
entirely on the client side and can be parameterized. The following
example creates an nfs server component and then uses it in a cluster
definition. Note that components are Gorillib Builders, which allows
the 'foo' parameter to be passed in in this case.

Ironfan::Plugin::Component.create(%w[nfs server]) do
magic :foo, String

def project(compute)
compute.instances(1)
compute.cloud(:ec2).security_group(:nfs_server).authorize_group :systemwide

Chef::Log.info("was passed #{foo} by the cluster")

compute.recipe 'nfs'
compute.recipe 'nfs::server'
end
end

Ironfan.cluster(:nfs) do
facet(:server) do
nfs_server{ foo 'foo string' }
end
end