cluster_chef-knife 3.0.9 → 3.0.10

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