cluster_chef-knife 3.0.10 → 3.0.11

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 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"