kitchen-puppet 1.47.2 → 1.47.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/kitchen-puppet/version.rb +1 -1
- data/lib/kitchen/provisioner/puppet_agent.rb +21 -3
- data/lib/kitchen/provisioner/puppet_apply.rb +52 -35
- data/provisioner_options.md +3 -0
- 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: 6596c5f2430164122f20de74aa006ccb24ff1d05
|
4
|
+
data.tar.gz: 99b2d37ae1be0399b2dd1bf7d9e795b8f425731c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ee0dfda2fead9651e29d008c13c6ef26ab9fae9299c0411cca54cea9791a3ded09bbfee35198650214e5cf0fa578b031b0adceb734117aed06c089d594f598b
|
7
|
+
data.tar.gz: 4b754f7a4c325265aa25c8a76d2a6991da13d69246e7a5e3936f34606e952cc40e1e77416545a7dd4be352ee38e5cb30f7fd5d83b7f1d300e196693a30db6ea7
|
@@ -54,6 +54,8 @@ module Kitchen
|
|
54
54
|
default_config :puppet_agent_command, nil
|
55
55
|
|
56
56
|
default_config :http_proxy, nil
|
57
|
+
default_config :https_proxy, nil
|
58
|
+
default_config :no_proxy, nil
|
57
59
|
|
58
60
|
default_config :puppet_config_path do |provisioner|
|
59
61
|
provisioner.calculate_path('puppet.conf', :file)
|
@@ -287,7 +289,10 @@ module Kitchen
|
|
287
289
|
end
|
288
290
|
|
289
291
|
def sudo_env(pm)
|
290
|
-
|
292
|
+
s = https_proxy ? "https_proxy=#{https_proxy}" : nil
|
293
|
+
p = http_proxy ? "http_proxy=#{http_proxy}" : nil
|
294
|
+
n = no_proxy ? "no_proxy=#{no_proxy}" : nil
|
295
|
+
p || s ? "#{sudo('env')} #{p} #{s} #{n} #{pm}" : sudo(pm).to_s
|
291
296
|
end
|
292
297
|
|
293
298
|
def custom_facts
|
@@ -359,17 +364,30 @@ module Kitchen
|
|
359
364
|
end
|
360
365
|
|
361
366
|
def gem_proxy_parm
|
362
|
-
http_proxy ? "--http-proxy #{http_proxy}" : nil
|
367
|
+
p = http_proxy ? "--http-proxy #{http_proxy}" : nil
|
368
|
+
n = no_proxy ? "--no-http-proxy #{no_proxy}" : nil
|
369
|
+
p ? "#{p} #{n}" : nil
|
363
370
|
end
|
364
371
|
|
365
372
|
def wget_proxy_parm
|
366
|
-
|
373
|
+
s = https_proxy ? "-e https_proxy=#{https_proxy}" : nil
|
374
|
+
p = http_proxy ? "-e http_proxy=#{http_proxy}" : nil
|
375
|
+
n = no_proxy ? "-e no_proxy=#{no_proxy}" : nil
|
376
|
+
p || s ? "-e use_proxy=yes #{p} #{s} #{n}" : nil
|
367
377
|
end
|
368
378
|
|
369
379
|
def http_proxy
|
370
380
|
config[:http_proxy]
|
371
381
|
end
|
372
382
|
|
383
|
+
def https_proxy
|
384
|
+
config[:https_proxy]
|
385
|
+
end
|
386
|
+
|
387
|
+
def no_proxy
|
388
|
+
config[:no_proxy]
|
389
|
+
end
|
390
|
+
|
373
391
|
def chef_url
|
374
392
|
config[:chef_bootstrap_url]
|
375
393
|
end
|
@@ -78,6 +78,7 @@ module Kitchen
|
|
78
78
|
|
79
79
|
default_config :http_proxy, nil
|
80
80
|
default_config :https_proxy, nil
|
81
|
+
default_config :no_proxy, nil
|
81
82
|
|
82
83
|
default_config :ignored_paths_from_root, ['spec']
|
83
84
|
default_config :hiera_data_remote_path, '/var/lib/hiera'
|
@@ -431,6 +432,7 @@ module Kitchen
|
|
431
432
|
echo '-----> Installing Chef Omnibus to install busser to run tests'
|
432
433
|
#{export_http_proxy_parm}
|
433
434
|
#{export_https_proxy_parm}
|
435
|
+
#{export_no_proxy_parm}
|
434
436
|
do_download #{chef_url} /tmp/install.sh
|
435
437
|
#{sudo('sh')} /tmp/install.sh
|
436
438
|
fi
|
@@ -450,6 +452,7 @@ module Kitchen
|
|
450
452
|
echo "-----> Installing Puppet Omnibus"
|
451
453
|
#{export_http_proxy_parm}
|
452
454
|
#{export_https_proxy_parm}
|
455
|
+
#{export_no_proxy_parm}
|
453
456
|
do_download #{config[:puppet_omnibus_url]} /tmp/install_puppet.sh
|
454
457
|
#{sudo_env('sh')} /tmp/install_puppet.sh #{version}
|
455
458
|
fi
|
@@ -938,7 +941,8 @@ module Kitchen
|
|
938
941
|
def sudo_env(pm)
|
939
942
|
s = https_proxy ? "https_proxy=#{https_proxy}" : nil
|
940
943
|
p = http_proxy ? "http_proxy=#{http_proxy}" : nil
|
941
|
-
|
944
|
+
n = no_proxy ? "no_proxy=#{no_proxy}" : nil
|
945
|
+
p || s ? "#{sudo('env')} #{p} #{s} #{n} #{pm}" : sudo(pm).to_s
|
942
946
|
end
|
943
947
|
|
944
948
|
def remove_puppet_repo
|
@@ -1057,13 +1061,16 @@ module Kitchen
|
|
1057
1061
|
end
|
1058
1062
|
|
1059
1063
|
def gem_proxy_parm
|
1060
|
-
http_proxy ? "--http-proxy #{http_proxy}" : nil
|
1064
|
+
p = http_proxy ? "--http-proxy #{http_proxy}" : nil
|
1065
|
+
n = no_proxy ? "--no-http-proxy #{no_proxy}" : nil
|
1066
|
+
p || n ? "#{p} #{n}" : nil
|
1061
1067
|
end
|
1062
1068
|
|
1063
1069
|
def wget_proxy_parm
|
1064
1070
|
p = http_proxy ? "-e http_proxy=#{http_proxy}" : nil
|
1065
1071
|
s = https_proxy ? "-e https_proxy=#{https_proxy}" : nil
|
1066
|
-
|
1072
|
+
n = no_proxy ? "-e no_proxy=#{no_proxy}" : nil
|
1073
|
+
p || s ? "-e use_proxy=yes #{p} #{s} #{n}" : nil
|
1067
1074
|
end
|
1068
1075
|
|
1069
1076
|
def posh_proxy_parm
|
@@ -1084,6 +1091,10 @@ module Kitchen
|
|
1084
1091
|
https_proxy ? "export https_proxy=#{https_proxy}" : nil
|
1085
1092
|
end
|
1086
1093
|
|
1094
|
+
def export_no_proxy_parm
|
1095
|
+
no_proxy ? "export no_proxy=#{no_proxy}" : nil
|
1096
|
+
end
|
1097
|
+
|
1087
1098
|
def http_proxy
|
1088
1099
|
config[:http_proxy]
|
1089
1100
|
end
|
@@ -1092,6 +1103,10 @@ module Kitchen
|
|
1092
1103
|
config[:https_proxy]
|
1093
1104
|
end
|
1094
1105
|
|
1106
|
+
def no_proxy
|
1107
|
+
config[:no_proxy]
|
1108
|
+
end
|
1109
|
+
|
1095
1110
|
def chef_url
|
1096
1111
|
config[:chef_bootstrap_url]
|
1097
1112
|
end
|
@@ -1151,38 +1166,50 @@ module Kitchen
|
|
1151
1166
|
|
1152
1167
|
FileUtils.mkdir_p(tmpmodules_dir)
|
1153
1168
|
resolve_with_librarian if File.exist?(puppetfile) && config[:resolve_with_librarian_puppet]
|
1169
|
+
modules_to_copy = {}
|
1154
1170
|
|
1155
|
-
|
1156
|
-
|
1171
|
+
# If root dir (.) is a module, add it for copying
|
1172
|
+
self_name = read_self_module_name
|
1173
|
+
modules_to_copy[self_name] = '.' if self_name
|
1174
|
+
|
1175
|
+
if modules
|
1157
1176
|
modules_array = modules.split(':')
|
1158
|
-
modules_array.each do |
|
1159
|
-
|
1177
|
+
modules_array.each do |m_path|
|
1178
|
+
Dir.glob("#{m_path}/*").each do |m|
|
1179
|
+
name = File.basename(m)
|
1180
|
+
if modules_to_copy.include? name
|
1181
|
+
debug("Found duplicated module: #{name}. The path taking precedence: '#{modules_to_copy[name]}', ignoring '#{m}'")
|
1182
|
+
else
|
1183
|
+
modules_to_copy[name] = m
|
1184
|
+
end
|
1185
|
+
end
|
1160
1186
|
end
|
1161
|
-
elsif modules
|
1162
|
-
copy_modules(modules, tmpmodules_dir)
|
1163
|
-
else
|
1164
|
-
info 'nothing to do for modules'
|
1165
1187
|
end
|
1166
1188
|
|
1167
|
-
|
1189
|
+
if modules_to_copy.empty?
|
1190
|
+
info 'Nothing to do for modules'
|
1191
|
+
else
|
1192
|
+
copy_modules(modules_to_copy, tmpmodules_dir)
|
1193
|
+
end
|
1168
1194
|
end
|
1169
1195
|
|
1170
|
-
def copy_modules(
|
1171
|
-
return unless File.directory?(source)
|
1172
|
-
|
1173
|
-
debug("Copying modules from #{source} to #{destination}")
|
1174
|
-
|
1196
|
+
def copy_modules(modules, destination)
|
1175
1197
|
excluded_paths = %w(modules pkg) + config[:ignored_paths_from_root]
|
1176
|
-
|
1177
|
-
|
1178
|
-
|
1179
|
-
|
1198
|
+
debug("Copying modules to directory: #{destination}")
|
1199
|
+
modules.each do |name, source|
|
1200
|
+
next unless File.directory?(source)
|
1201
|
+
debug("Copying module #{name} from #{source}...")
|
1202
|
+
target = "#{destination}/#{name}"
|
1180
1203
|
FileUtils.mkdir_p(target) unless File.exist? target
|
1181
|
-
FileUtils.cp_r(
|
1204
|
+
FileUtils.cp_r(
|
1205
|
+
Dir.glob("#{source}/*").reject { |entry| entry =~ /#{excluded_paths.join('$|')}$/ },
|
1206
|
+
target,
|
1207
|
+
remove_destination: true
|
1208
|
+
)
|
1182
1209
|
end
|
1183
1210
|
end
|
1184
1211
|
|
1185
|
-
def
|
1212
|
+
def read_self_module_name
|
1186
1213
|
if File.exist?(modulefile)
|
1187
1214
|
warn('Modulefile found but this is deprecated, ignoring it, see https://tickets.puppetlabs.com/browse/PUP-1188')
|
1188
1215
|
end
|
@@ -1192,20 +1219,10 @@ module Kitchen
|
|
1192
1219
|
begin
|
1193
1220
|
module_name = JSON.parse(IO.read(metadata_json))['name'].split('-').last
|
1194
1221
|
rescue
|
1195
|
-
error("not able to load or parse #{
|
1222
|
+
error("not able to load or parse #{metadata_json} for the name of the module")
|
1196
1223
|
end
|
1197
1224
|
|
1198
|
-
|
1199
|
-
module_target_path = File.join(sandbox_path, 'modules', module_name)
|
1200
|
-
FileUtils.mkdir_p(module_target_path)
|
1201
|
-
|
1202
|
-
excluded_paths = %w(modules pkg) + config[:ignored_paths_from_root]
|
1203
|
-
|
1204
|
-
FileUtils.cp_r(
|
1205
|
-
Dir.glob(File.join(config[:kitchen_root], '*')).reject { |entry| entry =~ /#{excluded_paths.join('$|')}$/ },
|
1206
|
-
module_target_path,
|
1207
|
-
remove_destination: true
|
1208
|
-
)
|
1225
|
+
module_name
|
1209
1226
|
end
|
1210
1227
|
|
1211
1228
|
def prepare_puppet_config
|
data/provisioner_options.md
CHANGED
@@ -62,6 +62,7 @@ manifest | 'site.pp' | manifest for puppet apply to run
|
|
62
62
|
manifests_path | | puppet repo manifests directory
|
63
63
|
max_retries| 1 | maximum number of retry attempts of converge command
|
64
64
|
modules_path | | puppet repo manifests directory. Can be multiple directories separated by colons and then they will be merged
|
65
|
+
no_proxy | nil | list of URLs or IPs that should be excluded from proxying
|
65
66
|
platform | platform_name kitchen.yml parameter | OS platform of server
|
66
67
|
puppet_apply_command | nil | Overwrite the puppet apply command. Needs "sudo -E puppet apply" as a prefix.
|
67
68
|
puppet_apt_repo | "http://apt.puppetlabs.com/puppetlabs-release-precise.deb"| apt repo Ubuntu12 see https://apt.puppetlabs.com for others
|
@@ -227,6 +228,8 @@ puppet_agent_command | nil | Overwrite the puppet agent command. Needs "sudo -E
|
|
227
228
|
require_chef_for_busser | true | Install chef as currently needed by busser to run tests. NOTE: kitchen 1.4 only requires ruby to run busser so this is not required.
|
228
229
|
puppet_config_path | | path of custom puppet.conf file
|
229
230
|
http_proxy | nil | use http proxy when installing puppet and packages
|
231
|
+
https_proxy | nil | use https proxy when installing puppet and packages
|
232
|
+
no_proxy | nil | list of URLs or IPs that should be excluded from proxying
|
230
233
|
ignore_spec_fixtures | | ignore spec/fixtures directory
|
231
234
|
|
232
235
|
NOTE: Puppet Collections Support not in puppet agent yet
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen-puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.47.
|
4
|
+
version: 1.47.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Neill Turner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: test-kitchen
|
@@ -80,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
80
|
version: '0'
|
81
81
|
requirements: []
|
82
82
|
rubyforge_project: "[none]"
|
83
|
-
rubygems_version: 2.
|
83
|
+
rubygems_version: 2.4.5.1
|
84
84
|
signing_key:
|
85
85
|
specification_version: 4
|
86
86
|
summary: puppet provisioner for test-kitchen
|