cluster_chef 3.0.9 → 3.0.10

Sign up to get free protection for your applications and to get access to all the features.
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