kitchen-puppet 1.42.0 → 1.43.1

Sign up to get free protection for your applications and to get access to all the features.
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