cluster_chef-knife 3.0.10 → 3.0.11

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## v3.0.11: We Raid at Dawn
2
+
3
+ * You can now assemble raid groups in the cluster definition:
4
+ - node metadata instructing the volumes recipe to build the raid volume
5
+ - marks the component volumes as non-mountable, in the appropriate raid group, etc
6
+ * Changed the order of `cluster_role` and `facet_role` in the run list. It now goes:
7
+ - `:first` roles (cluster then facet)
8
+ - `:normal` roles (cluster then facet)
9
+ - special roles: `cluster_role` then `facet_role`
10
+ - `:last` roles (cluster then facet)
11
+ * knife cluster launch uses ClusterBootstrap, not knife's vanilla bootstrap.
12
+ * can now do group('group_that_wants').authorized_by_group('group_that_grants') so that in cluster A I can request access to cluster B without gaining its group myself.
13
+ * push the organization (if set) into the node metadata
14
+
1
15
  ## v3.0.10: Cloud fixes
2
16
 
3
17
  * 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.
data/TODO.md CHANGED
@@ -6,3 +6,11 @@
6
6
  * knife cluster kick fails if service isn't running
7
7
  * make clear directions for installing `cluster_chef` and its initial use.
8
8
  * knife cluster launch should fail differently if you give it a facet that doesn't exist
9
+
10
+
11
+
12
+ ### ssh_user, ssh_identity_file, keypair, template should be set by cluster except when they shouldn't
13
+
14
+ ### Organization-specific homebase files
15
+
16
+ The current organization of the homebase needs to better scope organization-specific customizations
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.10
1
+ 3.0.11
@@ -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.10"
8
+ s.version = "3.0.11"
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 = "2012-01-17"
12
+ s.date = "2012-01-24"
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 = [
@@ -17,6 +17,7 @@
17
17
  #
18
18
 
19
19
  require File.expand_path(File.dirname(__FILE__)+"/knife_common.rb")
20
+ require File.expand_path(File.dirname(__FILE__)+"/cluster_bootstrap.rb")
20
21
 
21
22
  class Chef
22
23
  class Knife
@@ -26,15 +27,15 @@ class Chef
26
27
  deps do
27
28
  require 'time'
28
29
  require 'socket'
29
- ClusterChef::KnifeCommon.load_deps
30
- Chef::Knife::Bootstrap.load_deps
30
+ Chef::Knife::ClusterBootstrap.load_deps
31
31
  end
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, :distro
35
+ :prerelease, :bootstrap_version, :template_file, :distro,
36
+ :bootstrap_runs_chef_client, :host_key_verify
36
37
  ].each do |name|
37
- option name, Chef::Knife::Bootstrap.options[name]
38
+ option name, Chef::Knife::ClusterBootstrap.options[name]
38
39
  end
39
40
 
40
41
  option :dry_run,
@@ -53,16 +54,6 @@ class Chef
53
54
  :description => "Also bootstrap the launched node (default is NOT to bootstrap)",
54
55
  :boolean => true,
55
56
  :default => false
56
- option :bootstrap_runs_chef_client,
57
- :long => "--[no-]bootstrap-runs-chef-client",
58
- :description => "If bootstrap is invoked, the bootstrap script causes an initial run of chef-client (default true).",
59
- :boolean => true,
60
- :default => true
61
- option :host_key_verify,
62
- :long => "--[no-]host-key-verify",
63
- :description => "Verify host key, enabled by default.",
64
- :boolean => true,
65
- :default => true
66
57
 
67
58
  def run
68
59
  load_cluster_chef
@@ -97,7 +97,7 @@ class Chef
97
97
  #
98
98
  def dump_proxy_pac
99
99
  pac_filename = File.expand_path(File.join('/tmp', "cluster_chef_proxy-#{ENV['USER']}.pac"))
100
- ui.info("point your browser at PAC (automatic proxy config file) #{pac_filename}")
100
+ ui.info("point your browser at PAC (automatic proxy config file) file://#{pac_filename}")
101
101
  File.open(pac_filename, 'w') do |f|
102
102
  f.print %Q{function FindProxyForURL(url, host) {
103
103
  if ((shExpMatch(host, "*ec2*.amazonaws.com" )) ||
@@ -52,6 +52,7 @@ class Chef
52
52
  if config[:chef]
53
53
  sync_to_chef target
54
54
  else Chef::Log.debug("Skipping sync to chef") ; end
55
+
55
56
  if config[:cloud] && target.any?(&:in_cloud?)
56
57
  sync_to_cloud target
57
58
  else Chef::Log.debug("Skipping sync to cloud") ; end
@@ -121,7 +121,7 @@ module ClusterChef
121
121
  bootstrap.config[:distro] = config[:distro] || server.cloud.bootstrap_distro
122
122
  bootstrap.config[:use_sudo] = true unless config[:use_sudo] == false
123
123
  bootstrap.config[:chef_node_name] = server.fullname
124
- bootstrap.config[:client_key] = server.client_key.body if server.client_key.body
124
+ bootstrap.config[:client_key] = server.client_key.body if server.client_key.body
125
125
 
126
126
  bootstrap
127
127
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: cluster_chef-knife
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 3.0.10
5
+ version: 3.0.11
6
6
  platform: ruby
7
7
  authors:
8
8
  - Infochimps
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-01-17 00:00:00 Z
13
+ date: 2012-01-24 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: chef
@@ -176,7 +176,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
176
176
  requirements:
177
177
  - - ">="
178
178
  - !ruby/object:Gem::Version
179
- hash: -4083111304779616796
179
+ hash: 2883280125648369733
180
180
  segments:
181
181
  - 0
182
182
  version: "0"