cluster_chef 3.0.9 → 3.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## v3.0.10: Cloud fixes
2
+
3
+ * 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.
4
+ * clusters now all refer to an AMI named `cluster_chef-natty` by default, and to customizable roles `org_base`, `org_final` and `org_users` (where `org_base` has a role_implication for membership in the systemwide `org_base` security group)
5
+ * default facet instances is now 1 who knows why it wasn't always 1.
6
+ * minor linting of cluster before launching it
7
+ * bump to latest versions of oneiric AMIs thx @redbeard
8
+ * bootstrap fixes, oneiric support, more from @gchpaco
9
+
10
+
1
11
  ## v3.0.6: schism of cookbooks and tools
2
12
 
3
13
  * cookbooks all now live in [their own repo](https://github.com/infochimps-labs/cluster_chef-homebase), organized according to opscode standard.
data/README.md CHANGED
@@ -1,12 +1,15 @@
1
1
  # cluster_chef
2
2
 
3
- Chef is a powerful tool for maintaining and describing the software and configurations that let a machine provide its services.
3
+ Infrastructure as code: describe and orchestrate whole clusters of cloud or virtual machines.
4
4
 
5
- cluster_chef is
5
+ ## Overview
6
6
 
7
- * a clean, expressive way to describe how machines and roles are assembled into a working cluster.
8
- * Our collection of Industrial-strength, cloud-ready recipes for Hadoop, Cassandra, HBase, Elasticsearch and more.
9
- * a set of conventions and helpers that make provisioning cloud machines easier.
7
+ The cluster_chef toolset takes chef to the next level:
8
+
9
+ * `cluster_chef` gem: assembles machines and roles into a working cluster using a clean, expressive domain-specific language.
10
+ * `cluster_chef-knife` knife plugin: orchestrate clusters of machines, in the cloud or VMs.
11
+ * `cluster_chef-homebase`: Our collection of industrial-strength, cloud-ready recipes for Hadoop, HBase, Cassandra, Elasticsearch, Zabbix and more.
12
+ * the `metachef` cookbook: coordinate discovery of services ("list all the machines for `awesome_webapp`, that I might load balance them") and aspects ("
10
13
 
11
14
  ## Walkthrough
12
15
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.9
1
+ 3.0.10
data/cluster_chef.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "cluster_chef"
8
- s.version = "3.0.9"
8
+ s.version = "3.0.10"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Infochimps"]
12
- s.date = "2011-12-16"
12
+ s.date = "2012-01-17"
13
13
  s.description = "cluster_chef allows you to orchestrate not just systems but clusters of machines. It includes a powerful layer on top of knife and a collection of cloud cookbooks."
14
14
  s.email = "coders@infochimps.com"
15
15
  s.extra_rdoc_files = [
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
30
30
  "cluster_chef.gemspec",
31
31
  "clusters/website_demo.rb",
32
32
  "config/client.rb",
33
+ "config/proxy.pac",
33
34
  "lib/cluster_chef.rb",
34
35
  "lib/cluster_chef/chef_layer.rb",
35
36
  "lib/cluster_chef/cloud.rb",
@@ -66,7 +67,7 @@ Gem::Specification.new do |s|
66
67
  s.homepage = "http://infochimps.com/labs"
67
68
  s.licenses = ["apachev2"]
68
69
  s.require_paths = ["lib"]
69
- s.rubygems_version = "1.8.11"
70
+ s.rubygems_version = "1.8.15"
70
71
  s.summary = "cluster_chef allows you to orchestrate not just systems but clusters of machines. It includes a powerful layer on top of knife and a collection of cloud cookbooks."
71
72
  s.test_files = ["spec/cluster_chef/cluster_spec.rb", "spec/cluster_chef/facet_spec.rb", "spec/cluster_chef/server_slice_spec.rb", "spec/cluster_chef/server_spec.rb", "spec/cluster_chef_spec.rb", "spec/spec_helper/dummy_chef.rb", "spec/spec_helper.rb", "spec/test_config.rb"]
72
73
 
@@ -83,7 +84,7 @@ Gem::Specification.new do |s|
83
84
  s.add_development_dependency(%q<rspec>, ["~> 2.5"])
84
85
  s.add_development_dependency(%q<yard>, ["~> 0.6"])
85
86
  s.add_development_dependency(%q<configliere>, ["~> 0.4.8"])
86
- s.add_runtime_dependency(%q<cluster_chef-knife>, ["= 3.0.9"])
87
+ s.add_runtime_dependency(%q<cluster_chef-knife>, ["= 3.0.10"])
87
88
  else
88
89
  s.add_dependency(%q<chef>, ["~> 0.10.4"])
89
90
  s.add_dependency(%q<fog>, ["~> 1.1.1"])
@@ -94,7 +95,7 @@ Gem::Specification.new do |s|
94
95
  s.add_dependency(%q<rspec>, ["~> 2.5"])
95
96
  s.add_dependency(%q<yard>, ["~> 0.6"])
96
97
  s.add_dependency(%q<configliere>, ["~> 0.4.8"])
97
- s.add_dependency(%q<cluster_chef-knife>, ["= 3.0.9"])
98
+ s.add_dependency(%q<cluster_chef-knife>, ["= 3.0.10"])
98
99
  end
99
100
  else
100
101
  s.add_dependency(%q<chef>, ["~> 0.10.4"])
@@ -106,7 +107,7 @@ Gem::Specification.new do |s|
106
107
  s.add_dependency(%q<rspec>, ["~> 2.5"])
107
108
  s.add_dependency(%q<yard>, ["~> 0.6"])
108
109
  s.add_dependency(%q<configliere>, ["~> 0.4.8"])
109
- s.add_dependency(%q<cluster_chef-knife>, ["= 3.0.9"])
110
+ s.add_dependency(%q<cluster_chef-knife>, ["= 3.0.10"])
110
111
  end
111
112
  end
112
113
 
data/config/proxy.pac ADDED
@@ -0,0 +1,12 @@
1
+ function FindProxyForURL(url, host) {
2
+ if ((shExpMatch(host, "*ec2*.amazonaws.com" )) ||
3
+ (shExpMatch(host, "*ec2.internal*" )) ||
4
+ (shExpMatch(host, "*compute-*.amazonaws.com" )) ||
5
+ (shExpMatch(host, "*compute-*.internal*" )) ||
6
+ (shExpMatch(host, "*domu*.internal*" )) ||
7
+ (shExpMatch(host, "10.*" ))
8
+ ) {
9
+ return "SOCKS5 localhost:6666";
10
+ }
11
+ return "DIRECT";
12
+ }
@@ -108,9 +108,6 @@ module ClusterChef
108
108
 
109
109
  # creates or updates the chef node.
110
110
  #
111
- # FIXME: !! this currently doesn't do the right thing for modifications to the
112
- # chef node. !!
113
- #
114
111
  # See notes at top of file for why all this jiggery-fuckery
115
112
  #
116
113
  # * client exists, node exists: assume client can update, weep later when
@@ -60,7 +60,7 @@ module ClusterChef
60
60
  # @returns [Hash] hash of defaults
61
61
  def defaults
62
62
  reverse_merge!({
63
- :image_name => 'maverick',
63
+ :image_name => 'natty',
64
64
  })
65
65
  end
66
66
 
@@ -206,7 +206,7 @@ module ClusterChef
206
206
  # Utility methods
207
207
 
208
208
  def image_info
209
- Chef::Config[:ec2_image_info][ [region, bits, backing, image_name] ] or ui.warn "Make sure to define the machine's region, bits, backing and image_name. (Have #{[region, bits, backing, image_name].inspect})"
209
+ Chef::Config[:ec2_image_info][ [region, bits, backing, image_name] ] or ( ui.warn "Make sure to define the machine's region, bits, backing and image_name. (Have #{[region, bits, backing, image_name].inspect})" ; {} )
210
210
  end
211
211
 
212
212
  def list_images
@@ -217,12 +217,15 @@ module ClusterChef
217
217
  end
218
218
 
219
219
  def flavor(val=nil)
220
- warn("Unknown machine image name '#{val}'") if val && (not FLAVOR_INFO.has_key?(val.to_s))
220
+ if val && (not FLAVOR_INFO.has_key?(val.to_s))
221
+ ui.warn("Unknown machine image flavor '#{val}'")
222
+ list_flavors
223
+ end
221
224
  set :flavor, val
222
225
  end
223
226
 
224
227
  def flavor_info
225
- FLAVOR_INFO[flavor] or raise "Please define the machine's flavor: have #{self.inspect}"
228
+ FLAVOR_INFO[flavor] or ( ui.warn "Please define the machine's flavor: have #{self.inspect}" ; {} )
226
229
  end
227
230
 
228
231
  def list_flavors
@@ -358,35 +361,35 @@ module ClusterChef
358
361
  #
359
362
  # Oneric (Ubuntu 11.10)
360
363
  #
361
- %w[ ap-northeast-1 32-bit ebs oneric ] => { :image_id => 'ami-2e90242f', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
362
- %w[ ap-northeast-1 32-bit instance oneric ] => { :image_id => 'ami-e49723e5', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
363
- %w[ ap-northeast-1 64-bit ebs oneric ] => { :image_id => 'ami-30902431', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
364
- %w[ ap-northeast-1 64-bit instance oneric ] => { :image_id => 'ami-fa9723fb', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
364
+ %w[ ap-northeast-1 32-bit ebs oneric ] => { :image_id => 'ami-84902785', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
365
+ %w[ ap-northeast-1 32-bit instance oneric ] => { :image_id => 'ami-5e90275f', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
366
+ %w[ ap-northeast-1 64-bit ebs oneric ] => { :image_id => 'ami-88902789', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
367
+ %w[ ap-northeast-1 64-bit instance oneric ] => { :image_id => 'ami-7c90277d', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
365
368
  #
366
- %w[ ap-southeast-1 32-bit ebs oneric ] => { :image_id => 'ami-76057f24', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
367
- %w[ ap-southeast-1 32-bit instance oneric ] => { :image_id => 'ami-82047ed0', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
368
- %w[ ap-southeast-1 64-bit ebs oneric ] => { :image_id => 'ami-7a057f28', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
369
- %w[ ap-southeast-1 64-bit instance oneric ] => { :image_id => 'ami-54057f06', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
369
+ %w[ ap-southeast-1 32-bit ebs oneric ] => { :image_id => 'ami-0a327758', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
370
+ %w[ ap-southeast-1 32-bit instance oneric ] => { :image_id => 'ami-00327752', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
371
+ %w[ ap-southeast-1 64-bit ebs oneric ] => { :image_id => 'ami-0832775a', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
372
+ %w[ ap-southeast-1 64-bit instance oneric ] => { :image_id => 'ami-04327756', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
370
373
  #
371
- %w[ eu-west-1 32-bit ebs oneric ] => { :image_id => 'ami-65b28011', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
372
- %w[ eu-west-1 32-bit instance oneric ] => { :image_id => 'ami-dfcdffab', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
373
- %w[ eu-west-1 64-bit ebs oneric ] => { :image_id => 'ami-61b28015', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
374
- %w[ eu-west-1 64-bit instance oneric ] => { :image_id => 'ami-75b28001', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
374
+ %w[ eu-west-1 32-bit ebs oneric ] => { :image_id => 'ami-11f0cc65', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
375
+ %w[ eu-west-1 32-bit instance oneric ] => { :image_id => 'ami-4ff0cc3b', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
376
+ %w[ eu-west-1 64-bit ebs oneric ] => { :image_id => 'ami-1df0cc69', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
377
+ %w[ eu-west-1 64-bit instance oneric ] => { :image_id => 'ami-23f0cc57', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
375
378
  #
376
- %w[ us-east-1 32-bit ebs oneric ] => { :image_id => 'ami-a7f539ce', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
377
- %w[ us-east-1 32-bit instance oneric ] => { :image_id => 'ami-29f43840', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
378
- %w[ us-east-1 64-bit ebs oneric ] => { :image_id => 'ami-bbf539d2', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
379
- %w[ us-east-1 64-bit instance oneric ] => { :image_id => 'ami-21f53948', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
379
+ %w[ us-east-1 32-bit ebs oneric ] => { :image_id => 'ami-a562a9cc', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
380
+ %w[ us-east-1 32-bit instance oneric ] => { :image_id => 'ami-3962a950', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
381
+ %w[ us-east-1 64-bit ebs oneric ] => { :image_id => 'ami-bf62a9d6', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
382
+ %w[ us-east-1 64-bit instance oneric ] => { :image_id => 'ami-c162a9a8', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
380
383
  #
381
- %w[ us-west-1 32-bit ebs oneric ] => { :image_id => 'ami-79772b3c', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
382
- %w[ us-west-1 32-bit instance oneric ] => { :image_id => 'ami-a7762ae2', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
383
- %w[ us-west-1 64-bit ebs oneric ] => { :image_id => 'ami-7b772b3e', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
384
- %w[ us-west-1 64-bit instance oneric ] => { :image_id => 'ami-4b772b0e', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
384
+ %w[ us-west-1 32-bit ebs oneric ] => { :image_id => 'ami-c9a1fe8c', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
385
+ %w[ us-west-1 32-bit instance oneric ] => { :image_id => 'ami-21a1fe64', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
386
+ %w[ us-west-1 64-bit ebs oneric ] => { :image_id => 'ami-cba1fe8e', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
387
+ %w[ us-west-1 64-bit instance oneric ] => { :image_id => 'ami-3fa1fe7a', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
385
388
  #
386
- %w[ us-west-2 32-bit ebs oneric ] => { :image_id => 'ami-20f97410', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
387
- %w[ us-west-2 32-bit instance oneric ] => { :image_id => 'ami-52f67b62', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
388
- %w[ us-west-2 64-bit ebs oneric ] => { :image_id => 'ami-2af9741a', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
389
- %w[ us-west-2 64-bit instance oneric ] => { :image_id => 'ami-56f67b66', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
389
+ %w[ us-west-2 32-bit ebs oneric ] => { :image_id => 'ami-ea9a17da', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
390
+ %w[ us-west-2 32-bit instance oneric ] => { :image_id => 'ami-f49a17c4', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
391
+ %w[ us-west-2 64-bit ebs oneric ] => { :image_id => 'ami-ec9a17dc', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
392
+ %w[ us-west-2 64-bit instance oneric ] => { :image_id => 'ami-fe9a17ce', :ssh_user => 'ubuntu', :bootstrap_distro => "ubuntu10.04-gems", },
390
393
  })
391
394
  end
392
395
 
@@ -8,7 +8,7 @@ module ClusterChef
8
8
  @cluster = cluster
9
9
  @servers = Mash.new
10
10
  @chef_roles = []
11
- @settings[:instances] ||= 0
11
+ @settings[:instances] ||= 1
12
12
  create_facet_role
13
13
  create_facet_security_group unless attrs[:no_security_group]
14
14
  end
@@ -6,14 +6,20 @@ module ClusterChef
6
6
 
7
7
  def fog_create_server
8
8
  step(" creating cloud server", :green)
9
- fog_description = fog_description_for_launch
10
- Chef::Log.debug(JSON.pretty_generate(fog_description))
9
+ lint_fog
10
+ launch_desc = fog_launch_description
11
+ Chef::Log.debug(JSON.pretty_generate(launch_desc))
11
12
  safely do
12
- @fog_server = ClusterChef.fog_connection.servers.create(fog_description)
13
+ @fog_server = ClusterChef.fog_connection.servers.create(launch_desc)
13
14
  end
14
15
  end
15
16
 
16
- def fog_description_for_launch
17
+ def lint_fog
18
+ unless cloud.image_id then raise "No image ID found: nothing in Chef::Config[:ec2_image_info] for AZ #{self.default_availability_zone} flavor #{cloud.flavor} backing #{cloud.backing} image name #{cloud.image_name}, and cloud.image_id was not set directly. See https://github.com/infochimps/cluster_chef/wiki/machine-image-(AMI)-lookup-by-name - #{cloud.list_images}" end
19
+ unless cloud.image_id then cloud.list_flavors ; raise "No machine flavor found" ; end
20
+ end
21
+
22
+ def fog_launch_description
17
23
  {
18
24
  :image_id => cloud.image_id,
19
25
  :flavor_id => cloud.flavor,
@@ -132,5 +138,12 @@ module ClusterChef
132
138
  ClusterChef.fog_keypairs[keypair_name] = keypair_obj
133
139
  end
134
140
  end
141
+
142
+ # Create security groups, their dependencies, and synchronize their permissions
143
+ def sync_security_groups
144
+ step("ensuring security groups exist and are correct")
145
+ security_groups.each{|name,group| group.run }
146
+ end
147
+
135
148
  end
136
149
  end
@@ -1,6 +1,13 @@
1
1
  module ClusterChef
2
2
  ComputeBuilder.class_eval do
3
3
 
4
+ # organization-wide security group
5
+ role_implication "org_base" do
6
+ self.cloud.security_group "org_base" do
7
+ end
8
+ end
9
+
10
+ # NFS server allows access from nfs_clients
4
11
  role_implication "nfs_server" do
5
12
  self.cloud.security_group "nfs_server" do
6
13
  authorize_group "nfs_client"
@@ -11,12 +18,14 @@ module ClusterChef
11
18
  self.cloud.security_group "nfs_client"
12
19
  end
13
20
 
21
+ # Opens port 22 to the world
14
22
  role_implication "ssh" do
15
23
  self.cloud.security_group 'ssh' do
16
24
  authorize_port_range 22..22
17
25
  end
18
26
  end
19
27
 
28
+ # Open the Chef server API port (4000) and the webui (4040)
20
29
  role_implication "chef_server" do
21
30
  self.cloud.security_group "chef_server" do
22
31
  authorize_port_range 4000..4000 # chef-server-api
@@ -108,6 +108,7 @@ module ClusterChef
108
108
 
109
109
  def sync_to_cloud
110
110
  sync_keypairs
111
+ sync_security_groups
111
112
  delegate_to_servers( :sync_to_cloud )
112
113
  end
113
114
 
@@ -73,10 +73,10 @@ describe ClusterChef::Server do
73
73
  end
74
74
 
75
75
  describe 'launch' do
76
- describe '#fog_description_for_launch' do
76
+ describe '#fog_launch_description' do
77
77
  it 'has right attributes' do
78
78
 
79
- hsh = @server.fog_description_for_launch
79
+ hsh = @server.fog_launch_description
80
80
  hsh.delete(:user_data)
81
81
  hsh.should == {
82
82
  :image_id => "ami-08f40561",
@@ -97,7 +97,7 @@ describe ClusterChef::Server do
97
97
  end
98
98
 
99
99
  it 'has right user_data' do
100
- hsh = @server.fog_description_for_launch
100
+ hsh = @server.fog_launch_description
101
101
  user_data_hsh = JSON.parse( hsh[:user_data] )
102
102
  user_data_hsh.keys.should == ["chef_server", "validation_client_name", "validation_key", "attributes"]
103
103
  user_data_hsh["attributes"].keys.sort.should == [
metadata CHANGED
@@ -1,136 +1,137 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cluster_chef
3
- version: !ruby/object:Gem::Version
4
- version: 3.0.9
3
+ version: !ruby/object:Gem::Version
5
4
  prerelease:
5
+ version: 3.0.10
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Infochimps
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-16 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
12
+
13
+ date: 2012-01-17 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
15
16
  name: chef
16
- requirement: &70343611049240 !ruby/object:Gem::Requirement
17
+ requirement: &id001 !ruby/object:Gem::Requirement
17
18
  none: false
18
- requirements:
19
+ requirements:
19
20
  - - ~>
20
- - !ruby/object:Gem::Version
21
+ - !ruby/object:Gem::Version
21
22
  version: 0.10.4
22
23
  type: :runtime
23
24
  prerelease: false
24
- version_requirements: *70343611049240
25
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
26
27
  name: fog
27
- requirement: &70343611048760 !ruby/object:Gem::Requirement
28
+ requirement: &id002 !ruby/object:Gem::Requirement
28
29
  none: false
29
- requirements:
30
+ requirements:
30
31
  - - ~>
31
- - !ruby/object:Gem::Version
32
+ - !ruby/object:Gem::Version
32
33
  version: 1.1.1
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *70343611048760
36
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
37
38
  name: formatador
38
- requirement: &70343611048180 !ruby/object:Gem::Requirement
39
+ requirement: &id003 !ruby/object:Gem::Requirement
39
40
  none: false
40
- requirements:
41
+ requirements:
41
42
  - - ~>
42
- - !ruby/object:Gem::Version
43
+ - !ruby/object:Gem::Version
43
44
  version: 0.2.1
44
45
  type: :runtime
45
46
  prerelease: false
46
- version_requirements: *70343611048180
47
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
48
49
  name: gorillib
49
- requirement: &70343611047680 !ruby/object:Gem::Requirement
50
+ requirement: &id004 !ruby/object:Gem::Requirement
50
51
  none: false
51
- requirements:
52
+ requirements:
52
53
  - - ~>
53
- - !ruby/object:Gem::Version
54
+ - !ruby/object:Gem::Version
54
55
  version: 0.1.7
55
56
  type: :runtime
56
57
  prerelease: false
57
- version_requirements: *70343611047680
58
- - !ruby/object:Gem::Dependency
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
59
60
  name: bundler
60
- requirement: &70343611047060 !ruby/object:Gem::Requirement
61
+ requirement: &id005 !ruby/object:Gem::Requirement
61
62
  none: false
62
- requirements:
63
+ requirements:
63
64
  - - ~>
64
- - !ruby/object:Gem::Version
65
- version: '1'
65
+ - !ruby/object:Gem::Version
66
+ version: "1"
66
67
  type: :development
67
68
  prerelease: false
68
- version_requirements: *70343611047060
69
- - !ruby/object:Gem::Dependency
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
70
71
  name: jeweler
71
- requirement: &70343611046520 !ruby/object:Gem::Requirement
72
+ requirement: &id006 !ruby/object:Gem::Requirement
72
73
  none: false
73
- requirements:
74
+ requirements:
74
75
  - - ~>
75
- - !ruby/object:Gem::Version
76
- version: '1.6'
76
+ - !ruby/object:Gem::Version
77
+ version: "1.6"
77
78
  type: :development
78
79
  prerelease: false
79
- version_requirements: *70343611046520
80
- - !ruby/object:Gem::Dependency
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
81
82
  name: rspec
82
- requirement: &70343611046020 !ruby/object:Gem::Requirement
83
+ requirement: &id007 !ruby/object:Gem::Requirement
83
84
  none: false
84
- requirements:
85
+ requirements:
85
86
  - - ~>
86
- - !ruby/object:Gem::Version
87
- version: '2.5'
87
+ - !ruby/object:Gem::Version
88
+ version: "2.5"
88
89
  type: :development
89
90
  prerelease: false
90
- version_requirements: *70343611046020
91
- - !ruby/object:Gem::Dependency
91
+ version_requirements: *id007
92
+ - !ruby/object:Gem::Dependency
92
93
  name: yard
93
- requirement: &70343611045520 !ruby/object:Gem::Requirement
94
+ requirement: &id008 !ruby/object:Gem::Requirement
94
95
  none: false
95
- requirements:
96
+ requirements:
96
97
  - - ~>
97
- - !ruby/object:Gem::Version
98
- version: '0.6'
98
+ - !ruby/object:Gem::Version
99
+ version: "0.6"
99
100
  type: :development
100
101
  prerelease: false
101
- version_requirements: *70343611045520
102
- - !ruby/object:Gem::Dependency
102
+ version_requirements: *id008
103
+ - !ruby/object:Gem::Dependency
103
104
  name: configliere
104
- requirement: &70343611045020 !ruby/object:Gem::Requirement
105
+ requirement: &id009 !ruby/object:Gem::Requirement
105
106
  none: false
106
- requirements:
107
+ requirements:
107
108
  - - ~>
108
- - !ruby/object:Gem::Version
109
+ - !ruby/object:Gem::Version
109
110
  version: 0.4.8
110
111
  type: :development
111
112
  prerelease: false
112
- version_requirements: *70343611045020
113
- - !ruby/object:Gem::Dependency
113
+ version_requirements: *id009
114
+ - !ruby/object:Gem::Dependency
114
115
  name: cluster_chef-knife
115
- requirement: &70343611044520 !ruby/object:Gem::Requirement
116
+ requirement: &id010 !ruby/object:Gem::Requirement
116
117
  none: false
117
- requirements:
118
- - - =
119
- - !ruby/object:Gem::Version
120
- version: 3.0.9
118
+ requirements:
119
+ - - "="
120
+ - !ruby/object:Gem::Version
121
+ version: 3.0.10
121
122
  type: :runtime
122
123
  prerelease: false
123
- version_requirements: *70343611044520
124
- description: cluster_chef allows you to orchestrate not just systems but clusters
125
- of machines. It includes a powerful layer on top of knife and a collection of cloud
126
- cookbooks.
124
+ version_requirements: *id010
125
+ description: cluster_chef allows you to orchestrate not just systems but clusters of machines. It includes a powerful layer on top of knife and a collection of cloud cookbooks.
127
126
  email: coders@infochimps.com
128
127
  executables: []
128
+
129
129
  extensions: []
130
- extra_rdoc_files:
130
+
131
+ extra_rdoc_files:
131
132
  - LICENSE
132
133
  - README.md
133
- files:
134
+ files:
134
135
  - .gitignore
135
136
  - .rspec
136
137
  - CHANGELOG.md
@@ -144,6 +145,7 @@ files:
144
145
  - cluster_chef.gemspec
145
146
  - clusters/website_demo.rb
146
147
  - config/client.rb
148
+ - config/proxy.pac
147
149
  - lib/cluster_chef.rb
148
150
  - lib/cluster_chef/chef_layer.rb
149
151
  - lib/cluster_chef/cloud.rb
@@ -177,35 +179,36 @@ files:
177
179
  - tasks/chef_config.rake
178
180
  - tasks/jeweler_use_alt_branch.rake
179
181
  homepage: http://infochimps.com/labs
180
- licenses:
182
+ licenses:
181
183
  - apachev2
182
184
  post_install_message:
183
185
  rdoc_options: []
184
- require_paths:
186
+
187
+ require_paths:
185
188
  - lib
186
- required_ruby_version: !ruby/object:Gem::Requirement
189
+ required_ruby_version: !ruby/object:Gem::Requirement
187
190
  none: false
188
- requirements:
189
- - - ! '>='
190
- - !ruby/object:Gem::Version
191
- version: '0'
192
- segments:
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ hash: 905624580831723867
195
+ segments:
193
196
  - 0
194
- hash: -900538870253244074
195
- required_rubygems_version: !ruby/object:Gem::Requirement
197
+ version: "0"
198
+ required_rubygems_version: !ruby/object:Gem::Requirement
196
199
  none: false
197
- requirements:
198
- - - ! '>='
199
- - !ruby/object:Gem::Version
200
- version: '0'
200
+ requirements:
201
+ - - ">="
202
+ - !ruby/object:Gem::Version
203
+ version: "0"
201
204
  requirements: []
205
+
202
206
  rubyforge_project:
203
- rubygems_version: 1.8.11
207
+ rubygems_version: 1.8.15
204
208
  signing_key:
205
209
  specification_version: 3
206
- summary: cluster_chef allows you to orchestrate not just systems but clusters of machines.
207
- It includes a powerful layer on top of knife and a collection of cloud cookbooks.
208
- test_files:
210
+ summary: cluster_chef allows you to orchestrate not just systems but clusters of machines. It includes a powerful layer on top of knife and a collection of cloud cookbooks.
211
+ test_files:
209
212
  - spec/cluster_chef/cluster_spec.rb
210
213
  - spec/cluster_chef/facet_spec.rb
211
214
  - spec/cluster_chef/server_slice_spec.rb