cluster_chef-knife 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.
@@ -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
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "cluster_chef-knife"
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-knife.gemspec",
31
31
  "clusters/website_demo.rb",
32
32
  "config/client.rb",
33
+ "config/proxy.pac",
33
34
  "lib/chef/knife/bootstrap/ubuntu10.04-basic.erb",
34
35
  "lib/chef/knife/bootstrap/ubuntu10.04-cluster_chef.erb",
35
36
  "lib/chef/knife/bootstrap/ubuntu11.10-cluster_chef.erb",
@@ -62,7 +63,7 @@ Gem::Specification.new do |s|
62
63
  s.homepage = "http://infochimps.com/labs"
63
64
  s.licenses = ["apachev2"]
64
65
  s.require_paths = ["lib"]
65
- s.rubygems_version = "1.8.11"
66
+ s.rubygems_version = "1.8.15"
66
67
  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."
67
68
  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"]
68
69
 
@@ -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
+ }
@@ -32,7 +32,7 @@ class Chef
32
32
 
33
33
  banner "knife cluster launch CLUSTER_NAME [FACET_NAME [INDEXES]] (options)"
34
34
  [ :ssh_port, :ssh_password, :identity_file, :use_sudo,
35
- :prerelease, :bootstrap_version, :template_file,
35
+ :prerelease, :bootstrap_version, :template_file, :distro
36
36
  ].each do |name|
37
37
  option name, Chef::Knife::Bootstrap.options[name]
38
38
  end
@@ -85,10 +85,6 @@ class Chef
85
85
  target.sync_to_cloud
86
86
  target.sync_to_chef
87
87
 
88
- # Make security groups
89
- section("Making security groups")
90
- full_target.security_groups.each{|name,group| group.run }
91
-
92
88
  # Launch servers
93
89
  section("Launching machines", :green)
94
90
  target.create_servers
@@ -43,7 +43,7 @@ class Chef
43
43
  target.each do |svr|
44
44
  Chef::Log.debug( "Server #{svr.name}: #{JSON.pretty_generate(svr.to_hash)}" )
45
45
  Chef::Log.debug( "- cloud: #{JSON.pretty_generate(svr.cloud.to_hash)}" )
46
- Chef::Log.debug( "- fog: #{JSON.pretty_generate(svr.fog_description_for_launch)}" )
46
+ Chef::Log.debug( "- fog: #{JSON.pretty_generate(svr.fog_launch_description)}" )
47
47
  end
48
48
  end
49
49
 
@@ -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,125 +1,126 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cluster_chef-knife
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: &70343609384260 !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: *70343609384260
25
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
26
27
  name: fog
27
- requirement: &70343609383380 !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: *70343609383380
36
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
37
38
  name: formatador
38
- requirement: &70343609382760 !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: *70343609382760
47
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
48
49
  name: gorillib
49
- requirement: &70343609397920 !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: *70343609397920
58
- - !ruby/object:Gem::Dependency
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
59
60
  name: bundler
60
- requirement: &70343609396860 !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: *70343609396860
69
- - !ruby/object:Gem::Dependency
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
70
71
  name: jeweler
71
- requirement: &70343609395620 !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: *70343609395620
80
- - !ruby/object:Gem::Dependency
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
81
82
  name: rspec
82
- requirement: &70343609393700 !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: *70343609393700
91
- - !ruby/object:Gem::Dependency
91
+ version_requirements: *id007
92
+ - !ruby/object:Gem::Dependency
92
93
  name: yard
93
- requirement: &70343609392020 !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: *70343609392020
102
- - !ruby/object:Gem::Dependency
102
+ version_requirements: *id008
103
+ - !ruby/object:Gem::Dependency
103
104
  name: configliere
104
- requirement: &70343609391160 !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: *70343609391160
113
- description: cluster_chef allows you to orchestrate not just systems but clusters
114
- of machines. It includes a powerful layer on top of knife and a collection of cloud
115
- cookbooks.
113
+ version_requirements: *id009
114
+ 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.
116
115
  email: coders@infochimps.com
117
116
  executables: []
117
+
118
118
  extensions: []
119
- extra_rdoc_files:
119
+
120
+ extra_rdoc_files:
120
121
  - LICENSE
121
122
  - README.md
122
- files:
123
+ files:
123
124
  - .gitignore
124
125
  - .rspec
125
126
  - CHANGELOG.md
@@ -133,6 +134,7 @@ files:
133
134
  - cluster_chef-knife.gemspec
134
135
  - clusters/website_demo.rb
135
136
  - config/client.rb
137
+ - config/proxy.pac
136
138
  - lib/chef/knife/bootstrap/ubuntu10.04-basic.erb
137
139
  - lib/chef/knife/bootstrap/ubuntu10.04-cluster_chef.erb
138
140
  - lib/chef/knife/bootstrap/ubuntu11.10-cluster_chef.erb
@@ -162,35 +164,36 @@ files:
162
164
  - tasks/chef_config.rake
163
165
  - tasks/jeweler_use_alt_branch.rake
164
166
  homepage: http://infochimps.com/labs
165
- licenses:
167
+ licenses:
166
168
  - apachev2
167
169
  post_install_message:
168
170
  rdoc_options: []
169
- require_paths:
171
+
172
+ require_paths:
170
173
  - lib
171
- required_ruby_version: !ruby/object:Gem::Requirement
174
+ required_ruby_version: !ruby/object:Gem::Requirement
172
175
  none: false
173
- requirements:
174
- - - ! '>='
175
- - !ruby/object:Gem::Version
176
- version: '0'
177
- segments:
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ hash: -4083111304779616796
180
+ segments:
178
181
  - 0
179
- hash: -900538870253244074
180
- required_rubygems_version: !ruby/object:Gem::Requirement
182
+ version: "0"
183
+ required_rubygems_version: !ruby/object:Gem::Requirement
181
184
  none: false
182
- requirements:
183
- - - ! '>='
184
- - !ruby/object:Gem::Version
185
- version: '0'
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: "0"
186
189
  requirements: []
190
+
187
191
  rubyforge_project:
188
- rubygems_version: 1.8.11
192
+ rubygems_version: 1.8.15
189
193
  signing_key:
190
194
  specification_version: 3
191
- summary: cluster_chef allows you to orchestrate not just systems but clusters of machines.
192
- It includes a powerful layer on top of knife and a collection of cloud cookbooks.
193
- test_files:
195
+ 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.
196
+ test_files:
194
197
  - spec/cluster_chef/cluster_spec.rb
195
198
  - spec/cluster_chef/facet_spec.rb
196
199
  - spec/cluster_chef/server_slice_spec.rb