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.
- data/CHANGELOG.md +10 -0
- data/README.md +8 -5
- data/VERSION +1 -1
- data/cluster_chef-knife.gemspec +4 -3
- data/config/proxy.pac +12 -0
- data/lib/chef/knife/cluster_launch.rb +1 -5
- data/lib/chef/knife/cluster_show.rb +1 -1
- data/spec/cluster_chef/server_spec.rb +3 -3
- metadata +81 -78
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
|
-
|
3
|
+
Infrastructure as code: describe and orchestrate whole clusters of cloud or virtual machines.
|
4
4
|
|
5
|
-
|
5
|
+
## Overview
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
*
|
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.
|
1
|
+
3.0.10
|
data/cluster_chef-knife.gemspec
CHANGED
@@ -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.
|
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 = "
|
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.
|
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
|
|
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
|
+
}
|
@@ -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.
|
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 '#
|
76
|
+
describe '#fog_launch_description' do
|
77
77
|
it 'has right attributes' do
|
78
78
|
|
79
|
-
hsh = @server.
|
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.
|
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
|
-
|
13
|
-
|
14
|
-
|
12
|
+
|
13
|
+
date: 2012-01-17 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
15
16
|
name: chef
|
16
|
-
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: *
|
25
|
-
- !ruby/object:Gem::Dependency
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
26
27
|
name: fog
|
27
|
-
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: *
|
36
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: *id002
|
37
|
+
- !ruby/object:Gem::Dependency
|
37
38
|
name: formatador
|
38
|
-
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: *
|
47
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
48
49
|
name: gorillib
|
49
|
-
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: *
|
58
|
-
- !ruby/object:Gem::Dependency
|
58
|
+
version_requirements: *id004
|
59
|
+
- !ruby/object:Gem::Dependency
|
59
60
|
name: bundler
|
60
|
-
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:
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: "1"
|
66
67
|
type: :development
|
67
68
|
prerelease: false
|
68
|
-
version_requirements: *
|
69
|
-
- !ruby/object:Gem::Dependency
|
69
|
+
version_requirements: *id005
|
70
|
+
- !ruby/object:Gem::Dependency
|
70
71
|
name: jeweler
|
71
|
-
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:
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: "1.6"
|
77
78
|
type: :development
|
78
79
|
prerelease: false
|
79
|
-
version_requirements: *
|
80
|
-
- !ruby/object:Gem::Dependency
|
80
|
+
version_requirements: *id006
|
81
|
+
- !ruby/object:Gem::Dependency
|
81
82
|
name: rspec
|
82
|
-
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:
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: "2.5"
|
88
89
|
type: :development
|
89
90
|
prerelease: false
|
90
|
-
version_requirements: *
|
91
|
-
- !ruby/object:Gem::Dependency
|
91
|
+
version_requirements: *id007
|
92
|
+
- !ruby/object:Gem::Dependency
|
92
93
|
name: yard
|
93
|
-
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:
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: "0.6"
|
99
100
|
type: :development
|
100
101
|
prerelease: false
|
101
|
-
version_requirements: *
|
102
|
-
- !ruby/object:Gem::Dependency
|
102
|
+
version_requirements: *id008
|
103
|
+
- !ruby/object:Gem::Dependency
|
103
104
|
name: configliere
|
104
|
-
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: *
|
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
|
-
|
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
|
-
|
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
|
-
|
177
|
-
segments:
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
hash: -4083111304779616796
|
180
|
+
segments:
|
178
181
|
- 0
|
179
|
-
|
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:
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: "0"
|
186
189
|
requirements: []
|
190
|
+
|
187
191
|
rubyforge_project:
|
188
|
-
rubygems_version: 1.8.
|
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
|
-
|
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
|