image_builder 0.0.8 → 0.0.9

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 94194ecb8b93c94713d7105ef4070e3f0646b90a
4
- data.tar.gz: f3b146ec098b7c35c0260948e2843a1de2a56709
3
+ metadata.gz: c076dc7e5e4320113bec0ce82b53fcec8002ae27
4
+ data.tar.gz: 9bd05d5459f560cc94e16019e8e72e9a0538197f
5
5
  SHA512:
6
- metadata.gz: 743c1e8f0a5c4132e6866e22462799c069e8ac8396bc1377e0fdd352b39ec0fffb98d2c406c56853af5bbc86f6bd350a8fb19fbcf23414109645189d4b6accd6
7
- data.tar.gz: 102fcbe10ee97557181576aa4f2c1e57607172284f9931fd46efeaaeb3b2cc010ce3d452616918b33b088fce63a2a08a2b8a3a500d10ab46808ced250c328f47
6
+ metadata.gz: c42e8773beedd7438cc73339eadf0b2688d838b8689a3ed41cf2eb5afe2a32d2da43e2777bfb1b2b4901a8ee5d01b5d76345827ca02b3ce746f264ad1fed07ae
7
+ data.tar.gz: 6c905f1c8247edd709d4d972896e4a89f0173f2eff53ecc61a7ef23103951f59d54793555e2686b9b1acca475218affe58571b75234e36d933cb3ec5a5b01000
data/bin/image_builder CHANGED
@@ -34,6 +34,7 @@ end
34
34
  def create_chef_client_provisioner(knife_file, chef_attrs, options)
35
35
  chef_client_prov = ImageBuilder::Provisioners::Chef::Client.from_file(knife_file)
36
36
  chef_client_prov.chef_environment = chef_attrs['amibakery']['build']['chef_env']
37
+ chef_client_prov.chef_version = options.chef_version
37
38
  chef_client_prov.node_name = "#{prog_name}_{{uuid}}"
38
39
  chef_client_prov.run_list = options.r_run_list
39
40
  chef_client_prov.json = JSON.parse(options.j_json) # Placeholder for custom json used to pass in build-specific data
@@ -176,6 +177,7 @@ Commander.configure do
176
177
  c.option '--ami-description DESC', String, 'A description of the ami'
177
178
  c.option '--cleanup-run-list RUN_LIST', Array, 'A run-list used to clean up the provisioned node before AMI creation'
178
179
  c.option '--[no-]vagrant-box', 'Create a Vagrant box defintion after the build completes'
180
+ c.option '--chef-version', String, 'chef-client version to download and install. If not given, will download the latest version'
179
181
 
180
182
  c.action do |_args, options|
181
183
  options.default vagrant_box: false
@@ -7,6 +7,7 @@ module ImageBuilder
7
7
  module Chef
8
8
  # Generic class doc comment
9
9
  class Base < ImageBuilder::Provisioners::Base
10
+ attr_accessor :chef_version
10
11
  attr_accessor :cookbook_paths
11
12
  attr_accessor :config_template
12
13
  attr_accessor :encrypted_data_bag_secret_path
@@ -59,6 +60,9 @@ module ImageBuilder
59
60
  def packer_hash
60
61
  hash = { type: @type }
61
62
 
63
+ @install_command = 'curl -L https://www.opscode.com/chef/install.sh | ' \
64
+ '{{if .Sudo}}sudo{{end}} bash -s -- -v ' + @chef_version unless @chef_version.nil? && @install_command.nil?
65
+
62
66
  attr_to_hash(hash, :config_template)
63
67
  attr_to_hash(hash, :execute_command)
64
68
  attr_to_hash(hash, :install_command)
@@ -1,4 +1,4 @@
1
1
  # Generic top-level module comment
2
2
  module ImageBuilder
3
- VERSION = '0.0.8'
3
+ VERSION = '0.0.9'
4
4
  end
@@ -29,4 +29,17 @@ describe ImageBuilder::Provisioners::Chef::Client do
29
29
  it 'implements packer_hash()' do
30
30
  expect(@obj.respond_to? :packer_hash).to be true
31
31
  end
32
+
33
+ it 'behaves correctly when no chef version given' do
34
+ expect(@obj.packer_hash.key? :install_command).to be false
35
+ expect(@obj.packer_hash[:install_command]).to be_nil
36
+ end
37
+
38
+ it 'honors setting a chef version for install' do
39
+ version = '11.16'
40
+ @obj.chef_version = version
41
+ expect(@obj.packer_hash.key? :install_command).to be true
42
+ expect(@obj.packer_hash[:install_command]).to match(/\s+-v\s+#{version}/)
43
+ expect(@obj.install_command).to match(/\s+-v\s+#{version}/)
44
+ end
32
45
  end
@@ -25,4 +25,17 @@ describe ImageBuilder::Provisioners::Chef::Solo do
25
25
  it 'implements packer_hash()' do
26
26
  expect(@obj.respond_to? :packer_hash).to be true
27
27
  end
28
+
29
+ it 'behaves correctly when no chef version given' do
30
+ expect(@obj.packer_hash.key? :install_command).to be false
31
+ expect(@obj.packer_hash[:install_command]).to be_nil
32
+ end
33
+
34
+ it 'honors setting a chef version for install' do
35
+ version = '11.14'
36
+ @obj.chef_version = version
37
+ expect(@obj.packer_hash.key? :install_command).to be true
38
+ expect(@obj.packer_hash[:install_command]).to match(/\s+-v\s+#{version}/)
39
+ expect(@obj.install_command).to match(/\s+-v\s+#{version}/)
40
+ end
28
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Morris
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-08 00:00:00.000000000 Z
11
+ date: 2014-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler