kitchen-puppet 1.42.0 → 1.43.1

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: 612d8ffa9a140268a1aa5d8bd0dd335b00c4c5d1
4
- data.tar.gz: 634e67b35ab51758ffd111fc268c0b179fa6c8d5
3
+ metadata.gz: e913481016895e945afb71d289cfdb28f659572f
4
+ data.tar.gz: 0cd76403d1c5e7ab4c6e83954679e99400a5f3f1
5
5
  SHA512:
6
- metadata.gz: 52a2b4af541214d2780aab40c7abd36e73a09e7d065ad681de4925048d54c3c8b3b44e145d4f1a32c0737c30b19473f4ac2f6d1b0ad99ba43e6d0f49270f8a96
7
- data.tar.gz: e34bf9843ce22a773b76f69feffa666e5afd92739b3117796d6e3eb3f7a4d2f496f11ab7c61bf98d125812320cc8c520a666c5fd785104bb247e27585034c2f9
6
+ metadata.gz: e962188077f822eabd2d14aaadcc8ffbb217009a1e024bc87efba2d90904a2be8bf99624259f407464d48adeb9e3adc2e7369c57beff5f001a0fb95b185cf293
7
+ data.tar.gz: 676923046eb3466948e53bc3104340261155c370f8e21368ed857680a73a83e50c0945911c516e7c55a041520423f100575902edd0795991d6a147201fc8a9ec
data/README.md CHANGED
@@ -61,6 +61,16 @@ For PuppetAgent a server with a puppet master is required that can resolve the h
61
61
 
62
62
  You can also use the PuppetApply driver with a docker container, provided the necessary box requirements to install puppet are included inside the container. The easiest way to do this is to supply Kitchen-Docker with a custom dockerfile to install the needed dependencies for puppet installation.
63
63
 
64
+ ## Windows Support
65
+
66
+ There is windows/winrm support, currently not all functionality is supported.
67
+ * `require_chef_for_busser: false` (it is possible to call rspec over winrm to run the tests)
68
+ * `resolve_with_librarian_puppet: false` (librarian-puppet is not working on windows server)
69
+
70
+ Sample Puppet Repositories
71
+ * A sample hello world example puppet repository: https://github.com/neillturner/puppet_windows_repo
72
+ * A more extensive sample installing virtualbox on windows: https://github.com/red-gate/puppet-virtualbox_windows
73
+
64
74
  ## Test-Kitchen Serverspec
65
75
 
66
76
  To run the verify step with the test-kitchen serverspec setup your puppet repository as follows:
@@ -136,7 +146,7 @@ To implement this with test-kitchen setup the puppet repository with:
136
146
 
137
147
  * the spec_helper in the spec folder.
138
148
 
139
- * install kitchen-verifier-serverspec on your workstation i.e. 'gem install kitchen-verifier-serverspec'
149
+ * install kitchen-verifier-serverspec on your workstation i.e. 'gem install kitchen-verifier-serverspec'
140
150
 
141
151
 
