New Upstream Snapshot - puppet-module-voxpupuli-ssh-keygen

Ready changes

Summary

Merged new upstream version: 5.0.2+git20221002.1.8dfff0d (was: 2.0.1).

Resulting package

Built on 2022-11-07T20:33 (took 5m23s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-snapshots puppet-module-voxpupuli-ssh-keygen

Lintian Result

Diff

diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..ecb10a8
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,15 @@
+# editorconfig.org
+
+# Managed by modulesync - DO NOT EDIT
+# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
+
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 2
+tab_width = 2
+indent_style = space
+insert_final_newline = true
+trim_trailing_whitespace = true
diff --git a/.fixtures.yml b/.fixtures.yml
index 96a28c1..2c21ba7 100644
--- a/.fixtures.yml
+++ b/.fixtures.yml
@@ -1,3 +1,3 @@
 fixtures:
-  symlinks:
-    ssh_keygen: "#{source_dir}"
+  repositories:
+    stdlib: https://github.com/puppetlabs/puppetlabs-stdlib.git
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
deleted file mode 100644
index 602f324..0000000
--- a/.github/CONTRIBUTING.md
+++ /dev/null
@@ -1,104 +0,0 @@
-This module has grown over time based on a range of contributions from
-people using it. If you follow these contributing guidelines your patch
-will likely make it into a release a little quicker.
-
-## Contributing
-
-Please note that this project is released with a Contributor Code of Conduct.
-By participating in this project you agree to abide by its terms.
-[Contributor Code of Conduct](https://voxpupuli.org/coc/).
-
-1. Fork the repo.
-
-1. Create a separate branch for your change.
-
-1. Run the tests. We only take pull requests with passing tests, and
-   documentation.
-
-1. Add a test for your change. Only refactoring and documentation
-   changes require no new tests. If you are adding functionality
-   or fixing a bug, please add a test.
-
-1. Squash your commits down into logical components. Make sure to rebase
-   against the current master.
-
-1. Push the branch to your fork and submit a pull request.
-
-Please be prepared to repeat some of these steps as our contributors review
-your code.
-
-## Dependencies
-
-The testing and development tools have a bunch of dependencies,
-all managed by [bundler](http://bundler.io/) according to the
-[Puppet support matrix](http://docs.puppetlabs.com/guides/platforms.html#ruby-versions).
-
-By default the tests use a baseline version of Puppet.
-
-If you have Ruby 2.x or want a specific version of Puppet,
-you must set an environment variable such as:
-
-    export PUPPET_VERSION="~> 4.2.0"
-
-Install the dependencies like so...
-
-    bundle install
-
-## Syntax and style
-
-The test suite will run [Puppet Lint](http://puppet-lint.com/) and
-[Puppet Syntax](https://github.com/gds-operations/puppet-syntax) to
-check various syntax and style things. You can run these locally with:
-
-    bundle exec rake lint
-    bundle exec rake validate
-
-It will also run some [Rubocop](http://batsov.com/rubocop/) tests
-against it. You can run those locally ahead of time with:
-
-    bundle exec rake rubocop
-
-## Running the unit tests
-
-The unit test suite covers most of the code, as mentioned above please
-add tests if you're adding new functionality. If you've not used
-[rspec-puppet](http://rspec-puppet.com/) before then feel free to ask
-about how best to test your new feature.
-
-To run your all the unit tests
-
-    bundle exec rake spec SPEC_OPTS='--format documentation'
-
-To run a specific spec test set the `SPEC` variable:
-
-    bundle exec rake spec SPEC=spec/foo_spec.rb
-
-To run the linter, the syntax checker and the unit tests:
-
-    bundle exec rake test
-
-## Integration tests
-
-The unit tests just check the code runs, not that it does exactly what
-we want on a real machine. For that we're using
-[beaker](https://github.com/puppetlabs/beaker).
-
-This fires up a new virtual machine (using vagrant) and runs a series of
-simple tests against it after applying the module. You can run this
-with:
-
-    bundle exec rake acceptance
-
-This will run the tests on an Ubuntu 12.04 virtual machine. You can also
-run the integration tests against Centos 6.6 with.
-
-    BEAKER_set=centos-66-x64 bundle exec rake acceptances
-
-If you don't want to have to recreate the virtual machine every time you
-can use `BEAKER_DESTROY=no` and `BEAKER_PROVISION=no`. On the first run you will
-at least need `BEAKER_PROVISION` set to yes (the default). The Vagrantfile
-for the created virtual machines will be in `.vagrant/beaker_vagrant_fies`.
-
-The easiest way to debug in a docker container is to open a shell:
-
-    docker exec -it -u root ${container_id_or_name} bash
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
deleted file mode 100644
index 593e7aa..0000000
--- a/.github/ISSUE_TEMPLATE.md
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
-Thank you for contributing to this project!
-
-- This project has a Contributor Code of Conduct: https://voxpupuli.org/coc/
-- Please check that here is no existing issue or PR that addresses your problem.
-- Please fill the following form to enable us to help you.
-- Our vulnerabilities reporting process is at https://voxpupuli.org/security/
-
--->
-
-## Affected Puppet, Ruby, OS and module versions/distributions
-
-- Puppet:
-- Ruby:
-- Distribution:
-- Module version:
-
-## How to reproduce (e.g Puppet code you use)
-
-## What are you seeing
-
-## What behaviour did you expect instead
-
-## Output log
-
-## Any additional information you'd like to impart
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index 66f8044..0000000
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,8 +0,0 @@
-<!--
-Thank you for contributing to this project!
-
-- This project has a Contributor Code of Conduct: https://voxpupuli.org/coc/
-- Please check that here is no existing issue or PR that addresses your problem.
-- Our vulnerabilities reporting process is at https://voxpupuli.org/security/
-
--->
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index e9b3cf4..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,20 +0,0 @@
-pkg/
-Gemfile.lock
-Gemfile.local
-vendor/
-.vendor/
-spec/fixtures/manifests/
-spec/fixtures/modules/
-.vagrant/
-.bundle/
-.ruby-version
-coverage/
-log/
-.idea/
-.dependencies/
-.librarian/
-Puppetfile.lock
-*.iml
-.*.sw?
-.yardoc/
-Guardfile
diff --git a/.msync.yml b/.msync.yml
index 0a4a57d..0235385 100644
--- a/.msync.yml
+++ b/.msync.yml
@@ -1 +1,5 @@
-modulesync_config_version: '1.1.0'
+---
+# Managed by modulesync - DO NOT EDIT
+# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
+
+modulesync_config_version: '5.3.0'
diff --git a/.overcommit.yml b/.overcommit.yml
index 31699e7..d367ada 100644
--- a/.overcommit.yml
+++ b/.overcommit.yml
@@ -1,4 +1,5 @@
-# Managed by https://github.com/voxpupuli/modulesync_configs
+# Managed by modulesync - DO NOT EDIT
+# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
 #
 # Hooks are only enabled if you take action.
 #
@@ -58,6 +59,7 @@ PrePush:
     enabled: true
     description: 'Run rake targets'
     targets:
+      - 'validate'
       - 'test'
       - 'rubocop'
-    command: [ 'bundle', 'exec', 'rake' ]
+    command: ['bundle', 'exec', 'rake']
diff --git a/.pmtignore b/.pmtignore
index fb58957..65f5051 100644
--- a/.pmtignore
+++ b/.pmtignore
@@ -1,11 +1,15 @@
+# Managed by modulesync - DO NOT EDIT
+# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
+
 docs/
 pkg/
+Gemfile
 Gemfile.lock
 Gemfile.local
 vendor/
 .vendor/
-spec/fixtures/manifests/
-spec/fixtures/modules/
+spec/
+Rakefile
 .vagrant/
 .bundle/
 .ruby-version
@@ -13,8 +17,21 @@ coverage/
 log/
 .idea/
 .dependencies/
+.github/
 .librarian/
 Puppetfile.lock
 *.iml
+.editorconfig
+.fixtures.yml
+.gitignore
+.msync.yml
+.overcommit.yml
+.pmtignore
+.rspec
+.rspec_parallel
+.rubocop.yml
+.sync.yml
 .*.sw?
 .yardoc/
+.yardopts
+Dockerfile
diff --git a/.puppet-lint.rc b/.puppet-lint.rc
new file mode 100644
index 0000000..02a3e71
--- /dev/null
+++ b/.puppet-lint.rc
@@ -0,0 +1 @@
+--fail-on-warnings
diff --git a/.rspec b/.rspec
index 8c18f1a..f634583 100644
--- a/.rspec
+++ b/.rspec
@@ -1,2 +1,5 @@
+# Managed by modulesync - DO NOT EDIT
+# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
+
 --format documentation
 --color
diff --git a/.rspec_parallel b/.rspec_parallel
index e4d136b..a9a84f8 100644
--- a/.rspec_parallel
+++ b/.rspec_parallel
@@ -1 +1,4 @@
+# Managed by modulesync - DO NOT EDIT
+# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
+
 --format progress
diff --git a/.rubocop.yml b/.rubocop.yml
index b1a9521..53ac189 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -1,532 +1,6 @@
-require: rubocop-rspec
-AllCops:
-  TargetRubyVersion: 1.9
-  Include:
-    - ./**/*.rb
-  Exclude:
-    - files/**/*
-    - vendor/**/*
-    - .vendor/**/*
-    - pkg/**/*
-    - spec/fixtures/**/*
-    - Gemfile
-    - Rakefile
-    - Guardfile
-Lint/ConditionPosition:
-  Enabled: True
+---
+# Managed by modulesync - DO NOT EDIT
+# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
 
-Lint/ElseLayout:
-  Enabled: True
-
-Lint/UnreachableCode:
-  Enabled: True
-
-Lint/UselessComparison:
-  Enabled: True
-
-Lint/EnsureReturn:
-  Enabled: True
-
-Lint/HandleExceptions:
-  Enabled: True
-
-Lint/LiteralInCondition:
-  Enabled: True
-
-Lint/ShadowingOuterLocalVariable:
-  Enabled: True
-
-Lint/LiteralInInterpolation:
-  Enabled: True
-
-Style/HashSyntax:
-  Enabled: True
-
-Style/RedundantReturn:
-  Enabled: True
-
-Lint/AmbiguousOperator:
-  Enabled: True
-
-Lint/AssignmentInCondition:
-  Enabled: True
-
-Layout/SpaceBeforeComment:
-  Enabled: True
-
-Style/AndOr:
-  Enabled: True
-
-Style/RedundantSelf:
-  Enabled: True
-
-Metrics/BlockLength:
-  Enabled: False
-
-# Method length is not necessarily an indicator of code quality
-Metrics/MethodLength:
-  Enabled: False
-
-# Module length is not necessarily an indicator of code quality
-Metrics/ModuleLength:
-  Enabled: False
-
-Style/WhileUntilModifier:
-  Enabled: True
-
-Lint/AmbiguousRegexpLiteral:
-  Enabled: True
-
-Security/Eval:
-  Enabled: True
-
-Lint/BlockAlignment:
-  Enabled: True
-
-Lint/DefEndAlignment:
-  Enabled: True
-
-Lint/EndAlignment:
-  Enabled: True
-
-Lint/DeprecatedClassMethods:
-  Enabled: True
-
-Lint/Loop:
-  Enabled: True
-
-Lint/ParenthesesAsGroupedExpression:
-  Enabled: True
-
-Lint/RescueException:
-  Enabled: True
-
-Lint/StringConversionInInterpolation:
-  Enabled: True
-
-Lint/UnusedBlockArgument:
-  Enabled: True
-
-Lint/UnusedMethodArgument:
-  Enabled: True
-
-Lint/UselessAccessModifier:
-  Enabled: True
-
-Lint/UselessAssignment:
-  Enabled: True
-
-Lint/Void:
-  Enabled: True
-
-Layout/AccessModifierIndentation:
-  Enabled: True
-
-Style/AccessorMethodName:
-  Enabled: True
-
-Style/Alias:
-  Enabled: True
-
-Layout/AlignArray:
-  Enabled: True
-
-Layout/AlignHash:
-  Enabled: True
-
-Layout/AlignParameters:
-  Enabled: True
-
-Metrics/BlockNesting:
-  Enabled: True
-
-Style/AsciiComments:
-  Enabled: True
-
-Style/Attr:
-  Enabled: True
-
-Style/BracesAroundHashParameters:
-  Enabled: True
-
-Style/CaseEquality:
-  Enabled: True
-
-Layout/CaseIndentation:
-  Enabled: True
-
-Style/CharacterLiteral:
-  Enabled: True
-
-Style/ClassAndModuleCamelCase:
-  Enabled: True
-
-Style/ClassAndModuleChildren:
-  Enabled: False
-
-Style/ClassCheck:
-  Enabled: True
-
-# Class length is not necessarily an indicator of code quality
-Metrics/ClassLength:
-  Enabled: False
-
-Style/ClassMethods:
-  Enabled: True
-
-Style/ClassVars:
-  Enabled: True
-
-Style/WhenThen:
-  Enabled: True
-
-Style/WordArray:
-  Enabled: True
-
-Style/UnneededPercentQ:
-  Enabled: True
-
-Layout/Tab:
-  Enabled: True
-
-Layout/SpaceBeforeSemicolon:
-  Enabled: True
-
-Layout/TrailingBlankLines:
-  Enabled: True
-
-Layout/SpaceInsideBlockBraces:
-  Enabled: True
-
-Layout/SpaceInsideBrackets:
-  Enabled: True
-
-Layout/SpaceInsideHashLiteralBraces:
-  Enabled: True
-
-Layout/SpaceInsideParens:
-  Enabled: True
-
-Layout/LeadingCommentSpace:
-  Enabled: True
-
-Layout/SpaceBeforeFirstArg:
-  Enabled: True
-
-Layout/SpaceAfterColon:
-  Enabled: True
-
-Layout/SpaceAfterComma:
-  Enabled: True
-
-Layout/SpaceAfterMethodName:
-  Enabled: True
-
-Layout/SpaceAfterNot:
-  Enabled: True
-
-Layout/SpaceAfterSemicolon:
-  Enabled: True
-
-Layout/SpaceAroundEqualsInParameterDefault:
-  Enabled: True
-
-Layout/SpaceAroundOperators:
-  Enabled: True
-
-Layout/SpaceBeforeBlockBraces:
-  Enabled: True
-
-Layout/SpaceBeforeComma:
-  Enabled: True
-
-Style/CollectionMethods:
-  Enabled: True
-
-Layout/CommentIndentation:
-  Enabled: True
-
-Style/ColonMethodCall:
-  Enabled: True
-
-Style/CommentAnnotation:
-  Enabled: True
-
-# 'Complexity' is very relative
-Metrics/CyclomaticComplexity:
-  Enabled: False
-
-Style/ConstantName:
-  Enabled: True
-
-Style/Documentation:
-  Enabled: False
-
-Style/DefWithParentheses:
-  Enabled: True
-
-Style/PreferredHashMethods:
-  Enabled: True
-
-Layout/DotPosition:
-  EnforcedStyle: trailing
-
-Style/DoubleNegation:
-  Enabled: True
-
-Style/EachWithObject:
-  Enabled: True
-
-Layout/EmptyLineBetweenDefs:
-  Enabled: True
-
-Layout/IndentArray:
-  Enabled: True
-
-Layout/IndentHash:
-  Enabled: True
-
-Layout/IndentationConsistency:
-  Enabled: True
-
-Layout/IndentationWidth:
-  Enabled: True
-
-Layout/EmptyLines:
-  Enabled: True
-
-Layout/EmptyLinesAroundAccessModifier:
-  Enabled: True
-
-Style/EmptyLiteral:
-  Enabled: True
-
-# Configuration parameters: AllowURI, URISchemes.
-Metrics/LineLength:
-  Enabled: False
-
-Style/MethodCallWithoutArgsParentheses:
-  Enabled: True
-
-Style/MethodDefParentheses:
-  Enabled: True
-
-Style/LineEndConcatenation:
-  Enabled: True
-
-Layout/TrailingWhitespace:
-  Enabled: True
-
-Style/StringLiterals:
-  Enabled: True
-
-Style/TrailingCommaInArguments:
-  Enabled: True
-
-Style/TrailingCommaInLiteral:
-  Enabled: True
-
-Style/GlobalVars:
-  Enabled: True
-
-Style/GuardClause:
-  Enabled: True
-
-Style/IfUnlessModifier:
-  Enabled: True
-
-Style/MultilineIfThen:
-  Enabled: True
-
-Style/NegatedIf:
-  Enabled: True
-
-Style/NegatedWhile:
-  Enabled: True
-
-Style/Next:
-  Enabled: True
-
-Style/SingleLineBlockParams:
-  Enabled: True
-
-Style/SingleLineMethods:
-  Enabled: True
-
-Style/SpecialGlobalVars:
-  Enabled: True
-
-Style/TrivialAccessors:
-  Enabled: True
-
-Style/UnlessElse:
-  Enabled: True
-
-Style/VariableInterpolation:
-  Enabled: True
-
-Style/VariableName:
-  Enabled: True
-
-Style/WhileUntilDo:
-  Enabled: True
-
-Style/EvenOdd:
-  Enabled: True
-
-Style/FileName:
-  Enabled: True
-
-Style/For:
-  Enabled: True
-
-Style/Lambda:
-  Enabled: True
-
-Style/MethodName:
-  Enabled: True
-
-Style/MultilineTernaryOperator:
-  Enabled: True
-
-Style/NestedTernaryOperator:
-  Enabled: True
-
-Style/NilComparison:
-  Enabled: True
-
-Style/FormatString:
-  Enabled: True
-
-Style/MultilineBlockChain:
-  Enabled: True
-
-Style/Semicolon:
-  Enabled: True
-
-Style/SignalException:
-  Enabled: True
-
-Style/NonNilCheck:
-  Enabled: True
-
-Style/Not:
-  Enabled: True
-
-Style/NumericLiterals:
-  Enabled: True
-
-Style/OneLineConditional:
-  Enabled: True
-
-Style/OpMethod:
-  Enabled: True
-
-Style/ParenthesesAroundCondition:
-  Enabled: True
-
-Style/PercentLiteralDelimiters:
-  Enabled: True
-
-Style/PerlBackrefs:
-  Enabled: True
-
-Style/PredicateName:
-  Enabled: True
-
-Style/RedundantException:
-  Enabled: True
-
-Style/SelfAssignment:
-  Enabled: True
-
-Style/Proc:
-  Enabled: True
-
-Style/RaiseArgs:
-  Enabled: True
-
-Style/RedundantBegin:
-  Enabled: True
-
-Style/RescueModifier:
-  Enabled: True
-
-# based on https://github.com/voxpupuli/modulesync_config/issues/168
-Style/RegexpLiteral:
-  EnforcedStyle: percent_r
-  Enabled: True
-
-Lint/UnderscorePrefixedVariableName:
-  Enabled: True
-
-Metrics/ParameterLists:
-  Enabled: False
-
-Lint/RequireParentheses:
-  Enabled: True
-
-Style/ModuleFunction:
-  Enabled: True
-
-Lint/Debugger:
-  Enabled: True
-
-Style/IfWithSemicolon:
-  Enabled: True
-
-Style/Encoding:
-  Enabled: True
-
-Style/BlockDelimiters:
-  Enabled: True
-
-Layout/MultilineBlockLayout:
-  Enabled: True
-
-# 'Complexity' is very relative
-Metrics/AbcSize:
-  Enabled: False
-
-# 'Complexity' is very relative
-Metrics/PerceivedComplexity:
-  Enabled: False
-
-Lint/UselessAssignment:
-  Enabled: True
-
-Layout/ClosingParenthesisIndentation:
-  Enabled: True
-
-# RSpec
-
-RSpec/BeforeAfterAll:
-  Exclude:
-    - spec/acceptance/**/*
-
-# We don't use rspec in this way
-RSpec/DescribeClass:
-  Enabled: False
-
-# Example length is not necessarily an indicator of code quality
-RSpec/ExampleLength:
-  Enabled: False
-
-RSpec/NamedSubject:
-  Enabled: False
-
-# disabled for now since they cause a lot of issues
-# these issues aren't easy to fix
-RSpec/RepeatedDescription:
-  Enabled: False
-
-RSpec/NestedGroups:
-  Enabled: False
-
-# this is broken on ruby1.9
-Layout/IndentHeredoc:
-  Enabled: False
-
-# disable Yaml safe_load. This is needed to support ruby2.0.0 development envs
-Security/YAMLLoad:
-  Enabled: false
+inherit_gem:
+  voxpupuli-test: rubocop.yml
diff --git a/.sync.yml b/.sync.yml
index 41983e2..7515bc0 100644
--- a/.sync.yml
+++ b/.sync.yml
@@ -1,2 +1,7 @@
-.travis.yml:
-  secure: "ZiCBVZ7uHSaUcNQZiayFta9Iy1N0/lzVDMIL7jLzGyIxig4eX6vMEaEbmLCDP0XjnUSDtxh4G6C43BKMlvFtpl+fs41ZSC/b/FRCsYADkl7algl3+vzOSlC+x0R303/KisizETnGZaqvgUDRtyogZiitYumxuJ/bkQcDgJ+3W/8="
+---
+.puppet-lint.rc:
+  enabled_lint_checks:
+    - parameter_documentation
+    - parameter_types
+spec/spec_helper_acceptance.rb:
+  unmanaged: false
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index f9f32fb..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,46 +0,0 @@
----
-sudo: false
-dist: trusty
-language: ruby
-cache: bundler
-before_install:
-  - bundle -v
-  - rm Gemfile.lock || true
-  - gem update --system
-  - gem update bundler
-  - gem --version
-  - bundle -v
-script:
-  - 'bundle exec rake $CHECK'
-matrix:
-  fast_finish: true
-  include:
-  - rvm: 2.1.9
-    bundler_args: --without system_tests development
-    env: PUPPET_VERSION="~> 4.0" CHECK=test
-  - rvm: 2.4.1
-    bundler_args: --without system_tests development
-    env: PUPPET_VERSION="~> 5.0" CHECK=test
-  - rvm: 2.4.1
-    bundler_args: --without system_tests development
-    env: PUPPET_VERSION="~> 5.0" CHECK=rubocop
-  - rvm: 2.4.1
-    bundler_args: --without system_tests development
-    env: PUPPET_VERSION="~> 5.0" CHECK=build DEPLOY_TO_FORGE=yes
-branches:
-  only:
-  - master
-  - /^v\d/
-notifications:
-  email: false
-deploy:
-  provider: puppetforge
-  user: puppet
-  password:
-    secure: "ZiCBVZ7uHSaUcNQZiayFta9Iy1N0/lzVDMIL7jLzGyIxig4eX6vMEaEbmLCDP0XjnUSDtxh4G6C43BKMlvFtpl+fs41ZSC/b/FRCsYADkl7algl3+vzOSlC+x0R303/KisizETnGZaqvgUDRtyogZiitYumxuJ/bkQcDgJ+3W/8="
-  on:
-    tags: true
-    # all_branches is required to use tags
-    all_branches: true
-    # Only publish the build marked with "DEPLOY_TO_FORGE"
-    condition: "$DEPLOY_TO_FORGE = yes"
diff --git a/.yardopts b/.yardopts
deleted file mode 100644
index 3687f51..0000000
--- a/.yardopts
+++ /dev/null
@@ -1,2 +0,0 @@
---markup markdown
---output-dir docs/
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ca07de9..79e35ae 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,7 +4,96 @@ All notable changes to this project will be documented in this file.
 Each new release typically also includes the latest modulesync defaults.
 These should not affect the functionality of the module.
 
+## [v5.0.2](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v5.0.2) (2022-02-26)
+
+[Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v5.0.1...v5.0.2)
+
+**Merged pull requests:**
+
+- metadata.json: use HTTPS for git URL & cleanup README.md [\#74](https://github.com/voxpupuli/puppet-ssh_keygen/pull/74) ([bastelfreak](https://github.com/bastelfreak))
+- cleanup .sync.yml an add puppet-lint-param-docs [\#69](https://github.com/voxpupuli/puppet-ssh_keygen/pull/69) ([bastelfreak](https://github.com/bastelfreak))
+
+## [v5.0.1](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v5.0.1) (2021-08-26)
+
+[Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v5.0.0...v5.0.1)
+
+**Merged pull requests:**
+
+- Allow stdlib 8.0.0 [\#66](https://github.com/voxpupuli/puppet-ssh_keygen/pull/66) ([smortex](https://github.com/smortex))
+
+## [v5.0.0](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v5.0.0) (2021-06-15)
+
+[Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v4.1.0...v5.0.0)
+
+**Breaking changes:**
+
+- Drop EoL Puppet 5 support; Add Puppet 7 support [\#64](https://github.com/voxpupuli/puppet-ssh_keygen/pull/64) ([bastelfreak](https://github.com/bastelfreak))
+
+**Implemented enhancements:**
+
+- puppetlabs/stdlib: Allow 7.x [\#62](https://github.com/voxpupuli/puppet-ssh_keygen/pull/62) ([bastelfreak](https://github.com/bastelfreak))
+
+**Merged pull requests:**
+
+- Fix several markdown lint issues [\#58](https://github.com/voxpupuli/puppet-ssh_keygen/pull/58) ([dhoppe](https://github.com/dhoppe))
+- Use voxpupuli-acceptance [\#57](https://github.com/voxpupuli/puppet-ssh_keygen/pull/57) ([ekohl](https://github.com/ekohl))
+
+## [v4.1.0](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v4.1.0) (2020-04-03)
+
+[Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v4.0.0...v4.1.0)
+
+**Merged pull requests:**
+
+- Allow puppetlabs/stdlib 6.x [\#54](https://github.com/voxpupuli/puppet-ssh_keygen/pull/54) ([dhoppe](https://github.com/dhoppe))
+
+## [v4.0.0](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v4.0.0) (2019-04-28)
+
+[Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v3.0.1...v4.0.0)
+
+**Breaking changes:**
+
+- modulesync 2.6.0 & drop Puppet 4 [\#47](https://github.com/voxpupuli/puppet-ssh_keygen/pull/47) ([bastelfreak](https://github.com/bastelfreak))
+
+**Closed issues:**
+
+- ssh\_keygen fails when using ed25519 [\#30](https://github.com/voxpupuli/puppet-ssh_keygen/issues/30)
+
+**Merged pull requests:**
+
+- modulesync 2.2.0 and allow puppet 6.x [\#44](https://github.com/voxpupuli/puppet-ssh_keygen/pull/44) ([bastelfreak](https://github.com/bastelfreak))
+
+## [v3.0.1](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v3.0.1) (2018-09-09)
+
+[Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v3.0.0...v3.0.1)
+
+**Fixed bugs:**
+
+- puppet/stdlib is no more [\#35](https://github.com/voxpupuli/puppet-ssh_keygen/issues/35)
+- Fix puppetlabs-stdlib entry in metadata.json [\#36](https://github.com/voxpupuli/puppet-ssh_keygen/pull/36) ([juniorsysadmin](https://github.com/juniorsysadmin))
+
+**Merged pull requests:**
+
+- allow puppetlabs/stdlib 5.x [\#41](https://github.com/voxpupuli/puppet-ssh_keygen/pull/41) ([bastelfreak](https://github.com/bastelfreak))
+- Remove docker nodesets [\#38](https://github.com/voxpupuli/puppet-ssh_keygen/pull/38) ([bastelfreak](https://github.com/bastelfreak))
+
+## [v3.0.0](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v3.0.0) (2018-03-29)
+
+[Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v2.0.1...v3.0.0)
+
+**Breaking changes:**
+
+- BREAKING: Use secure shell escaping for user provided data [\#28](https://github.com/voxpupuli/puppet-ssh_keygen/pull/28) ([vinzent](https://github.com/vinzent))
+
+**Implemented enhancements:**
+
+- Support more key types [\#27](https://github.com/voxpupuli/puppet-ssh_keygen/pull/27) ([jcharaoui](https://github.com/jcharaoui))
+
+**Merged pull requests:**
+
+- bump puppet to latest supported version 4.10.0 [\#33](https://github.com/voxpupuli/puppet-ssh_keygen/pull/33) ([bastelfreak](https://github.com/bastelfreak))
+
 ## [v2.0.1](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v2.0.1) (2017-10-10)
+
 [Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v2.0.0...v2.0.1)
 
 **Merged pull requests:**
@@ -13,11 +102,13 @@ These should not affect the functionality of the module.
 - switch string to int in example [\#22](https://github.com/voxpupuli/puppet-ssh_keygen/pull/22) ([wyardley](https://github.com/wyardley))
 
 ## [v2.0.0](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v2.0.0) (2017-09-09)
+
 [Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v1.3.1...v2.0.0)
 
-**Implemented enhancements:**
+**Breaking changes:**
 
 - Switch to Puppet 4 data types and make 'bits' an integer.  [\#16](https://github.com/voxpupuli/puppet-ssh_keygen/pull/16) ([wyardley](https://github.com/wyardley))
+- Update metadata in preparation for Vox Pupuli cutover \(\#12\) [\#13](https://github.com/voxpupuli/puppet-ssh_keygen/pull/13) ([wyardley](https://github.com/wyardley))
 
 **Fixed bugs:**
 
@@ -31,14 +122,13 @@ These should not affect the functionality of the module.
 
 **Merged pull requests:**
 
-- Updates for 2.0.0 release [\#21](https://github.com/voxpupuli/puppet-ssh_keygen/pull/21) ([wyardley](https://github.com/wyardley))
 - Additional fixes to README [\#18](https://github.com/voxpupuli/puppet-ssh_keygen/pull/18) ([wyardley](https://github.com/wyardley))
 - rubocop -a fixes [\#15](https://github.com/voxpupuli/puppet-ssh_keygen/pull/15) ([wyardley](https://github.com/wyardley))
 - License readme [\#14](https://github.com/voxpupuli/puppet-ssh_keygen/pull/14) ([wyardley](https://github.com/wyardley))
-- Update metadata in preparation for Vox Pupuli cutover \(\#12\) [\#13](https://github.com/voxpupuli/puppet-ssh_keygen/pull/13) ([wyardley](https://github.com/wyardley))
 - Fix broken link [\#11](https://github.com/voxpupuli/puppet-ssh_keygen/pull/11) ([nnutter](https://github.com/nnutter))
 
 ## [v1.3.1](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v1.3.1) (2015-09-19)
+
 [Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v1.3.0...v1.3.1)
 
 **Merged pull requests:**
@@ -46,9 +136,11 @@ These should not affect the functionality of the module.
 - Prefer command defaults for bits and comment [\#7](https://github.com/voxpupuli/puppet-ssh_keygen/pull/7) ([edestecd](https://github.com/edestecd))
 
 ## [v1.3.0](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v1.3.0) (2015-07-09)
+
 [Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v1.2.0...v1.3.0)
 
 ## [v1.2.0](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v1.2.0) (2014-05-14)
+
 [Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v1.1.0...v1.2.0)
 
 **Closed issues:**
@@ -61,9 +153,13 @@ These should not affect the functionality of the module.
 - Add options [\#2](https://github.com/voxpupuli/puppet-ssh_keygen/pull/2) ([edestecd](https://github.com/edestecd))
 
 ## [v1.1.0](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v1.1.0) (2013-11-11)
+
 [Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/v1.0.0...v1.1.0)
 
 ## [v1.0.0](https://github.com/voxpupuli/puppet-ssh_keygen/tree/v1.0.0) (2012-12-06)
 
+[Full Changelog](https://github.com/voxpupuli/puppet-ssh_keygen/compare/38313a26e9186207b7e99560388285655ca2ebda...v1.0.0)
+
+
 
-\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
\ No newline at end of file
+\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..8dd82d6
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,24 @@
+# MANAGED BY MODULESYNC
+# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
+
+FROM ruby:2.7
+
+WORKDIR /opt/puppet
+
+# https://github.com/puppetlabs/puppet/blob/06ad255754a38f22fb3a22c7c4f1e2ce453d01cb/lib/puppet/provider/service/runit.rb#L39
+RUN mkdir -p /etc/sv
+
+ARG PUPPET_GEM_VERSION="~> 6.0"
+ARG PARALLEL_TEST_PROCESSORS=4
+
+# Cache gems
+COPY Gemfile .
+RUN bundle install --without system_tests development release --path=${BUNDLE_PATH:-vendor/bundle}
+
+COPY . .
+
+RUN bundle install
+RUN bundle exec rake release_checks
+
+# Container should not saved
+RUN exit 1
diff --git a/Gemfile b/Gemfile
index 9d5df20..07209b7 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,71 +1,34 @@
-source ENV['GEM_SOURCE'] || "https://rubygems.org"
+# Managed by modulesync - DO NOT EDIT
+# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
 
-def location_for(place, fake_version = nil)
-  if place =~ /^(git[:@][^#]*)#(.*)/
-    [fake_version, { :git => $1, :branch => $2, :require => false }].compact
-  elsif place =~ /^file:\/\/(.*)/
-    ['>= 0', { :path => File.expand_path($1), :require => false }]
-  else
-    [place, { :require => false }]
-  end
-end
+source ENV['GEM_SOURCE'] || 'https://rubygems.org'
 
 group :test do
-  gem 'puppetlabs_spec_helper', '~> 2.2.0',                         :require => false
-  gem 'rspec-puppet', '~> 2.5',                                     :require => false
-  gem 'rspec-puppet-facts',                                         :require => false
-  gem 'rspec-puppet-utils',                                         :require => false
-  gem 'puppet-lint-leading_zero-check',                             :require => false
-  gem 'puppet-lint-trailing_comma-check',                           :require => false
-  gem 'puppet-lint-version_comparison-check',                       :require => false
-  gem 'puppet-lint-classes_and_types_beginning_with_digits-check',  :require => false
-  gem 'puppet-lint-unquoted_string-check',                          :require => false
-  gem 'puppet-lint-variable_contains_upcase',                       :require => false
-  gem 'metadata-json-lint',                                         :require => false
-  gem 'puppet-blacksmith',                                          :require => false
-  gem 'voxpupuli-release',                                          :require => false, :git => 'https://github.com/voxpupuli/voxpupuli-release-gem'
-  gem 'puppet-strings', '~> 1.0',                                   :require => false
-  gem 'redcarpet',                                                  :require => false
-  gem 'rubocop', '~> 0.49.1',                                       :require => false if RUBY_VERSION >= '2.3.0'
-  gem 'rubocop-rspec', '~> 1.15.0',                                 :require => false if RUBY_VERSION >= '2.3.0'
-  gem 'mocha', '>= 1.2.1',                                          :require => false
-  gem 'coveralls',                                                  :require => false
-  gem 'simplecov-console',                                          :require => false
-  gem 'github_changelog_generator', '~> 1.13.0',                    :require => false if RUBY_VERSION < '2.2.2'
-  gem 'rack', '~> 1.0',                                             :require => false if RUBY_VERSION < '2.2.2'
-  gem 'github_changelog_generator',                                 :require => false if RUBY_VERSION >= '2.2.2'
-  gem 'parallel_tests',                                             :require => false
+  gem 'voxpupuli-test', '~> 5.4',   :require => false
+  gem 'coveralls',                  :require => false
+  gem 'simplecov-console',          :require => false
+  gem 'puppet_metadata', '~> 1.0',  :require => false
 end
 
 group :development do
-  gem 'travis',                   :require => false
-  gem 'travis-lint',              :require => false
   gem 'guard-rake',               :require => false
   gem 'overcommit', '>= 0.39.1',  :require => false
 end
 
 group :system_tests do
-  if beaker_version = ENV['BEAKER_VERSION']
-    gem 'beaker', *location_for(beaker_version)
-  end
-  if beaker_rspec_version = ENV['BEAKER_RSPEC_VERSION']
-    gem 'beaker-rspec', *location_for(beaker_rspec_version)
-  else
-    gem 'beaker-rspec',  :require => false
-  end
-  gem 'serverspec',                    :require => false
-  gem 'beaker-puppet_install_helper',  :require => false
+  gem 'voxpupuli-acceptance', '~> 1.0',  :require => false
 end
 
-
-
-if facterversion = ENV['FACTER_GEM_VERSION']
-  gem 'facter', facterversion.to_s, :require => false, :groups => [:test]
-else
-gem 'facter', :require => false, :groups => [:test]
+group :release do
+  gem 'github_changelog_generator', '>= 1.16.1',  :require => false if RUBY_VERSION >= '2.5'
+  gem 'voxpupuli-release', '>= 1.2.0',            :require => false
+  gem 'puppet-strings', '>= 2.2',                 :require => false
 end
 
-ENV['PUPPET_VERSION'].nil? ? puppetversion = '~> 5.0' : puppetversion = ENV['PUPPET_VERSION'].to_s
+gem 'rake', :require => false
+gem 'facter', ENV['FACTER_GEM_VERSION'], :require => false, :groups => [:test]
+
+puppetversion = ENV['PUPPET_GEM_VERSION'] || '>= 6.0'
 gem 'puppet', puppetversion, :require => false, :groups => [:test]
 
 # vim: syntax=ruby
diff --git a/README.md b/README.md
index 66fd0da..805807e 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,30 @@
 # puppet-ssh_keygen
-
-[![License](https://img.shields.io/github/license/voxpupuli/puppet-ssh_keygen.svg)](https://github.com/voxpupuli/puppet-ssh_keygen/blob/master/LICENSE)
-[![Build Status](https://travis-ci.org/voxpupuli/puppet-ssh_keygen.svg?branch=master)](https://travis-ci.org/voxpupuli/puppet-ssh_keygen)
-[![Code Coverage](https://coveralls.io/repos/github/voxpupuli/puppet-ssh_keygen/badge.svg?branch=master)](https://coveralls.io/github/voxpupuli/puppet-ssh_keygen)
+[![Build Status](https://github.com/voxpupuli/puppet-ssh_keygen/workflows/CI/badge.svg)](https://github.com/voxpupuli/puppet-ssh_keygen/actions?query=workflow%3ACI)
+[![Release](https://github.com/voxpupuli/puppet-ssh_keygen/actions/workflows/release.yml/badge.svg)](https://github.com/voxpupuli/puppet-ssh_keygen/actions/workflows/release.yml)
 [![Puppet Forge](https://img.shields.io/puppetforge/v/puppet/ssh_keygen.svg)](https://forge.puppetlabs.com/puppet/ssh_keygen)
 [![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/puppet/ssh_keygen.svg)](https://forge.puppetlabs.com/puppet/ssh_keygen)
 [![Puppet Forge - endorsement](https://img.shields.io/puppetforge/e/puppet/ssh_keygen.svg)](https://forge.puppetlabs.com/puppet/ssh_keygen)
 [![Puppet Forge - scores](https://img.shields.io/puppetforge/f/puppet/ssh_keygen.svg)](https://forge.puppetlabs.com/puppet/ssh_keygen)
+[![puppetmodule.info docs](http://www.puppetmodule.info/images/badge.png)](http://www.puppetmodule.info/m/puppet-ssh_keygen)
+[![Apache-2 License](https://img.shields.io/github/license/voxpupuli/puppet-ssh_keygen.svg)](LICENSE)
+[![Donated by maestrodev](https://img.shields.io/badge/donated%20by-maestrodev-fb7047.svg)](#authors)
 
-#### Table of Contents
+## Table of Contents
 
 1. [Usage - Configuration options and additional functionality](#usage)
-2. [Development - Guide for contributing to the module](#development)
+1. [Development - Guide for contributing to the module](#development)
+
+## Usage
 
-# Usage
+Generate ssh keys for any user using ssh_keygen, that needs exist before using
+the module
 
-Generate ssh keys for any user using ssh_keygen, that needs exist before using the module
 ```puppet
 ssh_keygen { 'john': }
 ```
 
 or if not using the default `/home/john`
+
 ```puppet
 ssh_keygen { 'john':
   home => '/var/home'
@@ -28,6 +32,7 @@ ssh_keygen { 'john':
 ```
 
 the key comment can also be overriden with
+
 ```puppet
 ssh_keygen { 'john':
   comment => 'john key'
@@ -35,6 +40,7 @@ ssh_keygen { 'john':
 ```
 
 Generate a dsa key
+
 ```puppet
 ssh_keygen { 'john':
   type => 'dsa'
@@ -42,6 +48,7 @@ ssh_keygen { 'john':
 ```
 
 specify the bit length
+
 ```puppet
 ssh_keygen { 'john':
   bits => 4096
@@ -49,6 +56,7 @@ ssh_keygen { 'john':
 ```
 
 Generate new host key
+
 ```puppet
 ssh_keygen { 'root':
   filename => '/etc/ssh/ssh_host_rsa_key'
@@ -66,4 +74,6 @@ Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for more details.
 ### Authors
 
 * Carlos Sanchez <csanchez@maestrodev.com>
-* Voxpupuli Team
+* Vox Pupuli Team
+
+Carlos initially created the module. Afterwards it got migrated to Vox Pupuli.
diff --git a/REFERENCE.md b/REFERENCE.md
new file mode 100644
index 0000000..435044c
--- /dev/null
+++ b/REFERENCE.md
@@ -0,0 +1,110 @@
+# Reference
+
+<!-- DO NOT EDIT: This document was generated by Puppet Strings -->
+
+## Table of Contents
+
+### Defined types
+
+* [`ssh_keygen`](#ssh_keygen)
+
+## Defined types
+
+### <a name="ssh_keygen"></a>`ssh_keygen`
+
+The ssh_keygen class.
+
+#### Examples
+
+##### Generate a dsa key
+
+```puppet
+ssh_keygen { 'john':
+  type => 'dsa'
+}
+```
+
+##### specify the bit length
+
+```puppet
+ssh_keygen { 'john':
+  bits => 4096
+}
+```
+
+##### Generate new host key
+
+```puppet
+ssh_keygen { 'root':
+  filename => '/etc/ssh/ssh_host_rsa_key'
+}
+```
+
+#### Parameters
+
+The following parameters are available in the `ssh_keygen` defined type:
+
+* [`user`](#user)
+* [`type`](#type)
+* [`bits`](#bits)
+* [`home`](#home)
+* [`filename`](#filename)
+* [`comment`](#comment)
+* [`options`](#options)
+
+##### <a name="user"></a>`user`
+
+Data type: `Optional[String]`
+
+Username to create key for
+
+Default value: ``undef``
+
+##### <a name="type"></a>`type`
+
+Data type: `Enum['rsa', 'dsa', 'ecdsa', 'ed25519', 'rsa1']`
+
+Type of key to create
+
+Default value: `'rsa'`
+
+##### <a name="bits"></a>`bits`
+
+Data type: `Optional[Integer]`
+
+Number of bits in key
+
+Default value: ``undef``
+
+##### <a name="home"></a>`home`
+
+Data type: `Optional[Stdlib::Absolutepath]`
+
+Home directory for user
+
+Default value: ``undef``
+
+##### <a name="filename"></a>`filename`
+
+Data type: `Optional[Stdlib::Absolutepath]`
+
+Key filename
+
+Default value: ``undef``
+
+##### <a name="comment"></a>`comment`
+
+Data type: `Optional[String]`
+
+Key comment
+
+Default value: ``undef``
+
+##### <a name="options"></a>`options`
+
+Data type: `Optional[Array[String]]`
+
+Additional options to pass on to ssh-keygen
+
+Default value: ``undef``
+
diff --git a/Rakefile b/Rakefile
index ab9411b..54b1348 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,45 +1,72 @@
-require 'puppetlabs_spec_helper/rake_tasks'
-require 'puppet_blacksmith/rake_tasks'
-require 'voxpupuli/release/rake_tasks'
-require 'puppet-strings/tasks'
-
-PuppetLint.configuration.log_format = '%{path}:%{line}:%{check}:%{KIND}:%{message}'
-PuppetLint.configuration.fail_on_warnings = true
-PuppetLint.configuration.send('relative')
-PuppetLint.configuration.send('disable_140chars')
-PuppetLint.configuration.send('disable_class_inherits_from_params_class')
-PuppetLint.configuration.send('disable_documentation')
-PuppetLint.configuration.send('disable_single_quote_string_with_variables')
-
-exclude_paths = %w(
-  pkg/**/*
-  vendor/**/*
-  .vendor/**/*
-  spec/**/*
-)
-PuppetLint.configuration.ignore_paths = exclude_paths
-PuppetSyntax.exclude_paths = exclude_paths
-
-desc 'Run acceptance tests'
-RSpec::Core::RakeTask.new(:acceptance) do |t|
-  t.pattern = 'spec/acceptance'
+# Managed by modulesync - DO NOT EDIT
+# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
+
+# Attempt to load voxpupuli-test (which pulls in puppetlabs_spec_helper),
+# otherwise attempt to load it directly.
+begin
+  require 'voxpupuli/test/rake'
+rescue LoadError
+  begin
+    require 'puppetlabs_spec_helper/rake_tasks'
+  rescue LoadError
+  end
 end
 
-desc 'Run tests metadata_lint, release_checks'
-task test: [
-  :metadata_lint,
-  :release_checks,
-]
+# load optional tasks for acceptance
+# only available if gem group releases is installed
+begin
+  require 'voxpupuli/acceptance/rake'
+rescue LoadError
+end
+
+# load optional tasks for releases
+# only available if gem group releases is installed
+begin
+  require 'voxpupuli/release/rake_tasks'
+rescue LoadError
+end
+
+desc "Run main 'test' task and report merged results to coveralls"
+task test_with_coveralls: [:test] do
+  if Dir.exist?(File.expand_path('../lib', __FILE__))
+    require 'coveralls/rake/task'
+    Coveralls::RakeTask.new
+    Rake::Task['coveralls:push'].invoke
+  else
+    puts 'Skipping reporting to coveralls.  Module has no lib dir'
+  end
+end
+
+desc 'Generate REFERENCE.md'
+task :reference, [:debug, :backtrace] do |t, args|
+  patterns = ''
+  Rake::Task['strings:generate:reference'].invoke(patterns, args[:debug], args[:backtrace])
+end
 
 begin
   require 'github_changelog_generator/task'
+  require 'puppet_blacksmith'
   GitHubChangelogGenerator::RakeTask.new :changelog do |config|
-    version = (Blacksmith::Modulefile.new).version
-    config.future_release = "v#{version}" if version =~ /^\d+\.\d+.\d+$/
+    metadata = Blacksmith::Modulefile.new
+    config.future_release = "v#{metadata.version}" if metadata.version =~ /^\d+\.\d+.\d+$/
     config.header = "# Changelog\n\nAll notable changes to this project will be documented in this file.\nEach new release typically also includes the latest modulesync defaults.\nThese should not affect the functionality of the module."
     config.exclude_labels = %w{duplicate question invalid wontfix wont-fix modulesync skip-changelog}
     config.user = 'voxpupuli'
+    config.project = 'puppet-ssh_keygen'
+  end
+
+  # Workaround for https://github.com/github-changelog-generator/github-changelog-generator/issues/715
+  require 'rbconfig'
+  if RbConfig::CONFIG['host_os'] =~ /linux/
+    task :changelog do
+      puts 'Fixing line endings...'
+      changelog_file = File.join(__dir__, 'CHANGELOG.md')
+      changelog_txt = File.read(changelog_file)
+      new_contents = changelog_txt.gsub(%r{\r\n}, "\n")
+      File.open(changelog_file, "w") {|file| file.puts new_contents }
+    end
   end
+
 rescue LoadError
 end
 # vim: syntax=ruby
diff --git a/debian/changelog b/debian/changelog
index 6961a84..f423167 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+puppet-module-voxpupuli-ssh-keygen (5.0.2+git20221002.1.8dfff0d-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Mon, 07 Nov 2022 20:30:16 -0000
+
 puppet-module-voxpupuli-ssh-keygen (2.0.1-4) unstable; urgency=medium
 
   * Clean-up update-alternatives handling.
diff --git a/manifests/init.pp b/manifests/init.pp
index 7decc2e..6c8b661 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -40,14 +40,13 @@
 #
 define ssh_keygen (
   Optional[String] $user     = undef,
-  Enum['rsa', 'dsa'] $type   = 'rsa',
+  Enum['rsa', 'dsa', 'ecdsa', 'ed25519', 'rsa1'] $type   = 'rsa',
   Optional[Integer] $bits    = undef,
-  Optional[String] $home     = undef,
-  Optional[String] $filename = undef,
+  Optional[Stdlib::Absolutepath] $home     = undef,
+  Optional[Stdlib::Absolutepath] $filename = undef,
   Optional[String] $comment  = undef,
-  Optional[String] $options  = undef,
+  Optional[Array[String]] $options  = undef,
 ) {
-
   Exec { path => '/bin:/usr/bin' }
 
   $_user = $user ? {
@@ -68,28 +67,39 @@ define ssh_keygen (
     default => $filename,
   }
 
-  $type_opt = " -t ${type}"
+  $type_opt = shell_join(['-t', $type])
 
   $bits_opt = $bits ? {
     undef   => undef,
-    default => " -b ${bits}"
+    default => shell_join(['-b', $bits])
   }
 
-  $filename_opt = " -f '${_filename}'"
-  $passphrase_opt = " -N ''"
+  $filename_opt = shell_join(['-f', $_filename])
+  $passphrase_opt = shell_join(['-N', ''])
 
   $comment_opt = $comment ? {
     undef   => undef,
-    default => " -C '${comment}'",
+    default => shell_join(['-C', $comment])
   }
 
   $options_opt = $options ? {
     undef   => undef,
-    default => " ${options}",
+    default => shell_join($options),
   }
 
+  $command = delete_undef_values( [
+      'ssh-keygen',
+      $type_opt,
+      $bits_opt,
+      $filename_opt,
+      $passphrase_opt,
+      $comment_opt,
+      $options_opt,
+    ]
+  )
+
   exec { "ssh_keygen-${name}":
-    command => "ssh-keygen${type_opt}${bits_opt}${filename_opt}${passphrase_opt}${comment_opt}${options_opt}",
+    command => join($command, ' '),
     user    => $_user,
     creates => $_filename,
   }
diff --git a/metadata.json b/metadata.json
index 051365e..6631357 100644
--- a/metadata.json
+++ b/metadata.json
@@ -1,19 +1,22 @@
 {
   "name": "puppet-ssh_keygen",
-  "version": "2.0.1",
-  "author": "voxpupuli",
+  "version": "5.0.3-rc0",
+  "author": "Vox Pupuli",
   "summary": "Generate ssh keys with ssh_keygen",
   "license": "Apache-2.0",
-  "source": "http://github.com/voxpupuli/puppet-ssh_keygen.git",
+  "source": "https://github.com/voxpupuli/puppet-ssh_keygen.git",
   "description": "Generate ssh keys for any user using ssh_keygen, that needs to be present before using the module",
   "project_page": "http://github.com/voxpupuli/puppet-ssh_keygen",
   "requirements": [
     {
       "name": "puppet",
-      "version_requirement": ">= 4.8.0 < 6.0.0"
+      "version_requirement": ">= 6.1.0 < 8.0.0"
     }
   ],
   "dependencies": [
-
+    {
+      "name": "puppetlabs-stdlib",
+      "version_requirement": ">= 4.13.1 < 9.0.0"
+    }
   ]
 }
diff --git a/spec/acceptance/nodesets/archlinux-2-x64.yml b/spec/acceptance/nodesets/archlinux-2-x64.yml
deleted file mode 100644
index 89b6300..0000000
--- a/spec/acceptance/nodesets/archlinux-2-x64.yml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  archlinux-2-x64:
-    roles:
-      - master
-    platform: archlinux-2-x64
-    box: archlinux/archlinux
-    hypervisor: vagrant
-CONFIG:
-  type: foss
diff --git a/spec/acceptance/nodesets/centos-511-x64.yml b/spec/acceptance/nodesets/centos-511-x64.yml
deleted file mode 100644
index 089d646..0000000
--- a/spec/acceptance/nodesets/centos-511-x64.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  centos-511-x64:
-    roles:
-      - master
-    platform: el-5-x86_64
-    box: puppetlabs/centos-5.11-64-nocm
-    hypervisor: vagrant
-CONFIG:
-  type: foss
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/centos-6-x64.yml b/spec/acceptance/nodesets/centos-6-x64.yml
deleted file mode 100644
index 16abc8f..0000000
--- a/spec/acceptance/nodesets/centos-6-x64.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  centos-6-x64:
-    roles:
-      - master
-    platform: el-6-x86_64
-    box: centos/6
-    hypervisor: vagrant
-CONFIG:
-  type: aio
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/centos-65-x64-docker.yml b/spec/acceptance/nodesets/centos-65-x64-docker.yml
deleted file mode 100644
index 7ec622e..0000000
--- a/spec/acceptance/nodesets/centos-65-x64-docker.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file is managed centrally by modulesync
-#   https://github.com/maestrodev/puppet-modulesync
-
-HOSTS:
-  centos-65-x64:
-    roles:
-      - master
-    platform: el-6-x86_64
-    image: devopsil/puppet:3.5.1
-    # ip: localhost
-    hypervisor : docker
-    docker_image_commands:
-      - yum -y install tar
-      - useradd vagrant
-      - "sed -ri 's/^#?PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config"
-      - "sed -ri 's/^#?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config"
-    docker_cmd:
-      - 'sh'
-      - '-c'
-      - 'service sshd start; tail -f /dev/null'
-CONFIG:
-  log_level: debug
-  type: git
diff --git a/spec/acceptance/nodesets/centos-65-x64.yml b/spec/acceptance/nodesets/centos-65-x64.yml
deleted file mode 100644
index 5b60f7a..0000000
--- a/spec/acceptance/nodesets/centos-65-x64.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-# This file is managed centrally by modulesync
-#   https://github.com/maestrodev/puppet-modulesync
-
-HOSTS:
-  centos-65-x64:
-    roles:
-      - master
-    platform: el-6-x86_64
-    box : centos-65-x64-virtualbox-nocm
-    box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-65-x64-virtualbox-nocm.box
-    hypervisor : vagrant
-CONFIG:
-  log_level: debug
-  type: git
diff --git a/spec/acceptance/nodesets/centos-66-x64-pe.yml b/spec/acceptance/nodesets/centos-66-x64-pe.yml
deleted file mode 100644
index 1e7aea6..0000000
--- a/spec/acceptance/nodesets/centos-66-x64-pe.yml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  centos-66-x64:
-    roles:
-      - master
-      - database
-      - dashboard
-    platform: el-6-x86_64
-    box: puppetlabs/centos-6.6-64-puppet-enterprise
-    hypervisor: vagrant
-CONFIG:
-  type: pe
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/centos-7-x64.yml b/spec/acceptance/nodesets/centos-7-x64.yml
deleted file mode 100644
index e05a3ae..0000000
--- a/spec/acceptance/nodesets/centos-7-x64.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  centos-7-x64:
-    roles:
-      - master
-    platform: el-7-x86_64
-    box: centos/7
-    hypervisor: vagrant
-CONFIG:
-  type: aio
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/debian-7-x64-docker.yml b/spec/acceptance/nodesets/debian-7-x64-docker.yml
deleted file mode 100644
index d7ecfb4..0000000
--- a/spec/acceptance/nodesets/debian-7-x64-docker.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file is managed centrally by modulesync
-#   https://github.com/maestrodev/puppet-modulesync
-
-HOSTS:
-  debian-7-x64:
-    roles:
-      - master
-    platform: debian-7-amd64
-    image: debian:7
-    # ip: localhost
-    hypervisor : docker
-    docker_image_commands:
-      - useradd vagrant
-      - "sed -ri 's/^#?PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config"
-      - "sed -ri 's/^#?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config"
-    docker_cmd:
-      - 'sh'
-      - '-c'
-      - 'service ssh start; tail -f /dev/null'
-CONFIG:
-  log_level: debug
-  type: git
diff --git a/spec/acceptance/nodesets/debian-7-x64.yml b/spec/acceptance/nodesets/debian-7-x64.yml
deleted file mode 100644
index 3737e5d..0000000
--- a/spec/acceptance/nodesets/debian-7-x64.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-# This file is managed centrally by modulesync
-#   https://github.com/maestrodev/puppet-modulesync
-
-HOSTS:
-  debian-7-x64:
-    roles:
-      - master
-    platform: debian-7-amd64
-    box : debian-73-x64-virtualbox-nocm
-    box_url : http://puppet-vagrant-boxes.puppetlabs.com/debian-73-x64-virtualbox-nocm.box
-    hypervisor : vagrant
-CONFIG:
-  log_level: debug
-  type: git
diff --git a/spec/acceptance/nodesets/debian-78-x64.yml b/spec/acceptance/nodesets/debian-78-x64.yml
deleted file mode 100644
index 6ef6de8..0000000
--- a/spec/acceptance/nodesets/debian-78-x64.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  debian-78-x64:
-    roles:
-      - master
-    platform: debian-7-amd64
-    box: puppetlabs/debian-7.8-64-nocm
-    hypervisor: vagrant
-CONFIG:
-  type: foss
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/debian-82-x64.yml b/spec/acceptance/nodesets/debian-82-x64.yml
deleted file mode 100644
index 9897a8f..0000000
--- a/spec/acceptance/nodesets/debian-82-x64.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  debian-82-x64:
-    roles:
-      - master
-    platform: debian-8-amd64
-    box: puppetlabs/debian-8.2-64-nocm
-    hypervisor: vagrant
-CONFIG:
-  type: foss
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/default.yml b/spec/acceptance/nodesets/default.yml
deleted file mode 100644
index 7ec622e..0000000
--- a/spec/acceptance/nodesets/default.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file is managed centrally by modulesync
-#   https://github.com/maestrodev/puppet-modulesync
-
-HOSTS:
-  centos-65-x64:
-    roles:
-      - master
-    platform: el-6-x86_64
-    image: devopsil/puppet:3.5.1
-    # ip: localhost
-    hypervisor : docker
-    docker_image_commands:
-      - yum -y install tar
-      - useradd vagrant
-      - "sed -ri 's/^#?PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config"
-      - "sed -ri 's/^#?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config"
-    docker_cmd:
-      - 'sh'
-      - '-c'
-      - 'service sshd start; tail -f /dev/null'
-CONFIG:
-  log_level: debug
-  type: git
diff --git a/spec/acceptance/nodesets/docker/centos-5.yml b/spec/acceptance/nodesets/docker/centos-5.yml
deleted file mode 100644
index c17bc3d..0000000
--- a/spec/acceptance/nodesets/docker/centos-5.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  centos-5-x64:
-    platform: el-5-x86_64
-    hypervisor: docker
-    image: centos:5
-    docker_preserve_image: true
-    docker_cmd: '["/sbin/init"]'
-    docker_image_commands:
-      - 'yum install -y crontabs initscripts iproute openssl sysvinit-tools tar wget which'
-      - 'sed -i -e "/mingetty/d" /etc/inittab'
-CONFIG:
-  trace_limit: 200
-  masterless: true
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/docker/centos-6.yml b/spec/acceptance/nodesets/docker/centos-6.yml
deleted file mode 100644
index d93f884..0000000
--- a/spec/acceptance/nodesets/docker/centos-6.yml
+++ /dev/null
@@ -1,20 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  centos-6-x64:
-    platform: el-6-x86_64
-    hypervisor: docker
-    image: centos:6
-    docker_preserve_image: true
-    docker_cmd: '["/sbin/init"]'
-    docker_image_commands:
-      - 'rm -rf /var/run/network/*'
-      - 'yum install -y crontabs initscripts iproute openssl sysvinit-tools tar wget which'
-      - 'rm /etc/init/tty.conf'
-CONFIG:
-  trace_limit: 200
-  masterless: true
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/docker/centos-7.yml b/spec/acceptance/nodesets/docker/centos-7.yml
deleted file mode 100644
index 41e924b..0000000
--- a/spec/acceptance/nodesets/docker/centos-7.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  centos-7-x64:
-    platform: el-7-x86_64
-    hypervisor: docker
-    image: centos:7
-    docker_preserve_image: true
-    docker_cmd: '["/usr/sbin/init"]'
-    docker_image_commands:
-      - 'yum install -y crontabs initscripts iproute openssl sysvinit-tools tar wget which ss'
-      - 'systemctl mask getty@tty1.service'
-CONFIG:
-  trace_limit: 200
-  masterless: true
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/docker/debian-7.yml b/spec/acceptance/nodesets/docker/debian-7.yml
deleted file mode 100644
index 071acbf..0000000
--- a/spec/acceptance/nodesets/docker/debian-7.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  debian-7-x64:
-    platform: debian-7-amd64
-    hypervisor: docker
-    image: debian:7
-    docker_preserve_image: true
-    docker_cmd: '["/sbin/init"]'
-    docker_image_commands:
-      - 'echo deb http://ftp.debian.org/debian wheezy-backports main >> /etc/apt/sources.list'
-      - 'apt-get update && apt-get install -y cron locales-all net-tools wget'
-CONFIG:
-  trace_limit: 200
-  masterless: true
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/docker/debian-8.yml b/spec/acceptance/nodesets/docker/debian-8.yml
deleted file mode 100644
index 7a1f35c..0000000
--- a/spec/acceptance/nodesets/docker/debian-8.yml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  debian-8-x64:
-    platform: debian-8-amd64
-    hypervisor: docker
-    image: debian:8
-    docker_preserve_image: true
-    docker_cmd: '["/sbin/init"]'
-    docker_image_commands:
-      - 'echo deb http://ftp.debian.org/debian jessie-backports main >> /etc/apt/sources.list'
-      - 'apt-get update && apt-get install -y cron locales-all net-tools wget'
-      - 'rm -f /usr/sbin/policy-rc.d'
-      - 'systemctl mask getty@tty1.service getty-static.service'
-CONFIG:
-  trace_limit: 200
-  masterless: true
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/docker/ubuntu-12.04.yml b/spec/acceptance/nodesets/docker/ubuntu-12.04.yml
deleted file mode 100644
index ab77cda..0000000
--- a/spec/acceptance/nodesets/docker/ubuntu-12.04.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  ubuntu-1204-x64:
-    platform: ubuntu-12.04-amd64
-    hypervisor: docker
-    image: ubuntu:12.04
-    docker_preserve_image: true
-    docker_cmd: '["/sbin/init"]'
-    docker_image_commands:
-      - 'apt-get install -y net-tools wget'
-      - 'locale-gen en_US.UTF-8'
-CONFIG:
-  trace_limit: 200
-  masterless: true
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/docker/ubuntu-14.04.yml b/spec/acceptance/nodesets/docker/ubuntu-14.04.yml
deleted file mode 100644
index ae45304..0000000
--- a/spec/acceptance/nodesets/docker/ubuntu-14.04.yml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  ubuntu-1404-x64:
-    platform: ubuntu-14.04-amd64
-    hypervisor: docker
-    image: ubuntu:14.04
-    docker_preserve_image: true
-    docker_cmd: '["/sbin/init"]'
-    docker_image_commands:
-      - 'rm /usr/sbin/policy-rc.d'
-      - 'rm /sbin/initctl; dpkg-divert --rename --remove /sbin/initctl'
-      - 'apt-get install -y net-tools wget apt-transport-https'
-      - 'locale-gen en_US.UTF-8'
-CONFIG:
-  trace_limit: 200
-  masterless: true
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/docker/ubuntu-16.04.yml b/spec/acceptance/nodesets/docker/ubuntu-16.04.yml
deleted file mode 100644
index 2d173c5..0000000
--- a/spec/acceptance/nodesets/docker/ubuntu-16.04.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  ubuntu-1604-x64:
-    platform: ubuntu-16.04-amd64
-    hypervisor: docker
-    image: ubuntu:16.04
-    docker_preserve_image: true
-    docker_cmd: '["/sbin/init"]'
-    docker_image_commands:
-      - 'apt-get install -y net-tools wget locales apt-transport-https'
-      - 'locale-gen en_US.UTF-8'
-CONFIG:
-  trace_limit: 200
-  masterless: true
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/ec2/amazonlinux-2016091.yml b/spec/acceptance/nodesets/ec2/amazonlinux-2016091.yml
deleted file mode 100644
index 19dd43e..0000000
--- a/spec/acceptance/nodesets/ec2/amazonlinux-2016091.yml
+++ /dev/null
@@ -1,31 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-#
-# Additional ~/.fog config file with AWS EC2 credentials
-# required.
-#
-# see: https://github.com/puppetlabs/beaker/blob/master/docs/how_to/hypervisors/ec2.md
-#
-# Amazon Linux is not a RHEL clone.
-#
-HOSTS:
-  amazonlinux-2016091-x64:
-    roles:
-      - master
-    platform: centos-6-x86_64
-    hypervisor: ec2
-    # refers to image_tempaltes.yaml AMI[vmname] entry:
-    vmname: amazonlinux-2016091-eu-central-1
-    # refers to image_tempaltes.yaml entry inside AMI[vmname][:image]:
-    snapshot: aio
-    # t2.micro is free tier eligible (https://aws.amazon.com/en/free/):
-    amisize: t2.micro
-    # required so that beaker sanitizes sshd_config and root authorized_keys:
-    user: ec2-user
-CONFIG:
-  type: aio
-  :ec2_yaml: spec/acceptance/nodesets/ec2/image_templates.yaml
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/ec2/image_templates.yaml b/spec/acceptance/nodesets/ec2/image_templates.yaml
deleted file mode 100644
index e50593e..0000000
--- a/spec/acceptance/nodesets/ec2/image_templates.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-#
-# see also: https://github.com/puppetlabs/beaker/blob/master/docs/how_to/hypervisors/ec2.md
-#
-# Hint: image IDs (ami-*) for the same image are different per location.
-#
-AMI:
-  # Amazon Linux AMI 2016.09.1 (HVM), SSD Volume Type
-  amazonlinux-2016091-eu-central-1:
-    :image:
-      :aio: ami-af0fc0c0
-    :region: eu-central-1
-  # Red Hat Enterprise Linux 7.3 (HVM), SSD Volume Type
-  rhel-73-eu-central-1:
-    :image:
-      :aio: ami-e4c63e8b
-    :region: eu-central-1
-  # SUSE Linux Enterprise Server 12 SP2 (HVM), SSD Volume Type
-  sles-12sp2-eu-central-1:
-    :image:
-      :aio: ami-c425e4ab
-    :region: eu-central-1
-  # Ubuntu Server 16.04 LTS (HVM), SSD Volume Type
-  ubuntu-1604-eu-central-1:
-    :image:
-      :aio: ami-fe408091
-    :region: eu-central-1
-  # Microsoft Windows Server 2016 Base
-  windows-2016-base-eu-central-1:
-    :image:
-      :aio: ami-88ec20e7
-    :region: eu-central-1
diff --git a/spec/acceptance/nodesets/ec2/rhel-73-x64.yml b/spec/acceptance/nodesets/ec2/rhel-73-x64.yml
deleted file mode 100644
index 7fac823..0000000
--- a/spec/acceptance/nodesets/ec2/rhel-73-x64.yml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-#
-# Additional ~/.fog config file with AWS EC2 credentials
-# required.
-#
-# see: https://github.com/puppetlabs/beaker/blob/master/docs/how_to/hypervisors/ec2.md
-#
-HOSTS:
-  rhel-73-x64:
-    roles:
-      - master
-    platform: el-7-x86_64
-    hypervisor: ec2
-    # refers to image_tempaltes.yaml AMI[vmname] entry:
-    vmname: rhel-73-eu-central-1
-    # refers to image_tempaltes.yaml entry inside AMI[vmname][:image]:
-    snapshot: aio
-    # t2.micro is free tier eligible (https://aws.amazon.com/en/free/):
-    amisize: t2.micro
-    # required so that beaker sanitizes sshd_config and root authorized_keys:
-    user: ec2-user
-CONFIG:
-  type: aio
-  :ec2_yaml: spec/acceptance/nodesets/ec2/image_templates.yaml
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/ec2/sles-12sp2-x64.yml b/spec/acceptance/nodesets/ec2/sles-12sp2-x64.yml
deleted file mode 100644
index 8542154..0000000
--- a/spec/acceptance/nodesets/ec2/sles-12sp2-x64.yml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-#
-# Additional ~/.fog config file with AWS EC2 credentials
-# required.
-#
-# see: https://github.com/puppetlabs/beaker/blob/master/docs/how_to/hypervisors/ec2.md
-#
-HOSTS:
-  sles-12sp2-x64:
-    roles:
-      - master
-    platform: sles-12-x86_64
-    hypervisor: ec2
-    # refers to image_tempaltes.yaml AMI[vmname] entry:
-    vmname: sles-12sp2-eu-central-1
-    # refers to image_tempaltes.yaml entry inside AMI[vmname][:image]:
-    snapshot: aio
-    # t2.micro is free tier eligible (https://aws.amazon.com/en/free/):
-    amisize: t2.micro
-    # required so that beaker sanitizes sshd_config and root authorized_keys:
-    user: ec2-user
-CONFIG:
-  type: aio
-  :ec2_yaml: spec/acceptance/nodesets/ec2/image_templates.yaml
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/ec2/ubuntu-1604-x64.yml b/spec/acceptance/nodesets/ec2/ubuntu-1604-x64.yml
deleted file mode 100644
index 9cf59d5..0000000
--- a/spec/acceptance/nodesets/ec2/ubuntu-1604-x64.yml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-#
-# Additional ~/.fog config file with AWS EC2 credentials
-# required.
-#
-# see: https://github.com/puppetlabs/beaker/blob/master/docs/how_to/hypervisors/ec2.md
-#
-HOSTS:
-  ubuntu-1604-x64:
-    roles:
-      - master
-    platform: ubuntu-16.04-amd64
-    hypervisor: ec2
-    # refers to image_tempaltes.yaml AMI[vmname] entry:
-    vmname: ubuntu-1604-eu-central-1
-    # refers to image_tempaltes.yaml entry inside AMI[vmname][:image]:
-    snapshot: aio
-    # t2.micro is free tier eligible (https://aws.amazon.com/en/free/):
-    amisize: t2.micro
-    # required so that beaker sanitizes sshd_config and root authorized_keys:
-    user: ubuntu
-CONFIG:
-  type: aio
-  :ec2_yaml: spec/acceptance/nodesets/ec2/image_templates.yaml
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/ec2/windows-2016-base-x64.yml b/spec/acceptance/nodesets/ec2/windows-2016-base-x64.yml
deleted file mode 100644
index 0932e29..0000000
--- a/spec/acceptance/nodesets/ec2/windows-2016-base-x64.yml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-#
-# Additional ~/.fog config file with AWS EC2 credentials
-# required.
-#
-# see: https://github.com/puppetlabs/beaker/blob/master/docs/how_to/hypervisors/ec2.md
-#
-HOSTS:
-  windows-2016-base-x64:
-    roles:
-      - master
-    platform: windows-2016-64
-    hypervisor: ec2
-    # refers to image_tempaltes.yaml AMI[vmname] entry:
-    vmname: windows-2016-base-eu-central-1
-    # refers to image_tempaltes.yaml entry inside AMI[vmname][:image]:
-    snapshot: aio
-    # t2.micro is free tier eligible (https://aws.amazon.com/en/free/):
-    amisize: t2.micro
-    # required so that beaker sanitizes sshd_config and root authorized_keys:
-    user: ec2-user
-CONFIG:
-  type: aio
-  :ec2_yaml: spec/acceptance/nodesets/ec2/image_templates.yaml
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/fedora-24-x64.yml b/spec/acceptance/nodesets/fedora-24-x64.yml
deleted file mode 100644
index 820b62d..0000000
--- a/spec/acceptance/nodesets/fedora-24-x64.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  fedora-24-x64:
-    roles:
-      - master
-    platform: fedora-24-x86_64
-    box: fedora/24-cloud-base
-    hypervisor: vagrant
-CONFIG:
-  type: aio
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/fedora-25-x64.yml b/spec/acceptance/nodesets/fedora-25-x64.yml
deleted file mode 100644
index 60ae011..0000000
--- a/spec/acceptance/nodesets/fedora-25-x64.yml
+++ /dev/null
@@ -1,18 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-#
-# platform is fedora 24 because there is no
-# puppet-agent for fedora 25 by 2016-12-30
-HOSTS:
-  fedora-25-x64:
-    roles:
-      - master
-    platform: fedora-25-x86_64
-    box: fedora/25-cloud-base
-    hypervisor: vagrant
-CONFIG:
-  type: aio
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/ubuntu-server-1204-x64.yml b/spec/acceptance/nodesets/ubuntu-server-1204-x64.yml
deleted file mode 100644
index 29102c5..0000000
--- a/spec/acceptance/nodesets/ubuntu-server-1204-x64.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  ubuntu-server-1204-x64:
-    roles:
-      - master
-    platform: ubuntu-12.04-amd64
-    box: puppetlabs/ubuntu-12.04-64-nocm
-    hypervisor: vagrant
-CONFIG:
-  type: foss
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/ubuntu-server-1404-x64-docker.yml b/spec/acceptance/nodesets/ubuntu-server-1404-x64-docker.yml
deleted file mode 100644
index 0b71451..0000000
--- a/spec/acceptance/nodesets/ubuntu-server-1404-x64-docker.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file is managed centrally by modulesync
-#   https://github.com/maestrodev/puppet-modulesync
-
-HOSTS:
-  ubuntu-server-1404-x64:
-    roles:
-      - master
-    platform: ubuntu-14.04-amd64
-    image: ubuntu:trusty
-    # ip: localhost
-    hypervisor : docker
-    docker_image_commands:
-      - useradd vagrant
-      - "sed -ri 's/^#?PermitRootLogin .*/PermitRootLogin yes/' /etc/ssh/sshd_config"
-      - "sed -ri 's/^#?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config"
-    docker_cmd:
-      - 'sh'
-      - '-c'
-      - 'service ssh start; tail -f /dev/null'
-CONFIG:
-  log_level: debug
-  type: git
diff --git a/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml b/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml
deleted file mode 100644
index 054e658..0000000
--- a/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  ubuntu-server-1404-x64:
-    roles:
-      - master
-    platform: ubuntu-14.04-amd64
-    box: puppetlabs/ubuntu-14.04-64-nocm
-    hypervisor: vagrant
-CONFIG:
-  type: foss
-...
-# vim: syntax=yaml
diff --git a/spec/acceptance/nodesets/ubuntu-server-1604-x64.yml b/spec/acceptance/nodesets/ubuntu-server-1604-x64.yml
deleted file mode 100644
index bc85e0e..0000000
--- a/spec/acceptance/nodesets/ubuntu-server-1604-x64.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-HOSTS:
-  ubuntu-server-1604-x64:
-    roles:
-      - master
-    platform: ubuntu-16.04-amd64
-    box: puppetlabs/ubuntu-16.04-64-nocm
-    hypervisor: vagrant
-CONFIG:
-  type: foss
-...
-# vim: syntax=yaml
diff --git a/spec/classes/coverage_spec.rb b/spec/classes/coverage_spec.rb
deleted file mode 100644
index de44654..0000000
--- a/spec/classes/coverage_spec.rb
+++ /dev/null
@@ -1,4 +0,0 @@
-require 'rspec-puppet'
-
-at_exit { RSpec::Puppet::Coverage.report! }
-# vim: syntax=ruby
diff --git a/spec/default_facts.yml b/spec/default_facts.yml
deleted file mode 100644
index 13c4165..0000000
--- a/spec/default_facts.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
-#
-# use default_module_facts.yaml for module specific
-# facts.
-#
-# Hint if using with rspec-puppet-facts ("on_supported_os.each"):
-#   if a same named fact exists in facterdb it will be overridden.
----
-concat_basedir: "/tmp"
-ipaddress: "172.16.254.254"
-is_pe: false
-macaddress: "AA:AA:AA:AA:AA:AA"
diff --git a/spec/defines/init_spec.rb b/spec/defines/init_spec.rb
index ada61cc..eeb017b 100644
--- a/spec/defines/init_spec.rb
+++ b/spec/defines/init_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
 require 'spec_helper'
 
 describe 'ssh_keygen' do
@@ -8,8 +10,8 @@ describe 'ssh_keygen' do
     let(:params) { {} }
 
     it {
-      is_expected.to contain_exec('ssh_keygen-john').with(
-        command: "ssh-keygen -t rsa -f '/home/john/.ssh/id_rsa' -N ''",
+      expect(subject).to contain_exec('ssh_keygen-john').with(
+        command: "ssh-keygen -t rsa -f /home/john/.ssh/id_rsa -N ''",
         user: 'john',
         creates: '/home/john/.ssh/id_rsa'
       )
@@ -20,20 +22,32 @@ describe 'ssh_keygen' do
     let(:params) { { user: 'other' } }
 
     it {
-      is_expected.to contain_exec('ssh_keygen-john').with(
-        command: "ssh-keygen -t rsa -f '/home/other/.ssh/id_rsa' -N ''",
+      expect(subject).to contain_exec('ssh_keygen-john').with(
+        command: "ssh-keygen -t rsa -f /home/other/.ssh/id_rsa -N ''",
         user: 'other',
         creates: '/home/other/.ssh/id_rsa'
       )
     }
   end
 
+  context 'illegal params will be escaped' do
+    let(:params) { { options: [';', 'rm', '-rf', '/'] } }
+
+    it {
+      expect(subject).to contain_exec('ssh_keygen-john').with(
+        command: "ssh-keygen -t rsa -f /home/john/.ssh/id_rsa -N '' \\; rm -rf /",
+        user: 'john',
+        creates: '/home/john/.ssh/id_rsa'
+      )
+    }
+  end
+
   context 'passing user root parameter' do
     let(:params) { { user: 'root' } }
 
     it {
-      is_expected.to contain_exec('ssh_keygen-john').with(
-        command: "ssh-keygen -t rsa -f '/root/.ssh/id_rsa' -N ''",
+      expect(subject).to contain_exec('ssh_keygen-john').with(
+        command: "ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''",
         user: 'root',
         creates: '/root/.ssh/id_rsa'
       )
@@ -44,8 +58,8 @@ describe 'ssh_keygen' do
     let(:params) { { type: 'dsa' } }
 
     it {
-      is_expected.to contain_exec('ssh_keygen-john').with(
-        command: "ssh-keygen -t dsa -f '/home/john/.ssh/id_dsa' -N ''",
+      expect(subject).to contain_exec('ssh_keygen-john').with(
+        command: "ssh-keygen -t dsa -f /home/john/.ssh/id_dsa -N ''",
         user: 'john',
         creates: '/home/john/.ssh/id_dsa'
       )
@@ -56,8 +70,8 @@ describe 'ssh_keygen' do
     let(:params) { { bits: 4096 } }
 
     it {
-      is_expected.to contain_exec('ssh_keygen-john').with(
-        command: "ssh-keygen -t rsa -b 4096 -f '/home/john/.ssh/id_rsa' -N ''",
+      expect(subject).to contain_exec('ssh_keygen-john').with(
+        command: "ssh-keygen -t rsa -b 4096 -f /home/john/.ssh/id_rsa -N ''",
         user: 'john',
         creates: '/home/john/.ssh/id_rsa'
       )
@@ -68,8 +82,8 @@ describe 'ssh_keygen' do
     let(:params) { { home: '/h/j' } }
 
     it {
-      is_expected.to contain_exec('ssh_keygen-john').with(
-        command: "ssh-keygen -t rsa -f '/h/j/.ssh/id_rsa' -N ''",
+      expect(subject).to contain_exec('ssh_keygen-john').with(
+        command: "ssh-keygen -t rsa -f /h/j/.ssh/id_rsa -N ''",
         user: 'john',
         creates: '/h/j/.ssh/id_rsa'
       )
@@ -81,8 +95,8 @@ describe 'ssh_keygen' do
     let(:params) { { filename: '/etc/ssh/ssh_host_rsa_key' } }
 
     it {
-      is_expected.to contain_exec('ssh_keygen-root').with(
-        command: "ssh-keygen -t rsa -f '/etc/ssh/ssh_host_rsa_key' -N ''",
+      expect(subject).to contain_exec('ssh_keygen-root').with(
+        command: "ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''",
         user: 'root',
         creates: '/etc/ssh/ssh_host_rsa_key'
       )
@@ -93,8 +107,8 @@ describe 'ssh_keygen' do
     let(:params) { { comment: 'my key' } }
 
     it {
-      is_expected.to contain_exec('ssh_keygen-john').with(
-        command: "ssh-keygen -t rsa -f '/home/john/.ssh/id_rsa' -N '' -C 'my key'",
+      expect(subject).to contain_exec('ssh_keygen-john').with(
+        command: "ssh-keygen -t rsa -f /home/john/.ssh/id_rsa -N '' -C my\\ key",
         user: 'john',
         creates: '/home/john/.ssh/id_rsa'
       )
@@ -102,11 +116,11 @@ describe 'ssh_keygen' do
   end
 
   context 'passing options parameter' do
-    let(:params) { { options: '-q' } }
+    let(:params) { { options: ['-q'] } }
 
     it {
-      is_expected.to contain_exec('ssh_keygen-john').with(
-        command: "ssh-keygen -t rsa -f '/home/john/.ssh/id_rsa' -N '' -q",
+      expect(subject).to contain_exec('ssh_keygen-john').with(
+        command: "ssh-keygen -t rsa -f /home/john/.ssh/id_rsa -N '' -q",
         user: 'john',
         creates: '/home/john/.ssh/id_rsa'
       )
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 2aa9da7..6515b7b 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,32 +1,19 @@
-require 'puppetlabs_spec_helper/module_spec_helper'
-require 'rspec-puppet-facts'
-include RspecPuppetFacts
+# frozen_string_literal: true
 
-if Dir.exist?(File.expand_path('../../lib', __FILE__))
-  require 'coveralls'
-  require 'simplecov'
-  require 'simplecov-console'
-  SimpleCov.formatters = [
-    SimpleCov::Formatter::HTMLFormatter,
-    SimpleCov::Formatter::Console,
-    Coveralls::SimpleCov::Formatter
-  ]
-  SimpleCov.start do
-    track_files 'lib/**/*.rb'
-    add_filter '/spec'
-    add_filter '/vendor'
-    add_filter '/.vendor'
-  end
-end
+# Managed by modulesync - DO NOT EDIT
+# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
 
-RSpec.configure do |c|
-  default_facts = {
-    puppetversion: Puppet.version,
-    facterversion: Facter.version
-  }
-  default_facts.merge!(YAML.load(File.read(File.expand_path('../default_facts.yml', __FILE__)))) if File.exist?(File.expand_path('../default_facts.yml', __FILE__))
-  default_facts.merge!(YAML.load(File.read(File.expand_path('../default_module_facts.yml', __FILE__)))) if File.exist?(File.expand_path('../default_module_facts.yml', __FILE__))
-  c.default_facts = default_facts
-end
+# puppetlabs_spec_helper will set up coverage if the env variable is set.
+# We want to do this if lib exists and it hasn't been explicitly set.
+ENV['COVERAGE'] ||= 'yes' if Dir.exist?(File.expand_path('../lib', __dir__))
+
+require 'voxpupuli/test/spec_helper'
 
-# vim: syntax=ruby
+add_mocked_facts!
+
+if File.exist?(File.join(__dir__, 'default_module_facts.yml'))
+  facts = YAML.safe_load(File.read(File.join(__dir__, 'default_module_facts.yml')))
+  facts&.each do |name, value|
+    add_custom_fact name.to_sym, value
+  end
+end
diff --git a/spec/spec_helper_acceptance.rb b/spec/spec_helper_acceptance.rb
index 2afe009..d3a6e23 100644
--- a/spec/spec_helper_acceptance.rb
+++ b/spec/spec_helper_acceptance.rb
@@ -1,47 +1,10 @@
-require 'puppet'
-require 'beaker-rspec/spec_helper'
-require 'beaker-rspec/helpers/serverspec'
+# frozen_string_literal: true
 
-# overriding puppet installation for the RedHat family distros due to
-# puppet breakage >= 3.5
-def install_puppet(host)
-  host['platform'] =~ %r{(fedora|el)-(\d+)}
-  if host['platform'] =~ %r{(fedora|el)-(\d+)}
-    safeversion = '3.4.2'
-    platform = Regexp.last_match(1)
-    relver = Regexp.last_match(2)
-    on host, "rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-#{platform}-#{relver}.noarch.rpm"
-    on host, "yum install -y puppet-#{safeversion}"
-  else
-    super()
-  end
-end
+# Managed by modulesync - DO NOT EDIT
+# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
 
-RSpec.configure do |c|
-  # Project root
-  proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
+require 'voxpupuli/acceptance/spec_helper_acceptance'
 
-  c.before(:each) do
-    Puppet::Util::Log.level = :warning
-    Puppet::Util::Log.newdestination(:console)
-  end
+configure_beaker
 
-  c.before :suite do
-    hosts.each do |host|
-      unless ENV['RS_PROVISION'] == 'no' || ENV['BEAKER_provision'] == 'no'
-        begin
-          on host, 'puppet --version'
-        rescue
-          if host.is_pe?
-            install_pe
-          else
-            install_puppet(host)
-          end
-        end
-      end
-
-      # Install module and dependencies
-      puppet_module_install(source: proj_root, module_name: File.basename(proj_root).gsub(%r{^puppet-}, ''))
-    end
-  end
-end
+Dir['./spec/support/acceptance/**/*.rb'].sort.each { |f| require f }

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/archlinux-2-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/centos-511-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/centos-6-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/centos-65-x64-docker.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/centos-65-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/centos-66-x64-pe.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/centos-7-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/debian-7-x64-docker.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/debian-7-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/debian-78-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/debian-82-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/default.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/docker/centos-5.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/docker/centos-6.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/docker/centos-7.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/docker/debian-7.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/docker/debian-8.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/docker/ubuntu-12.04.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/docker/ubuntu-14.04.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/docker/ubuntu-16.04.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/ec2/amazonlinux-2016091.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/ec2/image_templates.yaml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/ec2/rhel-73-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/ec2/sles-12sp2-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/ec2/ubuntu-1604-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/ec2/windows-2016-base-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/fedora-24-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/fedora-25-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/ubuntu-server-1204-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/ubuntu-server-1404-x64-docker.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/acceptance/nodesets/ubuntu-server-1604-x64.yml
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/classes/coverage_spec.rb
-rw-r--r--  root/root   /usr/share/puppet/modules.available/voxpupuli-ssh-keygen/spec/default_facts.yml

No differences were encountered in the control files

More details

Full run details