knife-rackspace 0.9.1 → 0.9.2
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 +4 -0
- data/knife-rackspace.gemspec +1 -1
- data/lib/chef/knife/rackspace_server_create.rb +28 -2
- data/lib/knife-rackspace/version.rb +1 -1
- metadata +6 -6
data/CHANGELOG.md
CHANGED
data/knife-rackspace.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.add_dependency "knife-windows"
|
20
|
-
s.add_dependency "fog", '
|
20
|
+
s.add_dependency "fog", '>= 1.22'
|
21
21
|
s.add_dependency "chef", ">= 0.10.10"
|
22
22
|
s.require_paths = ["lib"]
|
23
23
|
|
@@ -107,7 +107,7 @@ class Chef
|
|
107
107
|
:description => "The version of Chef to install",
|
108
108
|
:proc => Proc.new { |v| Chef::Config[:knife][:bootstrap_version] = v }
|
109
109
|
|
110
|
-
|
110
|
+
option :distro,
|
111
111
|
:short => "-d DISTRO",
|
112
112
|
:long => "--distro DISTRO",
|
113
113
|
:description => "Bootstrap a distro using a template; default is 'chef-full'",
|
@@ -209,12 +209,21 @@ class Chef
|
|
209
209
|
:proc => Proc.new { |k| Chef::Config[:knife][:rackspace_config_drive] = k },
|
210
210
|
:default => "false"
|
211
211
|
|
212
|
+
option :rackspace_user_data_file,
|
213
|
+
:long => "--rackspace_user_data_file USERDATA",
|
214
|
+
:description => "User data file will be placed in the openstack/latest/user_data directory on the config drive",
|
215
|
+
:proc => Proc.new { |k| Chef::Config[:knife][:rackspace_user_data] = k }
|
216
|
+
|
212
217
|
option :ssh_keypair,
|
213
218
|
:long => "--ssh-keypair KEYPAIR_NAME",
|
214
219
|
:description => "Name of existing nova SSH keypair. Public key will be injected into the instance.",
|
215
220
|
:proc => Proc.new { |v| Chef::Config[:knife][:rackspace_ssh_keypair] = v },
|
216
221
|
:default => nil
|
217
222
|
|
223
|
+
option :secret_file,
|
224
|
+
:long => "--secret-file SECRET_FILE",
|
225
|
+
:description => "A file containing the secret key to use to encrypt data bag item values",
|
226
|
+
:proc => Proc.new { |sf| Chef::Config[:knife][:secret_file] = sf }
|
218
227
|
|
219
228
|
def load_winrm_deps
|
220
229
|
require 'winrm'
|
@@ -336,6 +345,7 @@ class Chef
|
|
336
345
|
:flavor_id => locate_config_value(:flavor),
|
337
346
|
:metadata => Chef::Config[:knife][:rackspace_metadata],
|
338
347
|
:disk_config => Chef::Config[:knife][:rackspace_disk_config],
|
348
|
+
:user_data => user_data,
|
339
349
|
:config_drive => locate_config_value(:rackspace_config_drive) || false,
|
340
350
|
:personality => files,
|
341
351
|
:keypair => Chef::Config[:knife][:rackspace_ssh_keypair]
|
@@ -353,6 +363,8 @@ class Chef
|
|
353
363
|
msg_pair("Flavor", server.flavor.name)
|
354
364
|
msg_pair("Image", server.image.name)
|
355
365
|
msg_pair("Metadata", server.metadata.all)
|
366
|
+
msg_pair("ConfigDrive", server.config_drive)
|
367
|
+
msg_pair("UserData", Chef::Config[:knife][:rackspace_user_data])
|
356
368
|
msg_pair("RackConnect Wait", rackconnect_wait ? 'yes' : 'no')
|
357
369
|
msg_pair("ServiceLevel Wait", rackspace_servicelevel_wait ? 'yes' : 'no')
|
358
370
|
msg_pair("SSH Key", Chef::Config[:knife][:rackspace_ssh_keypair])
|
@@ -435,6 +447,20 @@ class Chef
|
|
435
447
|
msg_pair("Environment", config[:environment] || '_default')
|
436
448
|
msg_pair("Run List", config[:run_list].join(', '))
|
437
449
|
end
|
450
|
+
|
451
|
+
def user_data
|
452
|
+
file = Chef::Config[:knife][:rackspace_user_data]
|
453
|
+
return unless file
|
454
|
+
|
455
|
+
begin
|
456
|
+
filename = File.expand_path(file)
|
457
|
+
content = File.read(filename)
|
458
|
+
rescue Errno::ENOENT => e
|
459
|
+
ui.error "Unable to read source file - #{filename}"
|
460
|
+
exit 1
|
461
|
+
end
|
462
|
+
content
|
463
|
+
end
|
438
464
|
|
439
465
|
def bootstrap_for_node(server, bootstrap_ip_address)
|
440
466
|
bootstrap = Chef::Knife::Bootstrap.new
|
@@ -466,7 +492,7 @@ class Chef
|
|
466
492
|
bootstrap.config[:encrypted_data_bag_secret] = config[:encrypted_data_bag_secret]
|
467
493
|
bootstrap.config[:encrypted_data_bag_secret_file] = config[:encrypted_data_bag_secret_file]
|
468
494
|
bootstrap.config[:secret] = locate_config_value(:secret)
|
469
|
-
bootstrap.config[:secret_file] = locate_config_value(:secret_file)
|
495
|
+
bootstrap.config[:secret_file] = locate_config_value(:secret_file) || ""
|
470
496
|
|
471
497
|
Chef::Config[:knife][:hints] ||= {}
|
472
498
|
Chef::Config[:knife][:hints]["rackspace"] ||= {}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-rackspace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2014-
|
14
|
+
date: 2014-05-10 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: knife-windows
|
@@ -34,17 +34,17 @@ dependencies:
|
|
34
34
|
requirement: !ruby/object:Gem::Requirement
|
35
35
|
none: false
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - ! '>='
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '1.
|
39
|
+
version: '1.22'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
none: false
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ! '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1.
|
47
|
+
version: '1.22'
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: chef
|
50
50
|
requirement: !ruby/object:Gem::Requirement
|