142
152
  See example [https://github.com/neillturner/puppet_repo](https://github.com/neillturner/puppet_repo)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Kitchen
4
4
  module Puppet
5
- VERSION = '1.42.0'.freeze
5
+ VERSION = '1.43.1'.freeze
6
6
  end
7
7
  end
@@ -64,6 +64,7 @@ module Kitchen
64
64
  default_config :puppet_logdest, nil
65
65
  default_config :custom_install_command, nil
66
66
  default_config :custom_pre_install_command, nil
67
+ default_config :custom_pre_apply_command, nil
67
68
  default_config :puppet_whitelist_exit_code, nil
68
69
  default_config :require_puppet_omnibus, false
69
70
  default_config :puppet_omnibus_url, 'https://raw.githubusercontent.com/petems/puppet-install-shell/master/install_puppet.sh'
@@ -216,6 +217,23 @@ module Kitchen
216
217
  #{install_busser}
217
218
  #{custom_install_command}
218
219
  INSTALL
220
+ when /^windows.*/
221
+ info("Installing puppet on #{puppet_platform}")
222
+ <<-INSTALL
223
+ if(Get-Command puppet -ErrorAction 0) { return; }
224
+ if( [Environment]::Is64BitOperatingSystem ) {
225
+ $MsiUrl = "https://downloads.puppetlabs.com/windows/puppet-#{puppet_windows_version}-x64.msi"
226
+ } else {
227
+ $MsiUrl = "https://downloads.puppetlabs.com/windows/puppet-#{puppet_windows_version}.msi"
228
+ }
229
+ $process = Start-Process -FilePath msiexec.exe -Wait -PassThru -ArgumentList '/qn', '/norestart', '/i', $MsiUrl
230
+ if ($process.ExitCode -ne 0) {
231
+ Write-Host "Installer failed."
232
+ Exit 1
233
+ }
234
+
235
+ #{install_busser}
236
+ INSTALL
219
237
  else
220
238
  info('Installing puppet, will try to determine platform os')
221
239
  # need to add a CR to avoid trouble with proxy settings concatenation
@@ -340,7 +358,19 @@ module Kitchen
340
358
 
341
359
  def install_busser
342
360
  return unless config[:require_chef_for_busser]
343
- <<-INSTALL
361
+ info("Install busser on #{puppet_platform}")
362
+ case puppet_platform
363
+ when /^windows.*/
364
+ # https://raw.githubusercontent.com/opscode/knife-windows/master/lib/chef/knife/bootstrap/windows-chef-client-msi.erb
365
+ <<-INSTALL
366
+ $webclient = New-Object System.Net.WebClient; $webclient.DownloadFile('https://opscode-omnibus-packages.s3.amazonaws.com/windows/2008r2/x86_64/chef-windows-11.12.8-1.windows.msi','chef-windows-11.12.8-1.windows.msi')
367
+ msiexec /qn /i chef-windows-11.12.8-1.windows.msi
368
+
369
+ cmd.exe /C "SET PATH=%PATH%;`"C:\\opscode\\chef\\embedded\\bin`";`"C:\\tmp\\busser\\gems\\bin`""
370
+
371
+ INSTALL
372
+ else
373
+ <<-INSTALL
344
374
  #{Util.shell_helpers}
345
375
  # install chef omnibus so that busser works as this is needed to run tests :(
346
376
  # TODO: work out how to install enough ruby
@@ -354,7 +384,8 @@ module Kitchen
354
384
  do_download #{chef_url} /tmp/install.sh
355
385
  #{sudo('sh')} /tmp/install.sh
356
386
  fi
357
- INSTALL
387
+ INSTALL
388
+ end
358
389
  end
359
390
 
360
391
  def install_omnibus_command
@@ -434,14 +465,17 @@ module Kitchen
434
465
  end
435
466
 
436
467
  def init_command
437
- dirs = %w(modules manifests files hiera hiera.yaml facter spec enc)
438
- .map { |dir| File.join(config[:root_path], dir) }.join(' ')
439
- cmd = "#{sudo('rm')} -rf #{dirs} #{hiera_data_remote_path} \
440
- /etc/hiera.yaml #{puppet_dir}/hiera.yaml \
441
- #{spec_files_remote_path} \
442
- #{puppet_dir}/fileserver.conf;"
443
- cmd += config[:puppet_environment] ? "#{sudo('rm')} -f #{File.join(puppet_dir, config[:puppet_environment])};" : ''
444
- cmd += " mkdir -p #{config[:root_path]}; #{sudo('mkdir')} -p #{puppet_dir}"
468
+ todelete = %w(modules manifests files hiera hiera.yaml facter spec enc)
469
+ .map { |dir| File.join(config[:root_path], dir) }
470
+ todelete += [hiera_data_remote_path,
471
+ '/etc/hiera.yaml',
472
+ "#{puppet_dir}/hiera.yaml",
473
+ spec_files_remote_path.to_s,
474
+ "#{puppet_dir}/fileserver.conf"]
475
+ todelete += File.join(puppet_dir, config[:puppet_environment]) if config[:puppet_environment]
476
+ cmd = "#{sudo(rm_command_paths(todelete))};"
477
+ cmd += " #{mkdir_command} #{config[:root_path]};"
478
+ cmd += " #{sudo(mkdir_command)} #{puppet_dir}"
445
479
  debug(cmd)
446
480
  cmd
447
481
  end
@@ -506,7 +540,7 @@ module Kitchen
506
540
 
507
541
  if puppet_config
508
542
  commands << [
509
- sudo('cp'),
543
+ sudo(cp_command),
510
544
  File.join(config[:root_path], 'puppet.conf'),
511
545
  puppet_dir
512
546
  ].join(' ')
@@ -514,17 +548,17 @@ module Kitchen
514
548
 
515
549
  if hiera_config
516
550
  commands << [
517
- sudo('cp'), File.join(config[:root_path], 'hiera.yaml'), '/etc/'
551
+ sudo(cp_command), File.join(config[:root_path], 'hiera.yaml'), '/etc/'
518
552
  ].join(' ')
519
553
 
520
554
  commands << [
521
- sudo('cp'), File.join(config[:root_path], 'hiera.yaml'), hiera_config_dir
555
+ sudo(cp_command), File.join(config[:root_path], 'hiera.yaml'), hiera_config_dir
522
556
  ].join(' ')
523
557
  end
524
558
 
525
559
  if fileserver_config
526
560
  commands << [
527
- sudo('cp'),
561
+ sudo(cp_command),
528
562
  File.join(config[:root_path], 'fileserver.conf'),
529
563
  puppet_dir
530
564
  ].join(' ')
@@ -532,25 +566,25 @@ module Kitchen
532
566
 
533
567
  if hiera_data && hiera_data_remote_path == '/var/lib/hiera'
534
568
  commands << [
535
- sudo('cp -r'), File.join(config[:root_path], 'hiera'), '/var/lib/'
569
+ sudo("#{cp_command} -r"), File.join(config[:root_path], 'hiera'), '/var/lib/'
536
570
  ].join(' ')
537
571
  end
538
572
 
539
573
  if hiera_data && hiera_data_remote_path != '/var/lib/hiera'
540
574
  commands << [
541
- sudo('mkdir -p'), hiera_data_remote_path
575
+ sudo(mkdir_command), hiera_data_remote_path
542
576
  ].join(' ')
543
577
  commands << [
544
- sudo('cp -r'), File.join(config[:root_path], 'hiera/*'), hiera_data_remote_path
578
+ sudo("#{cp_command} -r"), File.join(config[:root_path], 'hiera/*'), hiera_data_remote_path
545
579
  ].join(' ')
546
580
  end
547
581
 
548
582
  if hiera_eyaml
549
583
  commands << [
550
- sudo('mkdir -p'), hiera_eyaml_key_remote_path
584
+ sudo(mkdir_command), hiera_eyaml_key_remote_path
551
585
  ].join(' ')
552
586
  commands << [
553
- sudo('cp -r'), File.join(config[:root_path], 'hiera_keys/*'), hiera_eyaml_key_remote_path
587
+ sudo("#{cp_command} -r"), File.join(config[:root_path], 'hiera_keys/*'), hiera_eyaml_key_remote_path
554
588
  ].join(' ')
555
589
  end
556
590
 
@@ -562,10 +596,10 @@ module Kitchen
562
596
 
563
597
  if spec_files_path && spec_files_remote_path
564
598
  commands << [
565
- sudo('mkdir -p'), spec_files_remote_path
599
+ sudo(mkdir_command), spec_files_remote_path
566
600
  ].join(' ')
567
601
  commands << [
568
- sudo('cp -r'), File.join(config[:root_path], 'spec/*'), spec_files_remote_path
602
+ sudo("#{cp_command} -r"), File.join(config[:root_path], 'spec/*'), spec_files_remote_path
569
603
  ].join(' ')
570
604
  end
571
605
 
@@ -575,7 +609,7 @@ module Kitchen
575
609
  ].join(' ')
