beaker-puppet_install_helper 0.7.1 → 0.9.0
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 +4 -4
- data/CHANGELOG.md +18 -0
- data/README.md +7 -16
- data/beaker-puppet_install_helper.gemspec +1 -1
- data/lib/beaker/puppet_install_helper.rb +18 -27
- data/spec/unit/beaker/puppet_install_helper_spec.rb +117 -88
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4671087136928e9adda784a24f1ea5577e5b6b68
|
4
|
+
data.tar.gz: 5f785c6f41fd90a0a7b0c578b321910c5fec3c77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc2780d965a5f86cf072b373bf3b9da60cae36dd123a84b3b06fed1b9cd60e607fa10d81fa1387a041988409e2b69e6ada775ec984ad81ce1da74df8e7789f73
|
7
|
+
data.tar.gz: f898be72b22bfbaa300370cd3df8f7eaeb4d60377a45404a938bfb97c55f69cbfcb4f8474e777349f9070fb95e5d4c28d44ad96b9e06dd8d85712a68ed6857c3
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/).
|
6
6
|
|
7
|
+
## [0.9.0]
|
8
|
+
### Changed
|
9
|
+
- Use `BEAKER_IS_PE` instead of `PUPPET_INSTALL_TYPE` to specify whether a run should be PE or agent.
|
10
|
+
- Use `BEAKER_PUPPET_COLLECTION` instead of `PUPPET_INSTALL_TYPE` to specify puppet5, puppet6-nightly, etc. collections.
|
11
|
+
- Use `BEAKER_PUPPET_AGENT_VERSION` instead of `PUPPET_INSTALL_VERSION`
|
12
|
+
- Use `BEAKER_PUPPET_AGENT_SHA` instead of `PUPPET_AGENT_SHA`
|
13
|
+
|
14
|
+
### Fixed
|
15
|
+
- Beaker only cares about the SHA and no longer cares about `PUPPET_AGENT_SUITE_VERSION` so deprecating that variable. See (the beaker source)[https://github.com/puppetlabs/beaker-puppet/blob/63ea32a0d7caa8f261c533b020625de19569f971/lib/beaker-puppet/install_utils/foss_utils.rb#L1150-L1152]
|
16
|
+
|
17
|
+
## [0.8.0]
|
18
|
+
### Changed
|
19
|
+
- Changed the default `PUPPET_INSTALL_TYPE` from "agent" (puppet 4) to "puppet5"
|
20
|
+
|
21
|
+
### Added
|
22
|
+
- Added puppet5 and puppet6-nightly ability.
|
23
|
+
|
7
24
|
## [0.7.1]
|
8
25
|
### Fixed
|
9
26
|
- Reverted adding the bin folder to $PATH on non-windows
|
@@ -43,6 +60,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
43
60
|
### Changed
|
44
61
|
- Add solaris for installing CA certs as well.
|
45
62
|
|
63
|
+
[0.8.0]: https://github.com/puppetlabs/beaker-puppet_install_helper/compare/0.7.1...0.8.0
|
46
64
|
[0.7.1]: https://github.com/puppetlabs/beaker-puppet_install_helper/compare/0.7.0...0.7.1
|
47
65
|
[0.7.0]: https://github.com/puppetlabs/beaker-puppet_install_helper/compare/0.6.0...0.7.0
|
48
66
|
[0.6.0]: https://github.com/puppetlabs/beaker-puppet_install_helper/compare/0.5.0...0.6.0
|
data/README.md
CHANGED
@@ -4,24 +4,15 @@ This gem is simply an abstraction for the various ways that we install puppet fr
|
|
4
4
|
|
5
5
|
### `run_puppet_install_helper`
|
6
6
|
|
7
|
-
The way to use this is to declare either `run_puppet_install_helper()` or `run_puppet_install_helper_on(hosts)` and set environment variables `
|
7
|
+
The way to use this is to declare either `run_puppet_install_helper()` or `run_puppet_install_helper_on(hosts)` and set environment variables `BEAKER_PUPPET_AGENT_VERSION` and/or `BEAKER_PUPPET_COLLECTION` in the following combinations to have puppet installed on the desired hosts. The nodeset should be configured with `type: pe` or `type: aio` to control the type of install.
|
8
8
|
|
9
|
-
- `
|
10
|
-
- `
|
11
|
-
- `
|
12
|
-
- `
|
13
|
-
|
14
|
-
- if `PUPPET_INSTALL_VERSION` is 4 or more it will attempt to install the corresponding puppet-agent package, or gem version otherwise.
|
15
|
-
- if a `master` role is defined, will install puppetserver on that node. Note that the corresponding puppet-agent dependency will be installed on that node rather than the specified `PUPPET_INSTALL_VERSION`.
|
9
|
+
- `BEAKER_PUPPET_COLLECTION=<puppet collection>` will install the specified `BEAKER_PUPPET_AGENT_VERSION` from the specified collection. Valid values are `pc1`, `puppet5`, `puppet6-nightly` etc. This may change with time.
|
10
|
+
- `BEAKER_PUPPET_AGENT_VERSION=<version>` to specify
|
11
|
+
- `BEAKER_IS_PE=<yes or no>` may be used to force a nodeset to be PE or not, regardless of the nodeset `type` or absence thereof.
|
12
|
+
- `BEAKER_PUPPET_AGENT_SHA=<sha>` may be used in order to use a development puppet-agent package.
|
13
|
+
- `PUPPET_INSTALL_TYPE=foss` may be used to install foss puppet 3.x, but is deprecated and should not be used.
|
16
14
|
|
17
|
-
The best way is explicitly set `
|
18
|
-
|
19
|
-
#### Installing a puppet-agent package from a development repository
|
20
|
-
|
21
|
-
In order to use a custom, or unreleased, puppet-agent package set the following environment variables"
|
22
|
-
- `PUPPET_INSTALL_TYPE=agent`
|
23
|
-
- `PUPPET_AGENT_SHA` is the longform commit SHA used when building the puppet-agent package, for example `PUPPET_AGENT_SHA=18d31fd5ed41abb276398201f84a4347e0fc7092`. This is required to be set in order to use a development puppet-agent package
|
24
|
-
- `PUPPET_AGENT_SUITE_VERSION` is the version of the puppet-agent package, for example `PUPPET_AGENT_SUITE_VERSION="1.8.2.350.g18d31fd`. This is optional, and will default to `PUPPET_AGENT_SHA` if not set
|
15
|
+
The best way is explicitly set `BEAKER_PUPPET_COLLECTION` and `BEAKER_PUPPET_AGENT_VERSION` to what you want. It'll probably do what you expect.
|
25
16
|
|
26
17
|
### `install_ca_certs`
|
27
18
|
|
@@ -7,36 +7,21 @@ module Beaker::PuppetInstallHelper
|
|
7
7
|
end
|
8
8
|
|
9
9
|
# Takes a host(s) object, install type string, and install version string.
|
10
|
-
# - Type defaults to PE for PE nodes, and foss otherwise.
|
11
|
-
# - Version will default to the latest 3x foss/pe package, depending on type
|
12
10
|
def run_puppet_install_helper_on(hosts, type_arg = find_install_type, version = find_install_version)
|
13
11
|
type = type_arg || find_install_type
|
14
12
|
|
15
13
|
# Short circuit based on rspec-system and beaker variables
|
16
14
|
if (ENV['RS_PROVISION'] == 'no') || (ENV['BEAKER_provision'] == 'no')
|
17
|
-
|
18
|
-
case type
|
19
|
-
when 'pe'
|
20
|
-
configure_pe_defaults_on(host)
|
21
|
-
when /foss|agent/
|
22
|
-
configure_foss_defaults_on(host)
|
23
|
-
end
|
24
|
-
end
|
15
|
+
configure_type_defaults_on(hosts)
|
25
16
|
return
|
26
17
|
end
|
27
18
|
|
28
19
|
# Example environment variables to be read:
|
29
|
-
#
|
30
|
-
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
#
|
34
|
-
# PUPPET_INSTALL_TYPE=foss
|
35
|
-
# PUPPET_INSTALL_TYPE=agent
|
36
|
-
|
37
|
-
# For PUPPET_INSTALL_TYPE=agent and using a development version of Puppet Agent
|
38
|
-
# PUPPET_AGENT_SHA=18d31fd5ed41abb276398201f84a4347e0fc7092 <-- Required. Long form commit SHA used to build the Puppet Agent
|
39
|
-
# PUPPET_AGENT_SUITE_VERSION=1.8.2.350.g18d31fd <-- Optiona. Version string for the Puppet Agent
|
20
|
+
# BEAKER_PUPPET_COLLECTION=pc1 <-- for latest 4.x
|
21
|
+
# BEAKER_PUPPET_COLLECTION=puppet5 <-- for latest 5.x
|
22
|
+
# BEAKER_PUPPET_COLLECTION=puppet5 BEAKER_PUPPET_AGENT_VERSION=5.3.1 <-- for specific version
|
23
|
+
# BEAKER_PUPPET_COLLECTION=puppet6-nightly <-- for latest nightly build
|
24
|
+
# BEAKER_PUPPET_AGENT_SHA=0ed2bbc918326263da9d97d0361a9e9303b52938 <-- for specific dev build
|
40
25
|
|
41
26
|
# Ensure windows 2003 is always set to 32 bit
|
42
27
|
Array(hosts).each do |host|
|
@@ -55,9 +40,12 @@ module Beaker::PuppetInstallHelper
|
|
55
40
|
if hosts_with_role(hosts, 'master').length>0 then
|
56
41
|
next if host == master
|
57
42
|
end
|
43
|
+
# XXX install_puppet_on() will call install_puppet_agent_on() if there
|
44
|
+
# is a :version option >= 4.x passed, but does foss by default.
|
58
45
|
install_puppet_on(host, opts)
|
59
46
|
end
|
60
47
|
if hosts_with_role(hosts, 'master').length>0 then
|
48
|
+
# TODO Make the puppetserver code work with puppet5/puppet6
|
61
49
|
# install puppetserver
|
62
50
|
install_puppetlabs_release_repo( master, 'pc1' )
|
63
51
|
master.install_package('puppetserver')
|
@@ -94,13 +82,11 @@ module Beaker::PuppetInstallHelper
|
|
94
82
|
end
|
95
83
|
end
|
96
84
|
when 'agent'
|
97
|
-
if
|
98
|
-
# This will fail on hosts that are not supported; use foss and specify a 4.x version instead
|
85
|
+
if find_agent_sha.nil?
|
99
86
|
install_puppet_agent_on(hosts, options.merge(version: version))
|
100
87
|
else
|
101
|
-
opts = options.merge(
|
102
|
-
|
103
|
-
puppet_agent_version: ENV['PUPPET_AGENT_SUITE_VERSION'] || ENV['PUPPET_AGENT_SHA'])
|
88
|
+
opts = options.merge(puppet_agent_sha: find_agent_sha,
|
89
|
+
puppet_agent_version: ENV['PUPPET_AGENT_SUITE_VERSION'] || find_agent_sha)
|
104
90
|
install_puppet_agent_dev_repo_on(hosts, opts)
|
105
91
|
end
|
106
92
|
|
@@ -114,6 +100,7 @@ module Beaker::PuppetInstallHelper
|
|
114
100
|
end
|
115
101
|
|
116
102
|
def find_install_type
|
103
|
+
# XXX Just use default.is_pe? when PUPPET_INSTALL_TYPE=foss is removed.
|
117
104
|
ENV['PUPPET_INSTALL_TYPE'] || if default.is_pe?
|
118
105
|
'pe'
|
119
106
|
else
|
@@ -121,8 +108,12 @@ module Beaker::PuppetInstallHelper
|
|
121
108
|
end
|
122
109
|
end
|
123
110
|
|
111
|
+
def find_agent_sha
|
112
|
+
ENV['BEAKER_PUPPET_AGENT_SHA'] || ENV['PUPPET_AGENT_SHA']
|
113
|
+
end
|
114
|
+
|
124
115
|
def find_install_version
|
125
|
-
ENV['PUPPET_INSTALL_VERSION'] || ENV['PUPPET_VERSION']
|
116
|
+
ENV['BEAKER_PUPPET_AGENT_VERSION'] || ENV['PUPPET_INSTALL_VERSION'] || ENV['PUPPET_VERSION']
|
126
117
|
end
|
127
118
|
end
|
128
119
|
|
@@ -24,6 +24,7 @@ describe 'Beaker::PuppetInstallHelper' do
|
|
24
24
|
allow(subject).to receive(:on)
|
25
25
|
allow(subject).to receive(:fact_on)
|
26
26
|
allow(subject).to receive(:agents).and_return(hosts)
|
27
|
+
allow(subject).to receive(:default).and_return(hosts[0])
|
27
28
|
end
|
28
29
|
after :each do
|
29
30
|
ENV.delete('PUPPET_VERSION')
|
@@ -31,17 +32,20 @@ describe 'Beaker::PuppetInstallHelper' do
|
|
31
32
|
ENV.delete('PUPPET_INSTALL_TYPE')
|
32
33
|
ENV.delete('PUPPET_AGENT_SHA')
|
33
34
|
ENV.delete('PUPPET_AGENT_SUITE_VERSION')
|
35
|
+
ENV.delete('BEAKER_IS_PE')
|
36
|
+
ENV.delete('BEAKER_PUPPET_COLLECTION')
|
37
|
+
ENV.delete('BEAKER_PUPPET_AGENT_VERSION')
|
38
|
+
ENV.delete('BEAKER_PUPPET_AGENT_SHA')
|
34
39
|
end
|
35
40
|
describe '#run_puppet_install_helper' do
|
36
41
|
before :each do
|
37
42
|
allow(subject).to receive(:hosts).and_return(hosts)
|
38
|
-
allow(subject).to receive(:default).and_return(hosts[0])
|
39
43
|
end
|
40
44
|
it 'calls run_puppet_install_helper_on on each host' do
|
41
45
|
expect(subject).to receive(:run_puppet_install_helper_on).with(hosts, 'agent', nil)
|
42
46
|
subject.run_puppet_install_helper
|
43
47
|
end
|
44
|
-
%w(PUPPET_VERSION PUPPET_INSTALL_VERSION).each do |version_var|
|
48
|
+
%w(BEAKER_PUPPET_AGENT_VERSION PUPPET_VERSION PUPPET_INSTALL_VERSION).each do |version_var|
|
45
49
|
it 'calls run_puppet_install_helper_on on each host with a version ' do
|
46
50
|
ENV[version_var] = '4.1.0'
|
47
51
|
expect(subject).to receive(:run_puppet_install_helper_on).with(hosts, 'agent', '4.1.0')
|
@@ -73,64 +77,125 @@ describe 'Beaker::PuppetInstallHelper' do
|
|
73
77
|
subject.run_puppet_install_helper_on(hosts)
|
74
78
|
end
|
75
79
|
end
|
76
|
-
context 'for
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
it 'uses foss explicitly' do
|
109
|
-
ENV['PUPPET_INSTALL_TYPE'] = 'foss'
|
110
|
-
expect(subject).to receive(:install_puppetlabs_release_repo).with(hosts[1], 'pc1')
|
111
|
-
expect(subject).to receive(:install_puppet_on).with(hosts[0], version: nil, default_action: 'gem_install')
|
112
|
-
subject.run_puppet_install_helper_on(hosts)
|
113
|
-
end
|
114
|
-
%w(PUPPET_VERSION PUPPET_INSTALL_VERSION).each do |version_var|
|
115
|
-
it 'uses foss with a version' do
|
116
|
-
ENV['PUPPET_INSTALL_TYPE'] = 'foss'
|
117
|
-
ENV[version_var] = '3.8.1'
|
118
|
-
expect(subject).to receive(:install_puppetlabs_release_repo).with(hosts[1], 'pc1')
|
119
|
-
expect(subject).to receive(:install_puppet_on).with(hosts[0], version: '3.8.1', default_action: 'gem_install')
|
120
|
-
subject.run_puppet_install_helper_on(hosts)
|
80
|
+
context 'for non-pe' do
|
81
|
+
context 'and foss type' do
|
82
|
+
let :hosts do
|
83
|
+
foss_host = double(is_pe?: false)
|
84
|
+
foss_master = double(is_pe?: false)
|
85
|
+
allow(foss_host).to receive(:[]).with('distmoduledir').and_return('/dne')
|
86
|
+
allow(foss_host).to receive(:[]).with('platform').and_return('Debian')
|
87
|
+
allow(foss_host).to receive(:[]).with('pe_ver').and_return(nil)
|
88
|
+
allow(foss_host).to receive(:[]).with('roles').and_return(['agent'])
|
89
|
+
allow(foss_host).to receive(:puppet).and_return('hiera_config' => '/dne')
|
90
|
+
allow(foss_master).to receive(:[]).with('pe_ver').and_return(nil)
|
91
|
+
allow(foss_master).to receive(:[]=).with('distmoduledir', 'foo')
|
92
|
+
allow(foss_master).to receive(:[]).with('platform').and_return('Debian')
|
93
|
+
allow(foss_master).to receive(:[]).with('roles').and_return(['master'])
|
94
|
+
allow(foss_master).to receive(:get_ip).and_return('1.2.3.4')
|
95
|
+
allow(foss_master).to receive(:install_package).with('puppetserver')
|
96
|
+
allow(foss_master).to receive(:get_ip).and_return('1.2.3.4')
|
97
|
+
[foss_host, foss_master]
|
98
|
+
end
|
99
|
+
let :result do
|
100
|
+
Beaker::Result.new( nil, nil )
|
101
|
+
end
|
102
|
+
before :each do
|
103
|
+
allow(subject).to receive(:master).and_return(hosts[1])
|
104
|
+
allow(subject).to receive(:sign_certificate_for)
|
105
|
+
allow(subject).to receive(:puppet_agent)
|
106
|
+
allow(subject).to receive(:puppet).with('resource', 'service', 'puppetserver', 'ensure=running')
|
107
|
+
allow(subject).to receive(:puppet).with('resource', 'host', 'puppet', 'ensure=present', 'ip=1.2.3.4')
|
108
|
+
allow(subject).to receive(:puppet).with('agent', '--test')
|
109
|
+
allow(subject).to receive(:puppet).with('config', 'print', 'modulepath')
|
110
|
+
allow(subject).to receive(:on).and_return(result)
|
111
|
+
result.stdout = 'foo:bar'
|
121
112
|
end
|
122
|
-
it 'uses foss
|
113
|
+
it 'uses foss explicitly' do
|
123
114
|
ENV['PUPPET_INSTALL_TYPE'] = 'foss'
|
124
|
-
ENV[version_var] = '4.1.0'
|
125
115
|
expect(subject).to receive(:install_puppetlabs_release_repo).with(hosts[1], 'pc1')
|
126
|
-
expect(subject).to receive(:install_puppet_on).with(hosts[0], version:
|
127
|
-
expect(subject).to receive(:add_aio_defaults_on).with(hosts)
|
128
|
-
expect(subject).to receive(:add_puppet_paths_on).with(hosts)
|
116
|
+
expect(subject).to receive(:install_puppet_on).with(hosts[0], version: nil, default_action: 'gem_install')
|
129
117
|
subject.run_puppet_install_helper_on(hosts)
|
130
118
|
end
|
119
|
+
%w(BEAKER_PUPPET_AGENT_VERSION PUPPET_VERSION PUPPET_INSTALL_VERSION).each do |version_var|
|
120
|
+
it 'uses foss with a version' do
|
121
|
+
ENV['PUPPET_INSTALL_TYPE'] = 'foss'
|
122
|
+
ENV[version_var] = '3.8.1'
|
123
|
+
expect(subject).to receive(:install_puppetlabs_release_repo).with(hosts[1], 'pc1')
|
124
|
+
expect(subject).to receive(:install_puppet_on).with(hosts[0], version: '3.8.1', default_action: 'gem_install')
|
125
|
+
subject.run_puppet_install_helper_on(hosts)
|
126
|
+
end
|
127
|
+
it 'uses foss with a 4.x version detects AIO' do
|
128
|
+
ENV['PUPPET_INSTALL_TYPE'] = 'foss'
|
129
|
+
ENV[version_var] = '4.1.0'
|
130
|
+
expect(subject).to receive(:install_puppetlabs_release_repo).with(hosts[1], 'pc1')
|
131
|
+
expect(subject).to receive(:install_puppet_on).with(hosts[0], version: '4.1.0', default_action: 'gem_install')
|
132
|
+
expect(subject).to receive(:add_aio_defaults_on).with(hosts)
|
133
|
+
expect(subject).to receive(:add_puppet_paths_on).with(hosts)
|
134
|
+
subject.run_puppet_install_helper_on(hosts)
|
135
|
+
end
|
136
|
+
it 'uses pc1 with a 5.x version; this fails' do
|
137
|
+
ENV['PUPPET_INSTALL_TYPE'] = 'foss'
|
138
|
+
ENV[version_var] = '5.1.0'
|
139
|
+
expect(subject).to receive(:install_puppetlabs_release_repo).with(hosts[1], 'pc1')
|
140
|
+
expect(subject).to receive(:install_puppet_on).with(hosts[0], version: '5.1.0', default_action: 'gem_install')
|
141
|
+
expect(subject).to receive(:add_aio_defaults_on).with(hosts)
|
142
|
+
expect(subject).to receive(:add_puppet_paths_on).with(hosts)
|
143
|
+
subject.run_puppet_install_helper_on(hosts)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
context 'for agent type' do
|
148
|
+
context 'with no collection' do
|
149
|
+
it 'uses agent by default for non-pe hosts' do
|
150
|
+
expect(subject).to receive(:install_puppet_agent_on).with(hosts, version: nil)
|
151
|
+
expect(subject).to receive(:add_aio_defaults_on).with(hosts)
|
152
|
+
expect(subject).to receive(:add_puppet_paths_on).with(hosts)
|
153
|
+
subject.run_puppet_install_helper_on(hosts)
|
154
|
+
end
|
155
|
+
it 'uses agent explicitly' do
|
156
|
+
ENV['PUPPET_INSTALL_TYPE'] = 'agent'
|
157
|
+
expect(subject).to receive(:install_puppet_agent_on).with(hosts, version: nil)
|
158
|
+
expect(subject).to receive(:add_aio_defaults_on).with(hosts)
|
159
|
+
expect(subject).to receive(:add_puppet_paths_on).with(hosts)
|
160
|
+
subject.run_puppet_install_helper_on(hosts)
|
161
|
+
end
|
162
|
+
end
|
163
|
+
['puppet5', 'puppet6-nightly'].each do |collection|
|
164
|
+
context "with #{collection} collection" do
|
165
|
+
it "installs puppet-agent from #{collection} repo" do
|
166
|
+
ENV['BEAKER_PUPPET_COLLECTION'] = collection
|
167
|
+
expect(subject).to receive(:install_puppet_agent_on).with(hosts, version: nil)
|
168
|
+
expect(subject).to receive(:add_aio_defaults_on).with(hosts)
|
169
|
+
expect(subject).to receive(:add_puppet_paths_on).with(hosts)
|
170
|
+
subject.run_puppet_install_helper_on(hosts)
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
174
|
+
context 'with a specific development sha' do
|
175
|
+
it 'uses a development repo' do
|
176
|
+
ENV['BEAKER_PUPPET_AGENT_SHA'] = '0ed2bbc918326263da9d97d0361a9e9303b52938'
|
177
|
+
expect(subject).to receive(:install_puppet_agent_dev_repo_on).with(hosts, puppet_agent_sha: '0ed2bbc918326263da9d97d0361a9e9303b52938', puppet_agent_version: '0ed2bbc918326263da9d97d0361a9e9303b52938')
|
178
|
+
expect(subject).to receive(:add_aio_defaults_on).with(hosts)
|
179
|
+
expect(subject).to receive(:add_puppet_paths_on).with(hosts)
|
180
|
+
subject.run_puppet_install_helper_on(hosts)
|
181
|
+
end
|
182
|
+
it 'uses a development repo with suite version and sha' do
|
183
|
+
ENV['BEAKER_PUPPET_AGENT_SHA'] = '0ed2bbc918326263da9d97d0361a9e9303b52938'
|
184
|
+
ENV['PUPPET_AGENT_SUITE_VERSION'] = '5.5.0.152.g0ed2bbc'
|
185
|
+
expect(subject).to receive(:install_puppet_agent_dev_repo_on).with(hosts, puppet_agent_sha: '0ed2bbc918326263da9d97d0361a9e9303b52938', puppet_agent_version: '5.5.0.152.g0ed2bbc')
|
186
|
+
expect(subject).to receive(:add_aio_defaults_on).with(hosts)
|
187
|
+
expect(subject).to receive(:add_puppet_paths_on).with(hosts)
|
188
|
+
subject.run_puppet_install_helper_on(hosts)
|
189
|
+
end
|
190
|
+
end
|
131
191
|
end
|
132
192
|
end
|
133
193
|
context 'for PE' do
|
194
|
+
it 'uses PE when default is a pe host' do
|
195
|
+
expect(subject).to receive(:default).and_return(hosts[1])
|
196
|
+
expect(subject).to receive(:install_pe_on).with(hosts, 'pe_ver' => nil)
|
197
|
+
subject.run_puppet_install_helper_on(hosts)
|
198
|
+
end
|
134
199
|
it 'uses PE explicitly' do
|
135
200
|
ENV['PUPPET_INSTALL_TYPE'] = 'pe'
|
136
201
|
expect(subject).to receive(:install_pe_on).with(hosts, 'pe_ver' => nil)
|
@@ -153,41 +218,5 @@ describe 'Beaker::PuppetInstallHelper' do
|
|
153
218
|
subject.run_puppet_install_helper_on(hosts)
|
154
219
|
end
|
155
220
|
end
|
156
|
-
context 'for puppet-agent' do
|
157
|
-
it 'uses agent explicitly' do
|
158
|
-
ENV['PUPPET_INSTALL_TYPE'] = 'agent'
|
159
|
-
expect(subject).to receive(:install_puppet_agent_on).with(hosts, version: nil)
|
160
|
-
expect(subject).to receive(:add_aio_defaults_on).with(hosts)
|
161
|
-
expect(subject).to receive(:add_puppet_paths_on).with(hosts)
|
162
|
-
subject.run_puppet_install_helper_on(hosts)
|
163
|
-
end
|
164
|
-
it 'uses foss with a version' do
|
165
|
-
ENV['PUPPET_INSTALL_TYPE'] = 'agent'
|
166
|
-
ENV['PUPPET_INSTALL_VERSION'] = '1.1.0'
|
167
|
-
expect(subject).to receive(:install_puppet_agent_on).with(hosts, version: '1.1.0')
|
168
|
-
expect(subject).to receive(:add_aio_defaults_on).with(hosts)
|
169
|
-
expect(subject).to receive(:add_puppet_paths_on).with(hosts)
|
170
|
-
subject.run_puppet_install_helper_on(hosts)
|
171
|
-
end
|
172
|
-
end
|
173
|
-
context 'for puppet-agent development repo' do
|
174
|
-
before :each do
|
175
|
-
ENV['PUPPET_INSTALL_TYPE'] = 'agent'
|
176
|
-
ENV['PUPPET_AGENT_SHA'] = 'abc123'
|
177
|
-
end
|
178
|
-
it 'uses a development repo' do
|
179
|
-
expect(subject).to receive(:install_puppet_agent_dev_repo_on).with(hosts, puppet_collection: 'PC1', puppet_agent_sha: 'abc123', puppet_agent_version: 'abc123')
|
180
|
-
expect(subject).to receive(:add_aio_defaults_on).with(hosts)
|
181
|
-
expect(subject).to receive(:add_puppet_paths_on).with(hosts)
|
182
|
-
subject.run_puppet_install_helper_on(hosts)
|
183
|
-
end
|
184
|
-
it 'uses a development repo with suite version' do
|
185
|
-
ENV['PUPPET_AGENT_SUITE_VERSION'] = '1.0.0.0.gabc123'
|
186
|
-
expect(subject).to receive(:install_puppet_agent_dev_repo_on).with(hosts, puppet_collection: 'PC1', puppet_agent_sha: 'abc123', puppet_agent_version: '1.0.0.0.gabc123')
|
187
|
-
expect(subject).to receive(:add_aio_defaults_on).with(hosts)
|
188
|
-
expect(subject).to receive(:add_puppet_paths_on).with(hosts)
|
189
|
-
subject.run_puppet_install_helper_on(hosts)
|
190
|
-
end
|
191
|
-
end
|
192
221
|
end
|
193
222
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaker-puppet_install_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppetlabs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -81,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
81
|
version: '0'
|
82
82
|
requirements: []
|
83
83
|
rubyforge_project:
|
84
|
-
rubygems_version: 2.
|
84
|
+
rubygems_version: 2.6.14
|
85
85
|
signing_key:
|
86
86
|
specification_version: 4
|
87
87
|
summary: Puppet install helper for Beaker
|