- You can now assemble raid groups in the cluster definition:
- node metadata instructing the volumes recipe to build the raid volume
- marks the component volumes as non-mountable, in the appropriate raid group, etc
- Changed the order of
cluster_role
andfacet_role
in the run list. It now goes::first
roles (cluster then facet):normal
roles (cluster then facet)- special roles:
cluster_role
thenfacet_role
:last
roles (cluster then facet)
- knife cluster launch uses ClusterBootstrap, not knife's vanilla bootstrap.
- can now do group('group_that_wants').authorized_by_group('group_that_grants') so that in cluster A I can request access to cluster B without gaining its group myself.
- push the organization (if set) into the node metadata
- security groups are now created/updated in knife cluster sync. This can't help you apply then to a node afer launch though -- nothing can, the API doesn't allow it.
- clusters now all refer to an AMI named
cluster_chef-natty
by default, and to customizable rolesorg_base
,org_final
andorg_users
(whereorg_base
has a role_implication for membership in the systemwideorg_base
security group) - default facet instances is now 1 who knows why it wasn't always 1.
- minor linting of cluster before launching it
- bump to latest versions of oneiric AMIs thx @redbeard
- bootstrap fixes, oneiric support, more from @gchpaco
- cookbooks all now live in their own repo, organized according to opscode standard.
- gem is now split into
cluster_chef
(the libraries) andcluster_chef-knife
(the chef plugins) - private_key was passing its block to super, with bad results
The below-described changes are still in progress
ClusterChef underwent a major upgrade with the last several commits.
- the
cluster_chef
tools -- the DSL, knife plugins, and bootstrap scripts -- have been split out of the cluster_chef repo into a separate repo. - The tools are now available as a gem --
gem install cluster_chef
- Cleaned up the code
- Standardized clusters & roles
- Standardized cookbooks
The following behaviors have been removed:
-
use
-- BREAKING Was supposed to let me import another cluster definition into the one calling use. However, it didn't work as advertised, was clutter-y and was actively unpopular (issue #6).- Until the usage of derived clusters becomes clear, say
merge!
on a hash instead. - We do default settings for you.
- We don't put in any default roles (as the old
use :defaults
did).
- Until the usage of derived clusters becomes clear, say
-
cloud
-- BREAKING a barecloud
statement is meaningless: the attributes may be abstract, but the values are different for every provider.- Anywhere you used to say
cloud
, sayec2
: egec2.flavor('t1.micro')
instead ofcloud.flavor('t1.micro')
.
- Anywhere you used to say
-
chef_attributes
-- BREAKING replaced byfacet_role.override_attributes
,facet_role.default_attributes
(or those methods oncluster_role
.) -
cluster_role_implication
-- BREAKING now called role_implications, brought in by default. -
cluster.mounts_ephemeral_volumes
is nowcloud.mount_ephemerals
; it is not done by default.
Several knife scripts saw name changes to their params. If you have external scripts that call knife cluster XXX
please update them. No futher changes to parameters are expected.
knife cluster kill
only asks you once whether to kill things -- there's no more--really
flag.- Standalone args now all properly have
--whatever
and--no-whatever
forms. - BREAKING The sync and kill commands both agree that
--chef
and--cloud
are how to restrict their attention.
- Standardized on
node[:cluster_name]
,node[:facet_name]
andnode[:facet_index]
as the way to refer to the cluster, facet and server parts of a node's name. This replaces the way-too-many names for these:node[:cluster_chef][:facet]
andnode[:cluster_role]
(usenode[:facet_name]
),node[:cluster_chef][:index]
andnode[:cluster_role_index]
(usenode[:facet_index]
) . - ClusterChef family of cookbooks were updated accordingly.
- The bootstrap recipes are gone. They may come back, but for now the dance is:
- bring up the cluster ; by default the service state for all the daemons is [:disable, :stop].
- run the
/etc/hadoop/conf/bootstrap_hadoop_namenode.sh
to format your HDFS - move the service state to '[:enable, :start]' and re-run chef client
You must add "#{cluster_chef_path}/deprecated-cookbooks"
to your cookbook_path in knife.rb if you would like to keep using
cluster_ebs_volumes
-- usemountable_volumes
instead.