576
610
  end
577
611
 
578
- command = commands.join(' && ')
612
+ command = powershell_shell? ? commands.join('; ') : commands.join(' && ')
579
613
  debug(command)
580
614
  command
581
615
  end
@@ -603,6 +637,12 @@ module Kitchen
603
637
  puppet_logdest_flag,
604
638
  puppet_whitelist_exit_code
605
639
  ].join(' ')
640
+ if config[:custom_pre_apply_command]
641
+ result = <<-RUN
642
+ #{config[:custom_pre_apply_command]}
643
+ #{result}
644
+ RUN
645
+ end
606
646
  info("Going to invoke puppet apply with: #{result}")
607
647
  result
608
648
  end
@@ -702,7 +742,7 @@ module Kitchen
702
742
  end
703
743
 
704
744
  def puppet_cmd
705
- puppet_bin = 'puppet'
745
+ puppet_bin = powershell_shell? ? '& "C:\Program Files\Puppet Labs\Puppet\bin\puppet"' : 'puppet'
706
746
  if config[:require_puppet_collections]
707
747
  puppet_bin = "#{config[:puppet_coll_remote_path]}/bin/puppet"
708
748
  end
@@ -715,19 +755,15 @@ module Kitchen
715
755
  end
716
756
 
717
757
  def puppet_dir
718
- if config[:require_puppet_collections]
719
- '/etc/puppetlabs/puppet'
720
- else
721
- '/etc/puppet'
722
- end
758
+ return '/etc/puppetlabs/puppet' if config[:require_puppet_collections]
759
+ return '/etc/puppet' unless powershell_shell?
760
+ 'C:/ProgramData/PuppetLabs/puppet/etc'
723
761
  end
724
762
 
725
763
  def hiera_config_dir
726
- if config[:require_puppet_collections]
727
- '/etc/puppetlabs/code'
728
- else
729
- '/etc/puppet'
730
- end
764
+ return '/etc/puppetlabs/code' if config[:require_puppet_collections]
765
+ return '/etc/puppet' unless powershell_shell?
766
+ 'C:/ProgramData/PuppetLabs/puppet/etc'
731
767
  end
732
768
 
733
769
  def puppet_debian_version
@@ -750,6 +786,10 @@ module Kitchen
750
786
  end
751
787
  end
752
788
 
789
+ def puppet_windows_version
790
+ config[:puppet_version] ? config[:puppet_version].to_s : '3.8.6'
791
+ end
792
+
753
793
  def puppet_environment_flag
754
794
  if config[:puppet_version] =~ /^2/
755
795
  config[:puppet_environment] ? "--environment=#{config[:puppet_environment]}" : nil
@@ -761,6 +801,7 @@ module Kitchen
761
801
  def puppet_manifestdir
762
802
  return nil if config[:require_puppet_collections]
763
803
  return nil if config[:puppet_environment]
804
+ return nil if powershell_shell?
764
805
  bash_vars = "export MANIFESTDIR='#{File.join(config[:root_path], 'manifests')}';"
765
806
  debug(bash_vars)
766
807
  bash_vars
@@ -837,10 +878,15 @@ module Kitchen
837
878
  def custom_facts
838
879
  return nil if config[:custom_facts].none?
839
880
  return nil if config[:install_custom_facts]
840
- bash_vars = config[:custom_facts].map { |k, v| "FACTER_#{k}=#{v}" }.join(' ')
841
- bash_vars = "export #{bash_vars};"
842
- debug(bash_vars)
843
- bash_vars
881
+ if powershell_shell?
882
+ environment_vars = config[:custom_facts].map { |k, v| "$env:FACTER_#{k}='#{v}'" }.join('; ')
883
+ environment_vars = "#{environment_vars};"
884
+ else
885
+ environment_vars = config[:custom_facts].map { |k, v| "FACTER_#{k}=#{v}" }.join(' ')
886
+ environment_vars = "export #{environment_vars};"
887
+ end
888
+ debug(environment_vars)
889
+ environment_vars
844
890
  end
845
891
 
846
892
  def puppet_enc_flag
@@ -856,7 +902,13 @@ module Kitchen
856
902
  end
857
903
 
858
904
  def puppet_whitelist_exit_code
859
- config[:puppet_whitelist_exit_code] ? "; [ $? -eq #{config[:puppet_whitelist_exit_code]} ] && exit 0" : nil
905
+ if config[:puppet_whitelist_exit_code].nil?
906
+ return powershell_shell? ? '; exit $LASTEXITCODE' : nil
907
+ elsif powershell_shell?
908
+ return "; if(@(#{[config[:puppet_whitelist_exit_code]].join(', ')}) -contains $LASTEXITCODE) {exit 0} else {exit $LASTEXITCODE}"
909
+ else
910
+ return "; [ $? -eq #{config[:puppet_whitelist_exit_code]} ] && exit 0"
911
+ end
860
912
  end
861
913
 
862
914
  def puppet_apt_repo
@@ -1004,14 +1056,10 @@ module Kitchen
1004
1056
  debug('Found multiple directories in module path merging.....')
1005
1057
  modules_array = modules.split(':')
1006
1058
  modules_array.each do |m|
1007
- if File.directory?(m)
1008
- debug("Copying modules from #{m} to #{tmpmodules_dir}")
1009
- FileUtils.cp_r(Dir.glob("#{m}/*"), tmpmodules_dir, remove_destination: true)
1010
- end
1059
+ copy_modules(m, tmpmodules_dir)
1011
1060
  end
1012
- elsif modules && File.directory?(modules)
1013
- debug("Copying modules from #{modules} to #{tmpmodules_dir}")
1014
- FileUtils.cp_r(Dir.glob("#{modules}/*"), tmpmodules_dir, remove_destination: true)
1061
+ elsif modules
1062
+ copy_modules(modules, tmpmodules_dir)
1015
1063
  else
1016
1064
  info 'nothing to do for modules'
1017
1065
  end
@@ -1019,6 +1067,21 @@ module Kitchen
1019
1067
  copy_self_as_module
1020
1068
  end
1021
1069
 
1070
+ def copy_modules(source, destination)
1071
+ return unless File.directory?(source)
1072
+
1073
+ debug("Copying modules from #{source} to #{destination}")
1074
+
1075
+ excluded_paths = %w(modules spec pkg) + config[:ignored_paths_from_root]
1076
+
1077
+ Dir.glob("#{source}/*").each do |f|
1078
+ module_name = File.basename(f)
1079
+ target = "#{destination}/#{module_name}"
1080
+ FileUtils.mkdir_p(target) unless File.exist? target
1081
+ FileUtils.cp_r(Dir.glob("#{source}/#{module_name}/*").reject { |entry| entry =~ /#{excluded_paths.join('$|')}$/ }, target, remove_destination: true)
1082
+ end
1083
+ end
1084
+
1022
1085
  def copy_self_as_module
1023
1086
  if File.exist?(modulefile)
1024
1087
  warn('Modulefile found but this is depricated, ignoring it, see https://tickets.puppetlabs.com/browse/PUP-1188')
@@ -1111,6 +1174,27 @@ module Kitchen
1111
1174
  ENV['SSL_CERT_FILE'] = '' if librarian_puppet_ssl_file
1112
1175
  end
1113
1176
  end
1177
+
1178
+ def cp_command
1179
+ return 'cp -force' if powershell_shell?
1180
+ 'cp'
1181
+ end
1182
+
1183
+ def rm_command
1184
+ return 'rm -force -recurse' if powershell_shell?
1185
+ 'rm -rf'
1186
+ end
1187
+
1188
+ def mkdir_command
1189
+ return 'mkdir -force -path' if powershell_shell?
1190
+ 'mkdir -p'
1191
+ end
1192
+
1193
+ def rm_command_paths(paths)
1194
+ return :nil if paths.length.zero?
1195
+ return "#{rm_command} \"#{paths.join('", "')}\"" if powershell_shell?
1196
+ "#{rm_command} #{paths.join(' ')}"
1197
+ end
1114
1198
  end
1115
1199
  end
1116
1200
  end
@@ -6,83 +6,90 @@ Kitchen-puppet is very flexible in how it installs puppet:
6
6
  It installs it in the following order:
7
7
 
8
8
  * if require_puppet_omnibus is set to true
9
- Installs using the omnibus_puppet script and passes the puppet_version if specied as -v option.
9
+
10
+ Installs using the omnibus_puppet script and passes the puppet_version if specied as -v option.
11
+
10
12
  * If require_puppet_collections is set to true
11
- Install from the puppet collection.
12
- This is required if you wish to install puppet version 4.
13
- You get the version of puppet in the collection. To influence which puppet version is install modify either
14
- puppet_yum_collections_repo
15
- puppet_apt_collections_repo
16
- to an new collection. At time of writing there was only one collection PC1.
13
+
14
+ Installs from the puppet collection.
15
+ This is required if you wish to install puppet version 4.
16
+
17
+ You get the version of puppet in the collection. To influence which puppet version is install modify either
18
+ * puppet_yum_collections_repo
19
+ * puppet_apt_collections_repo
20
+ to an new collection. At time of writing there was only one collection PC1.
21
+
17
22
  * if require_puppet_repo is set to true (the default)
18
- Installs from the operation system repository with the puppet version that is in the particular repository.
23
+
24
+ Installs from the operation system repository with the puppet version that is in the particular repository.
19
25
 
20
26
  # Puppet Apply Provisioner Options
21
27
 
22
28
  key | default value | Notes
23
29
  ----|---------------|--------
24
- puppet_version | "latest"| desired version, affects apt installs.
30
+ chef_bootstrap_url |"https://www.getchef.com/chef/install.sh"| the chef (needed for busser to run tests) NOTE: kitchen 1.4 only requires ruby to run busser so this is not required.
31
+ custom_facts| Hash.new | Hash to set the puppet facts before running puppet apply
32
+ custom_options | | custom options to add to puppet apply command.
33
+ custom_install_command | nil | Custom shell command to be used at end of install stage. Can be multiline. See examples below.
34
+ custom_pre_apply_command | nil | Custom shell command to be used before the puppet apply stage. Can be multiline. See examples below.
35
+ custom_pre_install_command | nil | Custom shell command to be used at beginning of install stage. Can be multiline.
36
+ facter_file | nil | yaml file of custom facter_files to be provided to the puppet-apply command
25
37
  facter_version | "latest"| desired version, affects apt installs.
26
- platform | platform_name kitchen.yml parameter | OS platform of server
27
- hiera_version | "latest"| desired version, affects apt installs.
28
- install_hiera | false | Installs `hiera-puppet` package. Not needed for puppet > 3.x.x
29
- hiera_package | 'hiera-puppet' | Only used if `install_hiera` is set
30
- require_puppet_repo | true | Set if using a puppet install from yum or apt repo
31
- puppet_apt_repo | "http://apt.puppetlabs.com/puppetlabs-release-precise.deb"| apt repo Ubuntu12
32
- _for Ubuntu15 change to_ | "http://apt.puppetlabs.com/puppetlabs-release-jessie.deb" |
33
- puppet_yum_repo | "https://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm"| yum repo RH/Centos6
34
- _for RH/Centos7 change to_ | "https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm" |
35
- require_puppet_collections | false | Set if using puppet collections install (Puppet v4)
36
- puppet_yum_collections_repo | "http://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm" | yum collections repo RH/Centos6
37
- _for RH/Centos7 change to_ | "https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm" |
38
- puppet_apt_collections_repo | "http://apt.puppetlabs.com/puppetlabs-release-pc1-wheezy.deb" | apt collections repo
39
- _for Ubuntu15 change to_ | "http://apt.puppetlabs.com/puppetlabs-release-pc1-jessie.deb" |
40
- puppet_coll_remote_path | "/opt/puppetlabs" | Server Installation location of a puppet collections install.
41
- puppet_detailed_exitcodes | nil | Provide transaction information via exit codes. See `--detailed-exitcodes` section of `puppet help apply`
42
- manifests_path | | puppet repo manifests directory
43
- manifest | 'site.pp' | manifest for puppet apply to run
44
- modules_path | | puppet repo manifests directory. Can be multiple directories separated by colons and then they will be merged
45
38
  files_path | | directory to place at /tmp/kitchen/files
46
39
  fileserver_config_path | | file to place fileserver.conf
47
40
  hiera_config_path | | path to hiera.yaml
48
41
  hiera_data_path | | puppet repo hiera data directory
49
42
  hiera_data_remote_path | "/var/lib/hiera" | Hiera data directory on server
50
- puppet_debug| false| Enable full debugging logging on puppet run
51
- puppet_verbose| false| Extra information logging on puppet run
52
- puppet_noop| false| puppet runs in a no-op or dry-run mode
53
- puppet_git_init | nil | initialize puppet from GIT repository, e.g. "git@github.com:example/puppet-repo.git"
54
- puppet_git_pr | nil | checkout specific Pull Request from repository specified in puppet_git_init, e.g. "324"
55
- update_package_repos| true| update OS repository metadata
56
- custom_facts| Hash.new | Hash to set the puppet facts before running puppet apply
57
- install_custom_facts| false | Install custom facts to yaml file at "/tmp/kitchen/facter/kitchen.rb"
58
- facter_file | nil | yaml file of custom facter_files to be provided to the puppet-apply command
59
- chef_bootstrap_url |"https://www.getchef.com/chef/install.sh"| the chef (needed for busser to run tests) NOTE: kitchen 1.4 only requires ruby to run busser so this is not required.
60
- puppetfile_path | | Path to Puppetfile
61
- puppet_apply_command | nil | Overwrite the puppet apply command. Needs "sudo -E puppet apply" as a prefix.
62
- require_chef_for_busser | true | Install chef as currently needed by busser to run tests
63
- resolve_with_librarian_puppet | true | Use librarian_puppet to resolve modules if a Puppetfile is found
64
- librarian_puppet_ssl_file | nil | ssl certificate file for librarian-puppet
65
- puppet_config_path | | path of custom puppet.conf file
66
- puppet_environment | nil | puppet environment for running puppet apply (Must set if using Puppet v4)
67
- remove_puppet_repo | false | remove copy of puppet repository and puppet configuration on server after running puppet
43
+ hiera_deep_merge | false | install the deep_merge gem to support hiera deep merge mode
68
44
  hiera_eyaml | false | use hiera-eyaml to encrypt hiera data
69
45
  hiera_eyaml_key_remote_path | "/etc/puppet/secure/keys" | directory of hiera-eyaml keys on server
70
46
  hiera_eyaml_key_path | "hiera_keys" | directory of hiera-eyaml keys on workstation
71
- hiera_deep_merge | false | install the deep_merge gem to support hiera deep merge mode
47
+ hiera_package | 'hiera-puppet' | Only used if `install_hiera` is set
48
+ hiera_version | "latest"| desired version, affects apt installs.
72
49
  http_proxy | nil | use http proxy when installing puppet, packages and running puppet
73
50
  https_proxy | nil | use https proxy when installing puppet, packages and running puppet
51
+ ignored_paths_from_root | [] | allow extra paths to be ignored when copying from puppet repository
52
+ ignore_spec_fixtures | false | don't copy spec/fixtures to avoid problems with symlinks
53
+ install_custom_facts| false | Install custom facts to yaml file at "/tmp/kitchen/facter/kitchen.rb"
54
+ install_hiera | false | Installs `hiera-puppet` package. Not needed for puppet > 3.x.x
55
+ librarian_puppet_ssl_file | nil | ssl certificate file for librarian-puppet
56
+ manifest | 'site.pp' | manifest for puppet apply to run
57
+ manifests_path | | puppet repo manifests directory
58
+ modules_path | | puppet repo manifests directory. Can be multiple directories separated by colons and then they will be merged
59
+ platform | platform_name kitchen.yml parameter | OS platform of server
60
+ puppet_apply_command | nil | Overwrite the puppet apply command. Needs "sudo -E puppet apply" as a prefix.
61
+ puppet_apt_repo | "http://apt.puppetlabs.com/puppetlabs-release-precise.deb"| apt repo Ubuntu12
62
+ _for Ubuntu15 change to_ | "http://apt.puppetlabs.com/puppetlabs-release-jessie.deb" |
63
+ puppet_apt_collections_repo | "http://apt.puppetlabs.com/puppetlabs-release-pc1-wheezy.deb" | apt collections repo
64
+ _for Ubuntu15 change to_ | "http://apt.puppetlabs.com/puppetlabs-release-pc1-jessie.deb" |
65
+ puppet_coll_remote_path | "/opt/puppetlabs" | Server Installation location of a puppet collections install.
66
+ puppet_config_path | | path of custom puppet.conf file
67
+ puppet_debug| false| Enable full debugging logging on puppet run
68
+ puppet_detailed_exitcodes | nil | Provide transaction information via exit codes. See `--detailed-exitcodes` section of `puppet help apply`
69
+ puppet_enc | | path for external node classifier script
70
+ puppet_environment | nil | puppet environment for running puppet apply (Must set if using Puppet v4)
71
+ puppet_git_init | nil | initialize puppet from GIT repository, e.g. "git@github.com:example/puppet-repo.git"
72
+ puppet_git_pr | nil | checkout specific Pull Request from repository specified in puppet_git_init, e.g. "324"
74
73
  puppet_logdest | nil | _Array_ of log destinations. Include 'console' if wanted
75
- custom_options | | custom options to add to puppet apply command.
76
- custom_pre_install_command | nil | Custom shell command to be used at beginning of install stage. Can be multiline.
77
- custom_install_command | nil | Custom shell command to be used at end of install stage. Can be multiline. See examples below.
78
- puppet_whitelist_exit_code | nil | Whitelist exit code expected from puppet run. Intended to be used together with `puppet_detailed_exitcodes`.
79
- require_puppet_omnibus | false | Set if using omnibus puppet install
80
74
  puppet_omnibus_url | https://raw.githubusercontent.com/ petems/puppet-install-shell/ master/install_puppet.sh | omnibus puppet v3 install location.
81
75
  _for puppet v4 change to_ | https://raw.githubusercontent.com/ petems/puppet-install-shell/ master/install_puppet_agent.sh |
82
- puppet_enc | | path for external node classifier script
76
+ puppet_noop| false| puppet runs in a no-op or dry-run mode
83
77
  puppet_no_sudo | false | allow puppet command to run without sudo if required
84
- ignore_spec_fixtures | false | don't copy spec/fixtures to avoid problems with symlinks
85
- ignored_paths_from_root | [] | allow extra paths to be ignored when copying from puppet repository
78
+ puppet_verbose| false| Extra information logging on puppet run
79
+ puppet_version | "latest"| desired version, affects apt installs.
80
+ puppet_whitelist_exit_code | nil | Whitelist exit code expected from puppet run. Intended to be used together with `puppet_detailed_exitcodes`.
81
+ puppet_yum_repo | "https://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm"| yum repo RH/Centos6
82
+ _for RH/Centos7 change to_ | "https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm" |
83
+ puppet_yum_collections_repo | "http://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm" | yum collections repo RH/Centos6
84
+ _for RH/Centos7 change to_ | "https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm" |
85
+ puppetfile_path | | Path to Puppetfile
86
+ remove_puppet_repo | false | remove copy of puppet repository and puppet configuration on server after running puppet
87
+ require_chef_for_busser | true | Install chef as currently needed by busser to run tests
88
+ require_puppet_collections | false | Set if using puppet collections install (Puppet v4)
89
+ require_puppet_omnibus | false | Set if using omnibus puppet install
90
+ require_puppet_repo | true | Set if using a puppet install from yum or apt repo
91
+ resolve_with_librarian_puppet | true | Use librarian_puppet to resolve modules if a Puppetfile is found
92
+ update_package_repos| true| update OS repository metadata
86
93
 
87
94
  ## Puppet Apply Configuring Provisioner Options
88
95
 
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.42.0
4
+ version: 1.43.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neill Turner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-07 00:00:00.000000000 Z
11
+ date: 2016-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen