New Upstream Release - puppet-module-puppetlabs-ntp

Ready changes

Summary

Merged new upstream version: 10.0.0 (was: 7.2.0).

Diff

diff --git a/.github/workflows/auto_release.yml b/.github/workflows/auto_release.yml
new file mode 100644
index 0000000..d6270c5
--- /dev/null
+++ b/.github/workflows/auto_release.yml
@@ -0,0 +1,9 @@
+name: "Auto release"
+
+on:
+  workflow_dispatch:
+
+jobs:
+  release_prep:
+    uses: "puppetlabs/cat-github-actions/.github/workflows/module_release_prep.yml@main"
+    secrets: "inherit"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..e6dd8d7
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,21 @@
+name: "ci"
+
+on:
+  pull_request:
+    branches:
+      - "main"
+  workflow_dispatch:
+    
+jobs:
+  Spec:
+    uses: "puppetlabs/cat-github-actions/.github/workflows/module_ci.yml@main"
+    with:
+      runs_on: "ubuntu-20.04"
+    secrets: "inherit"
+
+  Acceptance:
+    needs: Spec
+    uses: "puppetlabs/cat-github-actions/.github/workflows/module_acceptance.yml@main"
+    with:
+      runs_on: "ubuntu-20.04"
+    secrets: "inherit"
diff --git a/.github/workflows/integration_test.yml b/.github/workflows/integration_test.yml
new file mode 100644
index 0000000..7cf24f5
--- /dev/null
+++ b/.github/workflows/integration_test.yml
@@ -0,0 +1,98 @@
+name: "Integration Testing"
+
+on: [pull_request]
+
+jobs:
+  setup_matrix:
+    name: "Setup Test Matrix"
+    runs-on: ubuntu-20.04
+    outputs:
+      matrix: ${{ steps.get-matrix.outputs.matrix }}
+
+    steps:
+    - name: Checkout Source
+      uses: actions/checkout@v2
+      if: ${{ github.repository_owner == 'puppetlabs' }}
+
+    - name: Activate Ruby 2.7
+      uses: ruby/setup-ruby@v1
+      if: ${{ github.repository_owner == 'puppetlabs' }}
+      with:
+        ruby-version: "2.7"
+        bundler-cache: true
+
+    - name: Print bundle environment
+      if: ${{ github.repository_owner == 'puppetlabs' }}
+      run: |
+        echo ::group::bundler environment
+        bundle env
+        echo ::endgroup::
+
+    - name: Setup Integration Test Matrix
+      id: get-matrix
+      run: |
+        if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then
+          echo  "matrix={'platform':['centos-7'],'collection':['puppet6-nightly']}" >> $GITHUB_OUTPUT
+        else
+          echo  "matrix={}"  >> $GITHUB_OUTPUT
+        fi
+
+  Integration:
+    needs:
+      - setup_matrix
+    if: ${{ needs.setup_matrix.outputs.matrix != '{}' }}
+
+    runs-on: ubuntu-20.04
+    strategy:
+      fail-fast: false
+      matrix: ${{fromJson(needs.setup_matrix.outputs.matrix)}}
+
+    steps:
+
+    - name: Checkout Source
+      uses: actions/checkout@v2
+
+    - name: Activate Ruby 2.7
+      uses: ruby/setup-ruby@v1
+      with:
+        ruby-version: "2.7"
+        bundler-cache: true
+
+    - name: Print bundle environment
+      run: |
+        echo ::group::bundler environment
+        bundle env
+        echo ::endgroup::
+
+    - name: Create the fixtures directory
+      run: |
+        bundle exec rake spec_prep
+
+    - name: Provision test environment
+      run: |
+        bundle exec bolt --modulepath spec/fixtures/modules plan run ntp::acceptance::provision_integration image=${{ matrix.platform }}
+        # Redact password
+        FILE='spec/fixtures/litmus_inventory.yaml'
+        sed -e 's/password: .*/password: "[redacted]"/' < $FILE || true
+
+    - name: Install PE
+      run: |
+        bundle exec bolt --modulepath spec/fixtures/modules -i ./spec/fixtures/litmus_inventory.yaml plan run ntp::acceptance::pe_server
+
+    - name: Install Agents
+      run: |
+        bundle exec bolt --modulepath spec/fixtures/modules -i ./spec/fixtures/litmus_inventory.yaml plan run ntp::acceptance::pe_agent
+
+    - name: Install module
+      run: |
+        bundle exec rake 'litmus:install_module'
+
+    - name: Run integration tests
+      run: |
+        bundle exec rake ntp:integration
+
+    - name: Remove test environment
+      if: ${{ always() }}
+      continue-on-error: true
+      run: |
+        bundle exec rake 'litmus:tear_down'
diff --git a/.github/workflows/labeller.yml b/.github/workflows/labeller.yml
new file mode 100644
index 0000000..5434d3f
--- /dev/null
+++ b/.github/workflows/labeller.yml
@@ -0,0 +1,22 @@
+name: community-labeller
+
+on:
+  issues:
+    types:
+      - opened
+  pull_request_target:
+    types:
+      - opened
+
+jobs:
+  label:
+    runs-on: ubuntu-latest
+    steps:
+
+      - uses: puppetlabs/community-labeller@v0
+        name: Label issues or pull requests
+        with:
+          label_name: community
+          label_color: '5319e7'
+          org_membership: puppetlabs
+          token: ${{ secrets.IAC_COMMUNITY_LABELER }}
diff --git a/.github/workflows/mend.yml b/.github/workflows/mend.yml
new file mode 100644
index 0000000..b4100a5
--- /dev/null
+++ b/.github/workflows/mend.yml
@@ -0,0 +1,15 @@
+name: "mend"
+
+on:
+  pull_request:
+    branches:
+      - "main"
+  schedule:
+    - cron: "0 0 * * *"
+  workflow_dispatch:
+
+jobs:
+
+  mend:
+    uses: "puppetlabs/cat-github-actions/.github/workflows/mend_ruby.yml@main"
+    secrets: "inherit"
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
new file mode 100644
index 0000000..b878605
--- /dev/null
+++ b/.github/workflows/nightly.yml
@@ -0,0 +1,20 @@
+name: "nightly"
+
+on:
+  schedule:
+    - cron: "0 0 * * *"
+  workflow_dispatch:
+
+jobs:
+  Spec:
+    uses: "puppetlabs/cat-github-actions/.github/workflows/module_ci.yml@main"
+    with:
+      runs_on: "ubuntu-20.04"
+    secrets: "inherit"
+
+  Acceptance:
+    needs: Spec
+    uses: "puppetlabs/cat-github-actions/.github/workflows/module_acceptance.yml@main"
+    with:
+      runs_on: "ubuntu-20.04"
+    secrets: "inherit"
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..0b7b8a0
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,9 @@
+name: "Publish module"
+
+on:
+  workflow_dispatch:
+  
+jobs:
+  release: 
+    uses: "puppetlabs/cat-github-actions/.github/workflows/module_release.yml@main"
+    secrets: "inherit"
diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile
new file mode 100644
index 0000000..0814c5e
--- /dev/null
+++ b/.gitpod.Dockerfile
@@ -0,0 +1,18 @@
+FROM gitpod/workspace-full
+RUN sudo wget https://apt.puppet.com/puppet-tools-release-bionic.deb && \
+    wget https://apt.puppetlabs.com/puppet6-release-bionic.deb && \
+    sudo dpkg -i puppet6-release-bionic.deb && \
+    sudo dpkg -i puppet-tools-release-bionic.deb && \
+    sudo apt-get update && \
+    sudo apt-get install -y pdk zsh puppet-agent && \
+    sudo apt-get clean && \
+    sudo rm -rf /var/lib/apt/lists/*
+RUN sudo usermod -s $(which zsh) gitpod && \
+    sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" && \
+    echo "plugins=(git gitignore github gem pip bundler python ruby docker docker-compose)" >> /home/gitpod/.zshrc && \
+    echo 'PATH="$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/puppetlabs/bin:/opt/puppetlabs/puppet/bin"'  >> /home/gitpod/.zshrc && \
+    sudo /opt/puppetlabs/puppet/bin/gem install puppet-debugger hub -N && \
+    mkdir -p /home/gitpod/.config/puppet && \
+    /opt/puppetlabs/puppet/bin/ruby -r yaml -e "puts ({'disabled' => true}).to_yaml" > /home/gitpod/.config/puppet/analytics.yml
+RUN rm -f puppet6-release-bionic.deb  puppet-tools-release-bionic.deb
+ENTRYPOINT /usr/bin/zsh
diff --git a/.gitpod.yml b/.gitpod.yml
new file mode 100644
index 0000000..9d89d9f
--- /dev/null
+++ b/.gitpod.yml
@@ -0,0 +1,9 @@
+image:
+  file: .gitpod.Dockerfile
+
+tasks:
+  - init: pdk bundle install
+
+vscode:
+  extensions:
+    - puppet.puppet-vscode@1.2.0:f5iEPbmOj6FoFTOV6q8LTg==
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
new file mode 100644
index 0000000..c21e0a7
--- /dev/null
+++ b/.rubocop_todo.yml
@@ -0,0 +1,40 @@
+# This configuration was generated by
+# `rubocop --auto-gen-config`
+# on 2023-04-05 13:41:42 UTC using RuboCop version 1.48.1.
+# The point is for the user to remove these configuration records
+# one by one as the offenses are removed from the code base.
+# Note that changes in the inspected code, or installation of new
+# versions of RuboCop, may require this file to be generated again.
+
+# Offense count: 9
+# Configuration parameters: IgnoredMetadata.
+RSpec/DescribeClass:
+  Exclude:
+    - '**/spec/features/**/*'
+    - '**/spec/requests/**/*'
+    - '**/spec/routing/**/*'
+    - '**/spec/system/**/*'
+    - '**/spec/views/**/*'
+    - 'spec/acceptance/class_spec.rb'
+    - 'spec/acceptance/integration_ntp_spec.rb'
+    - 'spec/acceptance/ntp_install_spec.rb'
+    - 'spec/acceptance/ntp_parameters_spec.rb'
+    - 'spec/acceptance/ntp_service_spec.rb'
+    - 'spec/acceptance/ntp_user_and_daemon_opts_spec.rb'
+    - 'spec/acceptance/preferred_servers_spec.rb'
+    - 'spec/acceptance/unsupported_spec.rb'
+    - 'spec/classes/contains_spec.rb'
+
+# Offense count: 95
+# Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
+# SupportedStyles: always, named_only
+RSpec/NamedSubject:
+  Exclude:
+    - 'spec/classes/ntp_spec.rb'
+
+# Offense count: 3
+Style/MixinUsage:
+  Exclude:
+    - 'spec/spec_helper.rb'
+    - 'spec/spec_helper_acceptance_local.rb'
+    - 'spec/spec_helper_local.rb'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 35d9447..7d99621 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,168 @@
 
 All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).
 
+## [v10.0.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/v10.0.0) (2023-04-06)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v9.2.2...v10.0.0)
+
+### Changed
+
+- \(CONT-790\) Add Support for Puppet 8 / Drop Support for Puppet 6 [\#674](https://github.com/puppetlabs/puppetlabs-ntp/pull/674) ([david22swan](https://github.com/david22swan))
+
+## [v9.2.2](https://github.com/puppetlabs/puppetlabs-ntp/tree/v9.2.2) (2023-04-06)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v9.2.1...v9.2.2)
+
+### Fixed
+
+- \(CONT-404\) Address set-output deprecation [\#670](https://github.com/puppetlabs/puppetlabs-ntp/pull/670) ([LukasAud](https://github.com/LukasAud))
+
+## [v9.2.1](https://github.com/puppetlabs/puppetlabs-ntp/tree/v9.2.1) (2023-02-03)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v9.2.0...v9.2.1)
+
+### Fixed
+
+- minimum value for poll interval should be 3, not 4 [\#665](https://github.com/puppetlabs/puppetlabs-ntp/pull/665) ([johnwarburton](https://github.com/johnwarburton))
+- \(CONT-360\) Syntax update [\#663](https://github.com/puppetlabs/puppetlabs-ntp/pull/663) ([LukasAud](https://github.com/LukasAud))
+- pdksync - \(CONT-189\) Remove support for RedHat6 / OracleLinux6 / Scientific6 [\#655](https://github.com/puppetlabs/puppetlabs-ntp/pull/655) ([david22swan](https://github.com/david22swan))
+- pdksync - \(CONT-130\) - Dropping Support for Debian 9 [\#652](https://github.com/puppetlabs/puppetlabs-ntp/pull/652) ([jordanbreen28](https://github.com/jordanbreen28))
+
+## [v9.2.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/v9.2.0) (2022-08-30)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v9.1.1...v9.2.0)
+
+### Added
+
+- pdksync - \(GH-cat-11\) Certify Support for Ubuntu 22.04 [\#648](https://github.com/puppetlabs/puppetlabs-ntp/pull/648) ([david22swan](https://github.com/david22swan))
+
+### Fixed
+
+- SMF service instance change in Oracle Solaris 11.4 SRU 45.119.2 [\#647](https://github.com/puppetlabs/puppetlabs-ntp/pull/647) ([Kristijan](https://github.com/Kristijan))
+
+## [v9.1.1](https://github.com/puppetlabs/puppetlabs-ntp/tree/v9.1.1) (2022-06-06)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v9.1.0...v9.1.1)
+
+### Fixed
+
+- pdksync - \(GH-iac-334\) Remove Support for Ubuntu 14.04/16.04 [\#639](https://github.com/puppetlabs/puppetlabs-ntp/pull/639) ([david22swan](https://github.com/david22swan))
+- pdksync - \(IAC-1787\) Remove Support for CentOS 6 [\#637](https://github.com/puppetlabs/puppetlabs-ntp/pull/637) ([david22swan](https://github.com/david22swan))
+- pdksync - \(IAC-1598\) - Remove Support for Debian 8 [\#635](https://github.com/puppetlabs/puppetlabs-ntp/pull/635) ([david22swan](https://github.com/david22swan))
+
+## [v9.1.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/v9.1.0) (2021-08-26)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v9.0.1...v9.1.0)
+
+### Added
+
+- pdksync - \(IAC-1709\) - Add Support for Debian 11 [\#632](https://github.com/puppetlabs/puppetlabs-ntp/pull/632) ([david22swan](https://github.com/david22swan))
+
+### Fixed
+
+- \(maint\) Allow stdlib 8.0.0 [\#633](https://github.com/puppetlabs/puppetlabs-ntp/pull/633) ([smortex](https://github.com/smortex))
+
+## [v9.0.1](https://github.com/puppetlabs/puppetlabs-ntp/tree/v9.0.1) (2021-03-29)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v9.0.0...v9.0.1)
+
+### Fixed
+
+- Allow setting user and group permissions of the NTP logfile [\#615](https://github.com/puppetlabs/puppetlabs-ntp/pull/615) ([Kristijan](https://github.com/Kristijan))
+
+## [v9.0.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/v9.0.0) (2021-03-01)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v8.5.0...v9.0.0)
+
+### Changed
+
+- pdksync - Remove Puppet 5 from testing and bump minimal version to 6.0.0 [\#605](https://github.com/puppetlabs/puppetlabs-ntp/pull/605) ([carabasdaniel](https://github.com/carabasdaniel))
+
+## [v8.5.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/v8.5.0) (2020-12-16)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v8.4.0...v8.5.0)
+
+### Added
+
+- pdksync - \(feat\) - Add support for Puppet 7 [\#594](https://github.com/puppetlabs/puppetlabs-ntp/pull/594) ([daianamezdrea](https://github.com/daianamezdrea))
+- \(MAINT\) Make mode for logfile configurable [\#590](https://github.com/puppetlabs/puppetlabs-ntp/pull/590) ([tmanninger](https://github.com/tmanninger))
+- \(IAC-997\) Removal of inappropriate terminology [\#587](https://github.com/puppetlabs/puppetlabs-ntp/pull/587) ([pmcmaw](https://github.com/pmcmaw))
+
+## [v8.4.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/v8.4.0) (2020-09-11)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v8.3.0...v8.4.0)
+
+### Added
+
+- pdksync - \(IAC-973\) - Update travis/appveyor to run on new default branch `main` [\#579](https://github.com/puppetlabs/puppetlabs-ntp/pull/579) ([david22swan](https://github.com/david22swan))
+- \(IAC-746\) - Add ubuntu 20.04 support [\#575](https://github.com/puppetlabs/puppetlabs-ntp/pull/575) ([david22swan](https://github.com/david22swan))
+
+## [v8.3.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/v8.3.0) (2020-04-01)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v8.2.0...v8.3.0)
+
+### Added
+
+- \(MAINT\) Add Solaris family Hiera data [\#554](https://github.com/puppetlabs/puppetlabs-ntp/pull/554) ([paescuj](https://github.com/paescuj))
+- pdksync - \(FM-8581\) - Debian 10 added to travis and provision file refactored [\#552](https://github.com/puppetlabs/puppetlabs-ntp/pull/552) ([david22swan](https://github.com/david22swan))
+- \(MODULES-10413\) Allow custom ntp user and daemon options  [\#551](https://github.com/puppetlabs/puppetlabs-ntp/pull/551) ([david22swan](https://github.com/david22swan))
+
+## [v8.2.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/v8.2.0) (2019-12-09)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v8.1.0...v8.2.0)
+
+### Added
+
+- FM-8407 - Add support on Debian 10 [\#528](https://github.com/puppetlabs/puppetlabs-ntp/pull/528) ([lionce](https://github.com/lionce))
+
+## [v8.1.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/v8.1.0) (2019-09-23)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/v8.0.0...v8.1.0)
+
+### Added
+
+- \(FM-8188\) convert ntp to use litmus [\#517](https://github.com/puppetlabs/puppetlabs-ntp/pull/517) ([tphoney](https://github.com/tphoney))
+
+### Fixed
+
+- Fix disable\_dhclient [\#521](https://github.com/puppetlabs/puppetlabs-ntp/pull/521) ([raphink](https://github.com/raphink))
+
+## [v8.0.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/v8.0.0) (2019-05-14)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/7.4.0...v8.0.0)
+
+### Changed
+
+- pdksync - \(MODULES-8444\) - Raise lower Puppet bound [\#510](https://github.com/puppetlabs/puppetlabs-ntp/pull/510) ([david22swan](https://github.com/david22swan))
+
+### Fixed
+
+- Service hasstatus and hasrestart atributes [\#499](https://github.com/puppetlabs/puppetlabs-ntp/pull/499) ([ffapitalle](https://github.com/ffapitalle))
+
+## [7.4.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/7.4.0) (2019-02-01)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/7.3.0...7.4.0)
+
+### Added
+
+- \(MODULES-8139\) - Add SLES 15 support [\#492](https://github.com/puppetlabs/puppetlabs-ntp/pull/492) ([eimlav](https://github.com/eimlav))
+- \(MODULES-8098\) - Add logconfig option to config file [\#491](https://github.com/puppetlabs/puppetlabs-ntp/pull/491) ([eimlav](https://github.com/eimlav))
+
+### Fixed
+
+- \(FM-7719\) - Remove Amazon Linux and Arch Linux testing/support for ntp module [\#498](https://github.com/puppetlabs/puppetlabs-ntp/pull/498) ([david22swan](https://github.com/david22swan))
+- pdksync - \(FM-7655\) Fix rubygems-update for ruby \< 2.3 [\#495](https://github.com/puppetlabs/puppetlabs-ntp/pull/495) ([tphoney](https://github.com/tphoney))
+
+## [7.3.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/7.3.0) (2018-09-27)
+
+[Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/7.2.0...7.3.0)
+
+### Added
+
+- pdksync - \(MODULES-6805\) metadata.json shows support for puppet 6 [\#484](https://github.com/puppetlabs/puppetlabs-ntp/pull/484) ([tphoney](https://github.com/tphoney))
+- Add burst param [\#476](https://github.com/puppetlabs/puppetlabs-ntp/pull/476) ([kobybr](https://github.com/kobybr))
+- \(MODULES-7465\) Addition of support for Ubuntu 18.04 to NTP [\#475](https://github.com/puppetlabs/puppetlabs-ntp/pull/475) ([david22swan](https://github.com/david22swan))
+
 ## [7.2.0](https://github.com/puppetlabs/puppetlabs-ntp/tree/7.2.0) (2018-07-03)
 
 [Full Changelog](https://github.com/puppetlabs/puppetlabs-ntp/compare/7.1.1...7.2.0)
@@ -12,7 +174,7 @@ All notable changes to this project will be documented in this file. The format
 
 ### Added
 
-- Add SLES 15 hiera data [\#472](https://github.com/puppetlabs/puppetlabs-ntp/pull/472) ([mattiasgiese](https://github.com/mattiasgiese))
+- Add SLES 15 hiera data [\#472](https://github.com/puppetlabs/puppetlabs-ntp/pull/472) ([mattiascockburn](https://github.com/mattiascockburn))
 - \(FM-7038\) Add support for Debian 9 [\#470](https://github.com/puppetlabs/puppetlabs-ntp/pull/470) ([david22swan](https://github.com/david22swan))
 - add tos\_orphan parameter [\#452](https://github.com/puppetlabs/puppetlabs-ntp/pull/452) ([disklord](https://github.com/disklord))
 
@@ -443,4 +605,4 @@ Configuration directives that might possibly be affected:
 * Initial release under puppetlabs
 
 
-\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
+\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
diff --git a/CODEOWNERS b/CODEOWNERS
new file mode 100644
index 0000000..a5d109e
--- /dev/null
+++ b/CODEOWNERS
@@ -0,0 +1,2 @@
+# Setting ownership to the modules team
+* @puppetlabs/modules
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1a9fb3a..e7a3a7c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,271 +1,3 @@
 # Contributing to Puppet modules
 
-So you want to contribute to a Puppet module: Great! Below are some instructions to get you started doing
-that very thing while setting expectations around code quality as well as a few tips for making the
-process as easy as possible. 
-
-### Table of Contents
-
-1. [Getting Started](#getting-started)
-1. [Commit Checklist](#commit-checklist)
-1. [Submission](#submission)
-1. [More about commits](#more-about-commits)
-1. [Testing](#testing)
-    - [Running Tests](#running-tests)
-    - [Writing Tests](#writing-tests)
-1. [Get Help](#get-help)
-
-## Getting Started
-
-- Fork the module repository on GitHub and clone to your workspace
-
-- Make your changes!
-
-## Commit Checklist
-
-### The Basics
-
-- [x] my commit is a single logical unit of work
-
-- [x] I have checked for unnecessary whitespace with "git diff --check" 
-
-- [x] my commit does not include commented out code or unneeded files
-
-### The Content
-
-- [x] my commit includes tests for the bug I fixed or feature I added
-
-- [x] my commit includes appropriate documentation changes if it is introducing a new feature or changing existing functionality
-    
-- [x] my code passes existing test suites
-
-### The Commit Message
-
-- [x] the first line of my commit message includes:
-
-  - [x] an issue number (if applicable), e.g. "(MODULES-xxxx) This is the first line" 
-  
-  - [x] a short description (50 characters is the soft limit, excluding ticket number(s))
-
-- [x] the body of my commit message:
-
-  - [x] is meaningful
-
-  - [x] uses the imperative, present tense: "change", not "changed" or "changes"
-
-  - [x] includes motivation for the change, and contrasts its implementation with the previous behavior
-
-## Submission
-
-### Pre-requisites
-
-- Make sure you have a [GitHub account](https://github.com/join)
-
-- [Create a ticket](https://tickets.puppet.com/secure/CreateIssue!default.jspa), or [watch the ticket](https://tickets.puppet.com/browse/) you are patching for.
-
-### Push and PR
-
-- Push your changes to your fork
-
-- [Open a Pull Request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) against the repository in the puppetlabs organization
-
-## More about commits 
-
-  1.  Make separate commits for logically separate changes.
-
-      Please break your commits down into logically consistent units
-      which include new or changed tests relevant to the rest of the
-      change.  The goal of doing this is to make the diff easier to
-      read for whoever is reviewing your code.  In general, the easier
-      your diff is to read, the more likely someone will be happy to
-      review it and get it into the code base.
-
-      If you are going to refactor a piece of code, please do so as a
-      separate commit from your feature or bug fix changes.
-
-      We also really appreciate changes that include tests to make
-      sure the bug is not re-introduced, and that the feature is not
-      accidentally broken.
-
-      Describe the technical detail of the change(s).  If your
-      description starts to get too long, that is a good sign that you
-      probably need to split up your commit into more finely grained
-      pieces.
-
-      Commits which plainly describe the things which help
-      reviewers check the patch and future developers understand the
-      code are much more likely to be merged in with a minimum of
-      bike-shedding or requested changes.  Ideally, the commit message
-      would include information, and be in a form suitable for
-      inclusion in the release notes for the version of Puppet that
-      includes them.
-
-      Please also check that you are not introducing any trailing
-      whitespace or other "whitespace errors".  You can do this by
-      running "git diff --check" on your changes before you commit.
-
-  2.  Sending your patches
-
-      To submit your changes via a GitHub pull request, we _highly_
-      recommend that you have them on a topic branch, instead of
-      directly on "master".
-      It makes things much easier to keep track of, especially if
-      you decide to work on another thing before your first change
-      is merged in.
-
-      GitHub has some pretty good
-      [general documentation](http://help.github.com/) on using
-      their site.  They also have documentation on
-      [creating pull requests](https://help.github.com/articles/creating-a-pull-request-from-a-fork/).
-
-      In general, after pushing your topic branch up to your
-      repository on GitHub, you can switch to the branch in the
-      GitHub UI and click "Pull Request" towards the top of the page
-      in order to open a pull request.
-
-  3.  Update the related JIRA issue.
-
-      If there is a JIRA issue associated with the change you
-      submitted, then you should update the ticket to include the
-      location of your branch, along with any other commentary you
-      may wish to make.
-
-# Testing
-
-## Getting Started
-
-Our Puppet modules provide [`Gemfile`](./Gemfile)s, which can tell a Ruby package manager such as [bundler](http://bundler.io/) what Ruby packages,
-or Gems, are required to build, develop, and test this software.
-
-Please make sure you have [bundler installed](http://bundler.io/#getting-started) on your system, and then use it to 
-install all dependencies needed for this project in the project root by running
-
-```shell
-% bundle install --path .bundle/gems
-Fetching gem metadata from https://rubygems.org/........
-Fetching gem metadata from https://rubygems.org/..
-Using rake (10.1.0)
-Using builder (3.2.2)
--- 8><-- many more --><8 --
-Using rspec-system-puppet (2.2.0)
-Using serverspec (0.6.3)
-Using rspec-system-serverspec (1.0.0)
-Using bundler (1.3.5)
-Your bundle is complete!
-Use `bundle show [gemname]` to see where a bundled gem is installed.
-```
-
-NOTE: some systems may require you to run this command with sudo.
-
-If you already have those gems installed, make sure they are up-to-date:
-
-```shell
-% bundle update
-```
-
-## Running Tests
-
-With all dependencies in place and up-to-date, run the tests:
-
-### Unit Tests
-
-```shell
-% bundle exec rake spec
-```
-
-This executes all the [rspec tests](http://rspec-puppet.com/) in the directories defined [here](https://github.com/puppetlabs/puppetlabs_spec_helper/blob/699d9fbca1d2489bff1736bb254bb7b7edb32c74/lib/puppetlabs_spec_helper/rake_tasks.rb#L17) and so on. 
-rspec tests may have the same kind of dependencies as the module they are testing. Although the module defines these dependencies in its [metadata.json](./metadata.json),
-rspec tests define them in [.fixtures.yml](./fixtures.yml).
-
-### Acceptance Tests
-
-Some Puppet modules also come with acceptance tests, which use [beaker][]. These tests spin up a virtual machine under
-[VirtualBox](https://www.virtualbox.org/), controlled with [Vagrant](http://www.vagrantup.com/), to simulate scripted test
-scenarios. In order to run these, you need both Virtualbox and Vagrant installed on your system.
-
-Run the tests by issuing the following command
-
-```shell
-% bundle exec rake spec_clean
-% bundle exec rspec spec/acceptance
-```
-
-This will now download a pre-fabricated image configured in the [default node-set](./spec/acceptance/nodesets/default.yml),
-install Puppet, copy this module, and install its dependencies per [spec/spec_helper_acceptance.rb](./spec/spec_helper_acceptance.rb)
-and then run all the tests under [spec/acceptance](./spec/acceptance).
-
-## Writing Tests
-
-### Unit Tests
-
-When writing unit tests for Puppet, [rspec-puppet][] is your best friend. It provides tons of helper methods for testing your manifests against a 
-catalog (e.g. contain_file, contain_package, with_params, etc). It would be ridiculous to try and top rspec-puppet's [documentation][rspec-puppet_docs] 
-but here's a tiny sample:
-
-Sample manifest:
-
-```puppet
-file { "a test file":
-  ensure => present,
-  path   => "/etc/sample",
-}
-```
-
-Sample test:
-
-```ruby
-it 'does a thing' do
-  expect(subject).to contain_file("a test file").with({:path => "/etc/sample"})
-end
-```
-
-### Acceptance Tests
-
-Writing acceptance tests for Puppet involves [beaker][] and its cousin [beaker-rspec][]. A common pattern for acceptance tests is to create a test manifest, apply it
-twice to check for idempotency or errors, then run expectations.
-
-```ruby
-it 'does an end-to-end thing' do
-  pp = <<-EOF
-    file { 'a test file': 
-      ensure  => present,
-      path    => "/etc/sample",
-      content => "test string",
-    }
-    
-  apply_manifest(pp, :catch_failures => true)
-  apply_manifest(pp, :catch_changes => true)
-  
-end
-
-describe file("/etc/sample") do
-  it { is_expected.to contain "test string" }
-end
-
-```
-
-# If you have commit access to the repository
-
-Even if you have commit access to the repository, you still need to go through the process above, and have someone else review and merge
-in your changes.  The rule is that **all changes must be reviewed by a project developer that did not write the code to ensure that
-all changes go through a code review process.**
-
-The record of someone performing the merge is the record that they performed the code review. Again, this should be someone other than the author of the topic branch.
-
-# Get Help
-
-### On the web
-* [Puppet help messageboard](http://puppet.com/community/get-help)
-* [Writing tests](https://docs.puppet.com/guides/module_guides/bgtm.html#step-three-module-testing)
-* [General GitHub documentation](http://help.github.com/)
-* [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
-
-### On chat
-* Slack (slack.puppet.com) #forge-modules, #puppet-dev, #windows, #voxpupuli
-* IRC (freenode) #puppet-dev, #voxpupuli
-
-
-[rspec-puppet]: http://rspec-puppet.com/
-[rspec-puppet_docs]: http://rspec-puppet.com/documentation/
-[beaker]: https://github.com/puppetlabs/beaker
-[beaker-rspec]: https://github.com/puppetlabs/beaker-rspec
+Check out our [Contributing to Supported Modules Blog Post](https://puppetlabs.github.io/iac/docs/contributing_to_a_module.html) to find all the information that you will need.
diff --git a/Gemfile b/Gemfile
deleted file mode 100644
index 27a28c3..0000000
--- a/Gemfile
+++ /dev/null
@@ -1,88 +0,0 @@
-source ENV['GEM_SOURCE'] || 'https://rubygems.org'
-
-def location_for(place_or_version, fake_version = nil)
-  if place_or_version =~ %r{\A(git[:@][^#]*)#(.*)}
-    [fake_version, { git: Regexp.last_match(1), branch: Regexp.last_match(2), require: false }].compact
-  elsif place_or_version =~ %r{\Afile:\/\/(.*)}
-    ['>= 0', { path: File.expand_path(Regexp.last_match(1)), require: false }]
-  else
-    [place_or_version, { require: false }]
-  end
-end
-
-def gem_type(place_or_version)
-  if place_or_version =~ %r{\Agit[:@]}
-    :git
-  elsif !place_or_version.nil? && place_or_version.start_with?('file:')
-    :file
-  else
-    :gem
-  end
-end
-
-ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments
-minor_version = ruby_version_segments[0..1].join('.')
-
-group :development do
-  gem "fast_gettext", '1.1.0',                         require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0')
-  gem "fast_gettext",                                  require: false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')
-  gem "json_pure", '<= 2.0.1',                         require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')
-  gem "json", '= 1.8.1',                               require: false if Gem::Version.new(RUBY_VERSION.dup) == Gem::Version.new('2.1.9')
-  gem "json", '<= 2.0.4',                              require: false if Gem::Version.new(RUBY_VERSION.dup) == Gem::Version.new('2.4.4')
-  gem "puppet-module-posix-default-r#{minor_version}", require: false, platforms: [:ruby]
-  gem "puppet-module-posix-dev-r#{minor_version}",     require: false, platforms: [:ruby]
-  gem "puppet-module-win-default-r#{minor_version}",   require: false, platforms: [:mswin, :mingw, :x64_mingw]
-  gem "puppet-module-win-dev-r#{minor_version}",       require: false, platforms: [:mswin, :mingw, :x64_mingw]
-  gem "github_changelog_generator",                    require: false, git: 'https://github.com/skywinder/github-changelog-generator', ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018' if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')
-end
-group :system_tests do
-  gem "puppet-module-posix-system-r#{minor_version}",                            require: false, platforms: [:ruby]
-  gem "puppet-module-win-system-r#{minor_version}",                              require: false, platforms: [:mswin, :mingw, :x64_mingw]
-  gem "beaker", *location_for(ENV['BEAKER_VERSION'] || '~> 3.13')
-  gem "beaker-abs", *location_for(ENV['BEAKER_ABS_VERSION'] || '~> 0.1')
-  gem "beaker-pe",                                                               require: false
-  gem "beaker-hostgenerator"
-  gem "beaker-rspec"
-end
-
-puppet_version = ENV['PUPPET_GEM_VERSION']
-puppet_type = gem_type(puppet_version)
-facter_version = ENV['FACTER_GEM_VERSION']
-hiera_version = ENV['HIERA_GEM_VERSION']
-
-gems = {}
-
-gems['puppet'] = location_for(puppet_version)
-
-# If facter or hiera versions have been specified via the environment
-# variables
-
-gems['facter'] = location_for(facter_version) if facter_version
-gems['hiera'] = location_for(hiera_version) if hiera_version
-
-if Gem.win_platform? && puppet_version =~ %r{^(file:///|git://)}
-  # If we're using a Puppet gem on Windows which handles its own win32-xxx gem
-  # dependencies (>= 3.5.0), set the maximum versions (see PUP-6445).
-  gems['win32-dir'] =      ['<= 0.4.9', require: false]
-  gems['win32-eventlog'] = ['<= 0.6.5', require: false]
-  gems['win32-process'] =  ['<= 0.7.5', require: false]
-  gems['win32-security'] = ['<= 0.2.5', require: false]
-  gems['win32-service'] =  ['0.8.8', require: false]
-end
-
-gems.each do |gem_name, gem_params|
-  gem gem_name, *gem_params
-end
-
-# Evaluate Gemfile.local and ~/.gemfile if they exist
-extra_gemfiles = [
-  "#{__FILE__}.local",
-  File.join(Dir.home, '.gemfile'),
-]
-
-extra_gemfiles.each do |gemfile|
-  if File.file?(gemfile) && File.readable?(gemfile)
-    eval(File.read(gemfile), binding)
-  end
-end
-# vim: syntax=ruby
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
deleted file mode 100644
index 1af647a..0000000
--- a/MAINTAINERS.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## Maintenance
-
-Maintainers:
-  - Puppet Forge Modules Team `forge-modules |at| puppet |dot| com`
-
-Tickets: https://tickets.puppet.com/browse/MODULES. Make sure to set component to `ntp`.
diff --git a/README.md b/README.md
index e0920a7..749c615 100644
--- a/README.md
+++ b/README.md
@@ -10,11 +10,12 @@
 1. [Limitations - OS compatibility, etc.](#limitations)
 1. [Development - Guide for contributing to the module](#development)
 
-
+<a id="module-description"></a>
 ## Module description
 
 The ntp module installs, configures, and manages the NTP service across a range of operating systems and distributions.
 
+<a id="setup"></a>
 ## Setup
 
 ### Beginning with ntp
@@ -27,6 +28,7 @@ class { 'ntp':
 }
 ```
 
+<a id="usage"></a>
 ## Usage
 
 All parameters for the ntp module are contained within the main `ntp` class, so for any function of the module, set the options you want. See the common usages below for examples.
@@ -110,19 +112,35 @@ class { 'ntp':
 }
 ```
 
+### Connect to an NTP server with the burst option enabled
+
+```puppet
+class { 'ntp':
+  servers => [ 'ntp1.corp.com', 'ntp2.corp.com' ],
+  burst  => true,
+}
+```
+
+<a id="reference"></a>
 ## Reference
 
-See [REFERENCE.md](REFERENCE.md)
+See [REFERENCE.md](https://github.com/puppetlabs/puppetlabs-ntp/blob/main/REFERENCE.md)
 
+<a id="limitations"></a>
 ## Limitations
 
 This module has been tested on [all PE-supported platforms](https://forge.puppetlabs.com/supported#compat-matrix). Additionally, it is tested (but not supported) on Solaris 10 and Fedora 20-22.
 
+For an extensive list of supported operating systems, see [metadata.json](https://github.com/puppetlabs/puppetlabs-ntp/blob/main/metadata.json)
+
+<a id="development"></a> 
 ## Development
 
+We are experimenting with a new tool for running acceptance tests. It's name is [puppet_litmus](https://github.com/puppetlabs/puppet_litmus) this replaces beaker as the test runner. To run the acceptance tests follow the instructions [here](https://github.com/puppetlabs/puppet_litmus/wiki/Tutorial:-use-Litmus-to-execute-acceptance-tests-with-a-sample-module-(MoTD)#install-the-necessary-gems-for-the-module).
+
 Puppet modules on the Puppet Forge are open projects, and community contributions are essential for keeping them great. Please follow our guidelines when contributing changes.
 
-For more information, see our [module contribution guide.](https://docs.puppetlabs.com/forge/contributing.html)
+For more information, see our [module contribution guide.](https://puppet.com/docs/puppet/latest/contributing.html)
 
 ### Contributors
 
diff --git a/REFERENCE.md b/REFERENCE.md
index 384228b..cb7bb01 100644
--- a/REFERENCE.md
+++ b/REFERENCE.md
@@ -1,23 +1,35 @@
 # Reference
+
 <!-- DO NOT EDIT: This document was generated by Puppet Strings -->
 
 ## Table of Contents
 
-**Classes**
+### Classes
 
-_Public Classes_
+#### Public Classes
 
 * [`ntp`](#ntp): ntp  Main class, includes all other classes.
 
-_Private Classes_
+#### Private Classes
 
 * `ntp::config`: This class handles the configuration file.
 * `ntp::install`: This class handles ntp packages.
 * `ntp::service`: This class handles the ntp service.
 
+### Data types
+
+* [`Ntp::Key_id`](#Ntp--Key_id): See http://doc.ntp.org/4.2.6/authopt.html#controlkey for documentation Alternatively: type Ntp::Key_id = Variant[Integer, Pattern['']]
+* [`Ntp::Poll_interval`](#Ntp--Poll_interval): See https://doc.ntp.org/documentation/4.2.6-series/confopt/#command-options for documentation Alternatively: type Ntp::Poll_interval = Varian
+
+### Plans
+
+* [`ntp::acceptance::pe_agent`](#ntp--acceptance--pe_agent): Install PE
+* [`ntp::acceptance::pe_server`](#ntp--acceptance--pe_server): Install PE Server
+* [`ntp::acceptance::provision_integration`](#ntp--acceptance--provision_integration): Provisions machines
+
 ## Classes
 
-### ntp
+### <a name="ntp"></a>`ntp`
 
 ntp
 
@@ -25,242 +37,351 @@ Main class, includes all other classes.
 
 #### Parameters
 
-The following parameters are available in the `ntp` class.
-
-##### `authprov`
+The following parameters are available in the `ntp` class:
+
+* [`authprov`](#-ntp--authprov)
+* [`broadcastclient`](#-ntp--broadcastclient)
+* [`burst`](#-ntp--burst)
+* [`config`](#-ntp--config)
+* [`config_dir`](#-ntp--config_dir)
+* [`config_epp`](#-ntp--config_epp)
+* [`config_file_mode`](#-ntp--config_file_mode)
+* [`config_template`](#-ntp--config_template)
+* [`daemon_extra_opts`](#-ntp--daemon_extra_opts)
+* [`disable_auth`](#-ntp--disable_auth)
+* [`disable_dhclient`](#-ntp--disable_dhclient)
+* [`disable_kernel`](#-ntp--disable_kernel)
+* [`disable_monitor`](#-ntp--disable_monitor)
+* [`driftfile`](#-ntp--driftfile)
+* [`enable_mode7`](#-ntp--enable_mode7)
+* [`fudge`](#-ntp--fudge)
+* [`iburst_enable`](#-ntp--iburst_enable)
+* [`interfaces`](#-ntp--interfaces)
+* [`interfaces_ignore`](#-ntp--interfaces_ignore)
+* [`keys`](#-ntp--keys)
+* [`keys_controlkey`](#-ntp--keys_controlkey)
+* [`keys_enable`](#-ntp--keys_enable)
+* [`keys_file`](#-ntp--keys_file)
+* [`keys_requestkey`](#-ntp--keys_requestkey)
+* [`keys_trusted`](#-ntp--keys_trusted)
+* [`leapfile`](#-ntp--leapfile)
+* [`logfile`](#-ntp--logfile)
+* [`logfile_group`](#-ntp--logfile_group)
+* [`logfile_mode`](#-ntp--logfile_mode)
+* [`logfile_user`](#-ntp--logfile_user)
+* [`logconfig`](#-ntp--logconfig)
+* [`minpoll`](#-ntp--minpoll)
+* [`maxpoll`](#-ntp--maxpoll)
+* [`ntpsigndsocket`](#-ntp--ntpsigndsocket)
+* [`package_ensure`](#-ntp--package_ensure)
+* [`package_manage`](#-ntp--package_manage)
+* [`package_name`](#-ntp--package_name)
+* [`panic`](#-ntp--panic)
+* [`peers`](#-ntp--peers)
+* [`tos_orphan`](#-ntp--tos_orphan)
+* [`pool`](#-ntp--pool)
+* [`preferred_servers`](#-ntp--preferred_servers)
+* [`noselect_servers`](#-ntp--noselect_servers)
+* [`restrict`](#-ntp--restrict)
+* [`servers`](#-ntp--servers)
+* [`service_enable`](#-ntp--service_enable)
+* [`service_ensure`](#-ntp--service_ensure)
+* [`service_manage`](#-ntp--service_manage)
+* [`service_name`](#-ntp--service_name)
+* [`service_provider`](#-ntp--service_provider)
+* [`service_hasstatus`](#-ntp--service_hasstatus)
+* [`service_hasrestart`](#-ntp--service_hasrestart)
+* [`slewalways`](#-ntp--slewalways)
+* [`statistics`](#-ntp--statistics)
+* [`statsdir`](#-ntp--statsdir)
+* [`step_tickers_file`](#-ntp--step_tickers_file)
+* [`step_tickers_epp`](#-ntp--step_tickers_epp)
+* [`step_tickers_template`](#-ntp--step_tickers_template)
+* [`stepout`](#-ntp--stepout)
+* [`tos`](#-ntp--tos)
+* [`tos_minclock`](#-ntp--tos_minclock)
+* [`tos_maxclock`](#-ntp--tos_maxclock)
+* [`tos_minsane`](#-ntp--tos_minsane)
+* [`tos_floor`](#-ntp--tos_floor)
+* [`tos_ceiling`](#-ntp--tos_ceiling)
+* [`tos_cohort`](#-ntp--tos_cohort)
+* [`tinker`](#-ntp--tinker)
+* [`udlc`](#-ntp--udlc)
+* [`udlc_stratum`](#-ntp--udlc_stratum)
+* [`user`](#-ntp--user)
+
+##### <a name="-ntp--authprov"></a>`authprov`
 
 Data type: `Optional[String]`
 
 Enables compatibility with W32Time in some versions of NTPd (such as Novell DSfW). Default value: undef.
 
-##### `broadcastclient`
+##### <a name="-ntp--broadcastclient"></a>`broadcastclient`
 
 Data type: `Boolean`
 
 Enables reception of broadcast server messages to any local interface. Default value: false.
 
-##### `config`
+##### <a name="-ntp--burst"></a>`burst`
+
+Data type: `Boolean`
+
+When the server is reachable, send a burst of eight packets instead of the usual one. Default value: false.
+
+##### <a name="-ntp--config"></a>`config`
 
 Data type: `Stdlib::Absolutepath`
 
 Specifies a file for NTP's configuration info. Default value: '/etc/ntp.conf' (or '/etc/inet/ntp.conf' on Solaris).
 
-##### `config_dir`
+##### <a name="-ntp--config_dir"></a>`config_dir`
 
 Data type: `Optional[Stdlib::Absolutepath]`
 
 Specifies a directory for the NTP configuration files. Default value: undef.
 
-##### `config_epp`
+##### <a name="-ntp--config_epp"></a>`config_epp`
 
 Data type: `Optional[String]`
 
 Specifies an absolute or relative file path to an EPP template for the config file.
 Example value: 'ntp/ntp.conf.epp'. A validation error is thrown if both this **and** the `config_template` parameter are specified.
 
-##### `config_file_mode`
+##### <a name="-ntp--config_file_mode"></a>`config_file_mode`
 
 Data type: `String`
 
 Specifies a file mode for the ntp configuration file. Default value: '0664'.
 
-##### `config_template`
+##### <a name="-ntp--config_template"></a>`config_template`
 
 Data type: `Optional[String]`
 
 Specifies an absolute or relative file path to an ERB template for the config file.
 Example value: 'ntp/ntp.conf.erb'. A validation error is thrown if both this **and** the `config_epp` parameter are specified.
 
-##### `disable_auth`
+##### <a name="-ntp--daemon_extra_opts"></a>`daemon_extra_opts`
+
+Data type: `Optional[String]`
+
+Specifies any arguments to pass to ntp daemon. Default value: '-g'.
+Example value: '-g -i /var/lib/ntp' to enable jaildir options.
+Note that user is a specific parameter handled separately.
+
+##### <a name="-ntp--disable_auth"></a>`disable_auth`
 
 Data type: `Boolean`
 
 Disables cryptographic authentication for broadcast client, multicast client, and symmetric passive associations.
 
-##### `disable_dhclient`
+##### <a name="-ntp--disable_dhclient"></a>`disable_dhclient`
 
 Data type: `Boolean`
 
 Disables `ntp-servers` in `dhclient.conf` to prevent Dhclient from managing the NTP configuration.
 
-##### `disable_kernel`
+##### <a name="-ntp--disable_kernel"></a>`disable_kernel`
 
 Data type: `Boolean`
 
 Disables kernel time discipline.
 
-##### `disable_monitor`
+##### <a name="-ntp--disable_monitor"></a>`disable_monitor`
 
 Data type: `Boolean`
 
 Disables the monitoring facility in NTP. Default value: true.
 
-##### `driftfile`
+##### <a name="-ntp--driftfile"></a>`driftfile`
 
 Data type: `Stdlib::Absolutepath`
 
 Specifies an NTP driftfile. Default value: '/var/lib/ntp/drift' (except on AIX and Solaris).
 
-##### `enable_mode7`
+##### <a name="-ntp--enable_mode7"></a>`enable_mode7`
 
 Data type: `Boolean`
 
 Enables processing of NTP mode 7 implementation-specific requests which are used by the deprecated ntpdc program. Default value: false.
 
-##### `fudge`
+##### <a name="-ntp--fudge"></a>`fudge`
 
 Data type: `Optional[Array[String]]`
 
 Provides additional information for individual clock drivers. Default value: [ ]
 
-##### `iburst_enable`
+##### <a name="-ntp--iburst_enable"></a>`iburst_enable`
 
 Data type: `Boolean`
 
 Specifies whether to enable the iburst option for every NTP peer. Default value: false (true on AIX and Debian).
 
-##### `interfaces`
+##### <a name="-ntp--interfaces"></a>`interfaces`
 
 Data type: `Array[String]`
 
 Specifies one or more network interfaces for NTP to listen on. Default value: [ ].
 
-##### `interfaces_ignore`
+##### <a name="-ntp--interfaces_ignore"></a>`interfaces_ignore`
 
 Data type: `Array[String]`
 
 Specifies one or more ignore pattern for the NTP listener configuration (for example: all, wildcard, ipv6). Default value: [ ].
 
-##### `keys`
+##### <a name="-ntp--keys"></a>`keys`
 
 Data type: `Array[String]`
 
 Distributes keys to keys file. Default value: [ ].
 
-##### `keys_controlkey`
+##### <a name="-ntp--keys_controlkey"></a>`keys_controlkey`
 
 Data type: `Optional[Ntp::Key_id]`
 
 Specifies the key identifier to use with the ntpq utility. Value in the range of 1 to 65,534 inclusive. Default value: ' '.
 
-##### `keys_enable`
+##### <a name="-ntp--keys_enable"></a>`keys_enable`
 
 Data type: `Boolean`
 
 Whether to enable key-based authentication. Default value: false.
 
-##### `keys_file`
+##### <a name="-ntp--keys_file"></a>`keys_file`
 
 Data type: `Stdlib::Absolutepath`
 
 Specifies the complete path and location of the MD5 key file containing the keys and key identifiers used by ntpd, ntpq and ntpdc
 when operating with symmetric key cryptography. Default value: `/etc/ntp.keys` (on RedHat and Amazon, `/etc/ntp/keys`).
 
-##### `keys_requestkey`
+##### <a name="-ntp--keys_requestkey"></a>`keys_requestkey`
 
 Data type: `Optional[Ntp::Key_id]`
 
 Specifies the key identifier to use with the ntpdc utility program. Value in the range of 1 to 65,534. Default value: ' '.
 
-##### `keys_trusted`
+##### <a name="-ntp--keys_trusted"></a>`keys_trusted`
 
 Data type: `Optional[Array[Ntp::Key_id]]`
 
 Provides one or more keys to be trusted by NTP. Default value: [ ].
 
-##### `leapfile`
+##### <a name="-ntp--leapfile"></a>`leapfile`
 
 Data type: `Optional[Stdlib::Absolutepath]`
 
 Specifies a leap second file for NTP to use. Default value: ' '.
 
-##### `logfile`
+##### <a name="-ntp--logfile"></a>`logfile`
 
 Data type: `Optional[Stdlib::Absolutepath]`
 
 Specifies a log file for NTP to use instead of syslog. Default value: ' '.
 
-##### `minpoll`
+##### <a name="-ntp--logfile_group"></a>`logfile_group`
+
+Data type: `Optional[Variant[String, Integer]]`
+
+Specifies the group for the NTP log file. Default is 'ntp'.
+
+##### <a name="-ntp--logfile_mode"></a>`logfile_mode`
+
+Data type: `String`
+
+Specifies the permission for the NTP log file. Default is 0664.
+
+##### <a name="-ntp--logfile_user"></a>`logfile_user`
+
+Data type: `Optional[Variant[String, Integer]]`
+
+Specifies the user for the NTP log file. Default is 'ntp'.
+
+##### <a name="-ntp--logconfig"></a>`logconfig`
+
+Data type: `Optional[String]`
+
+Specifies the logconfig for NTP to use. Default value: ' '.
+
+##### <a name="-ntp--minpoll"></a>`minpoll`
 
 Data type: `Optional[Ntp::Poll_interval]`
 
 Sets Puppet to non-standard minimal poll interval of upstream servers.
 Values: 3 to 16. Default: undef.
 
-##### `maxpoll`
+##### <a name="-ntp--maxpoll"></a>`maxpoll`
 
 Data type: `Optional[Ntp::Poll_interval]`
 
 Sets use non-standard maximal poll interval of upstream servers.
 Values: 3 to 16. Default option: undef, except on FreeBSD (on FreeBSD, defaults to 9).
 
-##### `ntpsigndsocket`
+##### <a name="-ntp--ntpsigndsocket"></a>`ntpsigndsocket`
 
 Data type: `Optional[Stdlib::Absolutepath]`
 
 Sets NTP to sign packets using the socket in the ntpsigndsocket path. Requires NTP to be configured to sign sockets.
 Value: Path to the socket directory; for example, for Samba: `usr/local/samba/var/lib/ntp_signd/`. Default value: undef.
 
-##### `package_ensure`
+##### <a name="-ntp--package_ensure"></a>`package_ensure`
 
 Data type: `String`
 
 Whether to install the NTP package, and what version to install. Values: 'present', 'latest', or a specific version number.
 Default value: 'present'.
 
-##### `package_manage`
+##### <a name="-ntp--package_manage"></a>`package_manage`
 
 Data type: `Boolean`
 
 Whether to manage the NTP package. Default value: true.
 
-##### `package_name`
+##### <a name="-ntp--package_name"></a>`package_name`
 
 Data type: `Array[String]`
 
 Specifies the NTP package to manage. Default value: ['ntp'] (except on AIX and Solaris).
 
-##### `panic`
+##### <a name="-ntp--panic"></a>`panic`
 
 Data type: `Optional[Integer[0]]`
 
 Whether NTP should "panic" in the event of a very large clock skew. Applies only if `tinker` option set to true or if your environment
 is in a virtual machine. Default value: 0 if environment is virtual, undef in all other cases.
 
-##### `peers`
+##### <a name="-ntp--peers"></a>`peers`
 
 Data type: `Array[String]`
 
 List of NTP servers with which to synchronise the local clock.
 
-##### `tos_orphan`
+##### <a name="-ntp--tos_orphan"></a>`tos_orphan`
 
 Data type: `Optional[Integer[1]]`
 
 Enables Orphan mode for peer group
 Value: Should be set to 2 more than the worst-case externally-reachable source's stratum.
 
-##### `pool`
+##### <a name="-ntp--pool"></a>`pool`
 
 Data type: `Optional[Array[String]]`
 
 List of NTP server pools with which to synchronise the local clock.
 
-##### `preferred_servers`
+##### <a name="-ntp--preferred_servers"></a>`preferred_servers`
 
 Data type: `Array[String]`
 
 Specifies one or more preferred peers. Puppet appends 'prefer' to each matching item in the `servers` array.
 Default value: [ ].
 
-##### `noselect_servers`
+##### <a name="-ntp--noselect_servers"></a>`noselect_servers`
 
 Data type: `Array[String]`
 
 Specifies one or more peers to not sync with. Puppet appends 'noselect' to each matching item in the `servers` array.
 Default value: [ ].
 
-##### `restrict`
+##### <a name="-ntp--restrict"></a>`restrict`
 
 Data type: `Array[String]`
 
@@ -271,142 +392,154 @@ Default value for most operating systems:
 Default value for AIX systems:
   '['default nomodify notrap nopeer noquery', '127.0.0.1',]'.
 
-##### `servers`
+##### <a name="-ntp--servers"></a>`servers`
 
 Data type: `Array[String]`
 
 Specifies one or more servers to be used as NTP peers. Default value: varies by operating system.
 
-##### `service_enable`
+##### <a name="-ntp--service_enable"></a>`service_enable`
 
 Data type: `Boolean`
 
 Whether to enable the NTP service at boot. Default value: true.
 
-##### `service_ensure`
+##### <a name="-ntp--service_ensure"></a>`service_ensure`
 
 Data type: `Enum['running', 'stopped']`
 
 Whether the NTP service should be running. Default value: 'running'.
 
-##### `service_manage`
+##### <a name="-ntp--service_manage"></a>`service_manage`
 
 Data type: `Boolean`
 
 Whether to manage the NTP service.  Default value: true.
 
-##### `service_name`
+##### <a name="-ntp--service_name"></a>`service_name`
 
 Data type: `String`
 
 The NTP service to manage. Default value: varies by operating system.
 
-##### `service_provider`
+##### <a name="-ntp--service_provider"></a>`service_provider`
 
 Data type: `Optional[String]`
 
 Which service provider to use for NTP. Default value: 'undef'.
 
-##### `slewalways`
+##### <a name="-ntp--service_hasstatus"></a>`service_hasstatus`
+
+Data type: `Boolean`
+
+Whether service has a functional status command. Default value: true.
+
+##### <a name="-ntp--service_hasrestart"></a>`service_hasrestart`
+
+Data type: `Boolean`
+
+Whether service has a restart command. Default value: true.
+
+##### <a name="-ntp--slewalways"></a>`slewalways`
 
 Data type: `Optional[Enum['yes','no']]`
 
 xntpd setting to disable stepping behavior and always slew the clock to handle adjustments.
 Only relevant for AIX. Default value: 'undef'. Allowed values: 'yes', 'no'
 
-##### `statistics`
+##### <a name="-ntp--statistics"></a>`statistics`
 
 Data type: `Optional[Array]`
 
 List of statistics to have NTP generate and keep. Default value: [ ].
 
-##### `statsdir`
+##### <a name="-ntp--statsdir"></a>`statsdir`
 
 Data type: `Optional[Stdlib::Absolutepath]`
 
 Location of the NTP statistics directory on the managed system. Default value: '/var/log/ntpstats'.
 
-##### `step_tickers_file`
+##### <a name="-ntp--step_tickers_file"></a>`step_tickers_file`
 
 Data type: `Optional[Stdlib::Absolutepath]`
 
 Location of the step tickers file on the managed system. Default value: varies by operating system.
 
-##### `step_tickers_epp`
+##### <a name="-ntp--step_tickers_epp"></a>`step_tickers_epp`
 
 Data type: `Optional[String]`
 
 Location of the step tickers EPP template file. Default value: varies by operating system.
 Validation error is thrown if both this and the `step_tickers_template` parameters are specified.
 
-##### `step_tickers_template`
+##### <a name="-ntp--step_tickers_template"></a>`step_tickers_template`
 
 Data type: `Optional[String]`
 
 Location of the step tickers ERB template file. Default value: varies by operating system.
 Validation error is thrown if both this and the `step_tickers_epp` parameter are specified.
 
-##### `stepout`
+##### <a name="-ntp--stepout"></a>`stepout`
 
 Data type: `Optional[Integer[0, 65535]]`
 
 Value for stepout if `tinker` value is true. Valid options: unsigned shortint digit. Default value: undef.
 
-##### `tos`
+##### <a name="-ntp--tos"></a>`tos`
 
 Data type: `Boolean`
 
 Whether to enable tos options. Default value: false.
 
-##### `tos_minclock`
+##### <a name="-ntp--tos_minclock"></a>`tos_minclock`
 
 Data type: `Optional[Integer[1]]`
 
 Specifies the minclock tos option. Default value: 3.
 
-##### `tos_maxclock`
+##### <a name="-ntp--tos_maxclock"></a>`tos_maxclock`
 
 Data type: `Optional[Integer[1]]`
 
 Specifies the maxclock tos option. Default value: 6.
 
-##### `tos_minsane`
+##### <a name="-ntp--tos_minsane"></a>`tos_minsane`
 
 Data type: `Optional[Integer[1]]`
 
 Specifies the minsane tos option. Default value: 1.
 
-##### `tos_floor`
+##### <a name="-ntp--tos_floor"></a>`tos_floor`
 
 Data type: `Optional[Integer[1]]`
 
 Specifies the floor tos option. Default value: 1.
 
-##### `tos_ceiling`
+##### <a name="-ntp--tos_ceiling"></a>`tos_ceiling`
 
 Data type: `Optional[Integer[1]]`
 
 Specifies the ceiling tos option. Default value: 15.
 
-##### `tos_cohort`
+##### <a name="-ntp--tos_cohort"></a>`tos_cohort`
 
 Data type: `Variant[Boolean, Integer[0,1]]`
 
 Specifies the cohort tos option. Valid options: 0 or 1. Default value: 0.
 
-##### `tinker`
+##### <a name="-ntp--tinker"></a>`tinker`
 
 Data type: `Optional[Boolean]`
 
 Whether to enable tinker options. Default value: false.
 
-##### `udlc`
+##### <a name="-ntp--udlc"></a>`udlc`
 
 Data type: `Boolean`
 
 Specifies whether to configure NTP to use the undisciplined local clock as a time source. Default value: false.
 
-##### `udlc_stratum`
+##### <a name="-ntp--udlc_stratum"></a>`udlc_stratum`
 
 Data type: `Optional[Integer[1,15]]`
 
@@ -414,3 +547,111 @@ Specifies the stratum the server should operate at when using the undisciplined
 This value should be set to no less than 10 if ntpd might be accessible outside your immediate, controlled network.
 Default value: 10.am udlc
 
+##### <a name="-ntp--user"></a>`user`
+
+Data type: `Optional[String]`
+
+Specifies user to run ntpd daemon. Default value: ntp.
+Usually set by default on Centos7 (/etc/systemd/system/multi-user.target.wants/ntpd.service) and ubuntu 18.04 (/usr/lib/ntp/ntp-systemd-wrapper)
+This is currently restricted to Redhat based systems of version 7 and above and Ubuntu 18.04.
+
+## Data types
+
+### <a name="Ntp--Key_id"></a>`Ntp::Key_id`
+
+See http://doc.ntp.org/4.2.6/authopt.html#controlkey for documentation
+Alternatively: type Ntp::Key_id = Variant[Integer, Pattern['']]
+
+Alias of `Integer[1, 65534]`
+
+### <a name="Ntp--Poll_interval"></a>`Ntp::Poll_interval`
+
+See https://doc.ntp.org/documentation/4.2.6-series/confopt/#command-options for documentation
+Alternatively: type Ntp::Poll_interval = Variant[Integer, Pattern['']]
+
+Alias of `Integer[3, 17]`
+
+## Plans
+
+### <a name="ntp--acceptance--pe_agent"></a>`ntp::acceptance::pe_agent`
+
+Install PE Agent
+
+#### Examples
+
+##### 
+
+```puppet
+ntp::acceptance::pe_agent
+```
+
+### <a name="ntp--acceptance--pe_server"></a>`ntp::acceptance::pe_server`
+
+Install PE Server
+
+#### Examples
+
+##### 
+
+```puppet
+ntp::acceptance::pe_server
+```
+
+#### Parameters
+
+The following parameters are available in the `ntp::acceptance::pe_server` plan:
+
+* [`version`](#-ntp--acceptance--pe_server--version)
+* [`pe_settings`](#-ntp--acceptance--pe_server--pe_settings)
+
+##### <a name="-ntp--acceptance--pe_server--version"></a>`version`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `'2019.8.5'`
+
+##### <a name="-ntp--acceptance--pe_server--pe_settings"></a>`pe_settings`
+
+Data type: `Optional[Hash]`
+
+
+
+Default value: `{ password => 'puppetlabs' }`
+
+### <a name="ntp--acceptance--provision_integration"></a>`ntp::acceptance::provision_integration`
+
+Provisions machines for integration testing
+
+#### Examples
+
+##### 
+
+```puppet
+ntp::acceptance::provision_integration
+```
+
+#### Parameters
+
+The following parameters are available in the `ntp::acceptance::provision_integration` plan:
+
+* [`image`](#-ntp--acceptance--provision_integration--image)
+* [`provision_type`](#-ntp--acceptance--provision_integration--provision_type)
+
+##### <a name="-ntp--acceptance--provision_integration--image"></a>`image`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `'centos-7'`
+
+##### <a name="-ntp--acceptance--provision_integration--provision_type"></a>`provision_type`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `'provision_service'`
+
diff --git a/Rakefile b/Rakefile
deleted file mode 100644
index 335e3f1..0000000
--- a/Rakefile
+++ /dev/null
@@ -1,75 +0,0 @@
-require 'puppetlabs_spec_helper/rake_tasks'
-require 'puppet-syntax/tasks/puppet-syntax'
-require 'puppet_blacksmith/rake_tasks' if Bundler.rubygems.find_name('puppet-blacksmith').any?
-require 'github_changelog_generator/task' if Bundler.rubygems.find_name('github_changelog_generator').any?
-
-def changelog_user
-  return unless Rake.application.top_level_tasks.include? "changelog"
-  returnVal = "puppetlabs" || JSON.load(File.read('metadata.json'))['author']
-  raise "unable to find the changelog_user in .sync.yml, or the author in metadata.json" if returnVal.nil?
-  puts "GitHubChangelogGenerator user:#{returnVal}"
-  returnVal
-end
-
-def changelog_project
-  return unless Rake.application.top_level_tasks.include? "changelog"
-  returnVal = nil || JSON.load(File.read('metadata.json'))['name']
-  raise "unable to find the changelog_project in .sync.yml or the name in metadata.json" if returnVal.nil?
-  puts "GitHubChangelogGenerator project:#{returnVal}"
-  returnVal
-end
-
-def changelog_future_release
-  return unless Rake.application.top_level_tasks.include? "changelog"
-  returnVal = JSON.load(File.read('metadata.json'))['version']
-  raise "unable to find the future_release (version) in metadata.json" if returnVal.nil?
-  puts "GitHubChangelogGenerator future_release:#{returnVal}"
-  returnVal
-end
-
-PuppetLint.configuration.send('disable_relative')
-
-if Bundler.rubygems.find_name('github_changelog_generator').any?
-  GitHubChangelogGenerator::RakeTask.new :changelog do |config|
-    raise "Set CHANGELOG_GITHUB_TOKEN environment variable eg 'export CHANGELOG_GITHUB_TOKEN=valid_token_here'" if Rake.application.top_level_tasks.include? "changelog" and ENV['CHANGELOG_GITHUB_TOKEN'].nil?
-    config.user = "#{changelog_user}"
-    config.project = "#{changelog_project}"
-    config.future_release = "#{changelog_future_release}"
-    config.exclude_labels = ['maintenance']
-    config.header = "# Change log\n\nAll notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org)."
-    config.add_pr_wo_labels = true
-    config.issues = false
-    config.merge_prefix = "### UNCATEGORIZED PRS; GO LABEL THEM"
-    config.configure_sections = {
-      "Changed" => {
-        "prefix" => "### Changed",
-        "labels" => ["backwards-incompatible"],
-      },
-      "Added" => {
-        "prefix" => "### Added",
-        "labels" => ["feature", "enhancement"],
-      },
-      "Fixed" => {
-        "prefix" => "### Fixed",
-        "labels" => ["bugfix"],
-      },
-    }
-  end
-else
-  desc 'Generate a Changelog from GitHub'
-  task :changelog do
-    raise <<EOM
-The changelog tasks depends on unreleased features of the github_changelog_generator gem.
-Please manually add it to your .sync.yml for now, and run `pdk update`:
----
-Gemfile:
-  optional:
-    ':development':
-      - gem: 'github_changelog_generator'
-        git: 'https://github.com/skywinder/github-changelog-generator'
-        ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018'
-        condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')"
-EOM
-  end
-end
-
diff --git a/checksums.json b/checksums.json
deleted file mode 100644
index 4ee5c84..0000000
--- a/checksums.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
-  "CHANGELOG.md": "1279ac7231314793926bfc44b42ac7ac",
-  "CONTRIBUTING.md": "4d17f3c942e7c93d1577cc4438a231e4",
-  "Gemfile": "ad6397591cc7b61bf6642a622fe0bc7b",
-  "HISTORY.md": "0bc8da09607dcac3227f3e27bfb30108",
-  "LICENSE": "3b83ef96387f14655fc854ddc3c6bd57",
-  "MAINTAINERS.md": "9230f8b03e0d9dbb08812838574be9d3",
-  "NOTICE": "c9a9561a16eac9f7304d12680d9df29f",
-  "README.md": "588f111e9a0d45c8f06dfe11a869dca3",
-  "REFERENCE.md": "6a0d27cecd0ce5a5892e58fc2eb3cae7",
-  "Rakefile": "4e5b2a2af33633d63408eda5419a30f6",
-  "data/AIX-family.yaml": "9ebab7ca637c380fa75e7dff0a694795",
-  "data/Amazon.yaml": "592c462c2449a2aa36067b32a5c9b559",
-  "data/Archlinux-family.yaml": "37df45c9174facb6699d68db292098a6",
-  "data/Debian-family.yaml": "9c482d7062f1dd2e073b510d25ea07d9",
-  "data/Fedora.yaml": "7e28c6fea7fe7e41b39bfbb8952138f9",
-  "data/FreeBSD-family.yaml": "a8f4dc99823ca81a2c408b9316184468",
-  "data/Gentoo-family.yaml": "4cbfa6ca120ea1861270d523d97018a1",
-  "data/OpenSuSE.yaml": "0df8a5b62510ce8a86d2040f238b5f76",
-  "data/RedHat-family.yaml": "37faf7710394c7f26bfd3c2cce35871a",
-  "data/SLES-10.yaml": "b1ffac58b18589235bbb546dda98380f",
-  "data/SLES-12.yaml": "0df8a5b62510ce8a86d2040f238b5f76",
-  "data/SLES-15.yaml": "0df8a5b62510ce8a86d2040f238b5f76",
-  "data/Solaris-10.yaml": "5fd9c7acbb4b4d4ad337f310d13734f9",
-  "data/Solaris-11.yaml": "c314fbdb06a00722974146b10dc8ba00",
-  "data/Suse-family.yaml": "b9ddb837225182db53d04b8f3aae2703",
-  "data/common.yaml": "367555c3eec61b47c898e959dec06ab7",
-  "examples/init.pp": "d398e7687ec1d893ef23d1b7d2afc094",
-  "hiera.yaml": "992040941dac878c116c0e02a3ed757e",
-  "locales/config.yaml": "69304e9cce562aa59bd7bd4ddcb91b8b",
-  "locales/ja/puppetlabs-ntp.po": "7265ff57e178feb7a65835f7cf271e2c",
-  "locales/puppetlabs-ntp.pot": "7d6e724b81413279c5980f12c49c47d2",
-  "manifests/config.pp": "ce91f0df43742fa70d20df5a6a471afa",
-  "manifests/init.pp": "d52a6bfcb111bebd7222c665e012cc78",
-  "manifests/install.pp": "fd145448707fc7c97b4eae9a005d6700",
-  "manifests/service.pp": "bd4724cce39df728678cd569793d44b4",
-  "metadata.json": "f9bcdb407b294c65ba2f85e779183a97",
-  "readmes/README_ja_JP.md": "7e6c28fcf29c5a2c170d289edca7f853",
-  "spec/acceptance/class_spec.rb": "5db9f816c7eb14359a5ecce4f791d45e",
-  "spec/acceptance/disable_monitoring_spec.rb": "38f0e4d832bb07d112ad70ba48abbcca",
-  "spec/acceptance/enable_mode7_spec.rb": "a613df0ef09716afbef85fb526d89783",
-  "spec/acceptance/nodesets/centos-7-x64.yml": "a713f3abd3657f0ae2878829badd23cd",
-  "spec/acceptance/nodesets/debian-8-x64.yml": "d2d2977900989f30086ad251a14a1f39",
-  "spec/acceptance/nodesets/default.yml": "b42da5a1ea0c964567ba7495574b8808",
-  "spec/acceptance/nodesets/docker/centos-7.yml": "8a3892807bdd62306ae4774f41ba11ae",
-  "spec/acceptance/nodesets/docker/debian-8.yml": "ac8e871d1068c96de5e85a89daaec6df",
-  "spec/acceptance/nodesets/docker/ubuntu-14.04.yml": "dc42ee922a96908d85b8f0f08203ce58",
-  "spec/acceptance/noselect_servers_spec.rb": "b7a52952c9fc8e70360fa0654cda62a8",
-  "spec/acceptance/ntp_config_spec.rb": "1d9c0d54f3c0005fcb827fa4f62dd38f",
-  "spec/acceptance/ntp_install_spec.rb": "1acfed2aafebd5d3bdb908b7d6024df6",
-  "spec/acceptance/ntp_parameters_spec.rb": "5bc481d37515fe88c64810b935ccd9a3",
-  "spec/acceptance/ntp_service_spec.rb": "3c0b28b1afd118d4a0c05ae9be430e06",
-  "spec/acceptance/preferred_servers_spec.rb": "11c96baae75081f7ab351cf97bc61076",
-  "spec/acceptance/restrict_spec.rb": "2b2adcc0d1e7fd6c8a6e4e55725858aa",
-  "spec/acceptance/statistics_spec.rb": "af3496dc800cf03708ac218f99ac4d83",
-  "spec/acceptance/unsupported_spec.rb": "b7bd7e7696d9234f418e2a2a01523631",
-  "spec/classes/contains_spec.rb": "0f5ae07bd2457f334f0194f4636dc8eb",
-  "spec/classes/ntp_spec.rb": "dd77fcf18e8f11cafd1f86a0cea9a566",
-  "spec/default_facts.yml": "4de3cb611af6981a6d22bc77d7dd6f6f",
-  "spec/fixtures/my_ntp/templates/ntp.conf.epp": "21cd1ad2ded293bd0411e3f1654ebf91",
-  "spec/fixtures/my_ntp/templates/ntp.conf.erb": "a123f4613d4c8f1945139f3307c1bc69",
-  "spec/spec_helper.rb": "239eb0cfd04f81bb12de2121fc0dacc8",
-  "spec/spec_helper_acceptance.rb": "de5821853d8b37ba37a626e23edf8dc3",
-  "spec/spec_helper_local.rb": "35d201e4b56adf60407d84c2a231b9ff",
-  "templates/keys.epp": "4931f55f1669138166cadd70b931ddca",
-  "templates/ntp.conf.epp": "33e0e3367205d3b7a2c29bbf4dae1ad4",
-  "templates/step-tickers.epp": "1a20cfd4c636ce4f696b23419d6c9ace",
-  "types/key_id.pp": "e01c91e0839c5684495a8ea70f2399e5",
-  "types/poll_interval.pp": "6a2190db7dcfbf3a7be0f659b6fd287d"
-}
\ No newline at end of file
diff --git a/data/FreeBSD-family.yaml b/data/FreeBSD-family.yaml
index 30ec3a0..5ec3ee1 100644
--- a/data/FreeBSD-family.yaml
+++ b/data/FreeBSD-family.yaml
@@ -1,4 +1,5 @@
 ntp::driftfile: '/var/db/ntpd.drift'
+ntp::leapfile: '/var/db/ntpd.leap-seconds.list'
 ntp::package_name: ['net/ntp']
 ntp::restrict:
   - 'default kod nomodify notrap nopeer noquery'
diff --git a/data/Solaris-11.yaml b/data/Solaris-11.yaml
index 979b1ce..566ae75 100644
--- a/data/Solaris-11.yaml
+++ b/data/Solaris-11.yaml
@@ -7,5 +7,5 @@ ntp::restrict:
   - '-6 default kod nomodify notrap nopeer noquery'
   - '127.0.0.1'
   - '-6 ::1'
-ntp::service_name: 'network/ntp'
+ntp::service_name: 'network/ntp:default'
 ntp::iburst_enable: false
diff --git a/data/Solaris-family.yaml b/data/Solaris-family.yaml
new file mode 100644
index 0000000..979b1ce
--- /dev/null
+++ b/data/Solaris-family.yaml
@@ -0,0 +1,11 @@
+ntp::config: '/etc/inet/ntp.conf'
+ntp::driftfile: '/var/ntp/ntp.drift'
+ntp::keys_file: '/etc/inet/ntp.keys'
+ntp::package_name: [ 'service/network/ntp' ]
+ntp::restrict:
+  - 'default kod nomodify notrap nopeer noquery'
+  - '-6 default kod nomodify notrap nopeer noquery'
+  - '127.0.0.1'
+  - '-6 ::1'
+ntp::service_name: 'network/ntp'
+ntp::iburst_enable: false
diff --git a/data/common.yaml b/data/common.yaml
index afd5ca6..db1cb51 100644
--- a/data/common.yaml
+++ b/data/common.yaml
@@ -1,11 +1,13 @@
 ---
 ntp::authprov: ~
 ntp::broadcastclient: false
+ntp::burst: false
 ntp::config_dir: ~
 ntp::config_file_mode: '0644'
 ntp::config: '/etc/ntp.conf'
 ntp::config_template: ~
 ntp::config_epp: ~
+ntp::daemon_extra_opts: ~
 ntp::disable_auth: false
 ntp::disable_dhclient: false
 ntp::disable_kernel: false
@@ -24,6 +26,10 @@ ntp::keys_trusted: []
 ntp::keys: []
 ntp::leapfile: ~
 ntp::logfile: ~
+ntp::logfile_user: 'ntp'
+ntp::logfile_mode: '0664'
+ntp::logfile_group: 'ntp'
+ntp::logconfig: ~
 ntp::ntpsigndsocket: ~
 ntp::maxpoll: ~
 ntp::minpoll: ~
@@ -45,6 +51,8 @@ ntp::service_ensure: running
 ntp::service_manage: true
 ntp::service_name: ntpd
 ntp::service_provider: ~
+ntp::service_hasstatus: true
+ntp::service_hasrestart: true
 ntp::slewalways: ~
 ntp::statistics: []
 ntp::statsdir: '/var/log/ntpstats'
@@ -63,3 +71,4 @@ ntp::tos_orphan: ~
 ntp::tos: false
 ntp::udlc_stratum: 10
 ntp::udlc: false
+ntp::user: ~
diff --git a/debian/changelog b/debian/changelog
index 5f49e00..11730b7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-puppet-module-puppetlabs-ntp (7.2.0-2) UNRELEASED; urgency=medium
+puppet-module-puppetlabs-ntp (10.0.0-1) UNRELEASED; urgency=medium
 
   * Bump debhelper from old 11 to 13.
   * Set debhelper-compat version in Build-Depends.
@@ -6,8 +6,9 @@ puppet-module-puppetlabs-ntp (7.2.0-2) UNRELEASED; urgency=medium
   * Remove obsolete field Name from debian/upstream/metadata (already present in
     machine-readable debian/copyright).
   * Replace use of deprecated $ADTTMP with $AUTOPKGTEST_TMP.
+  * New upstream release.
 
- -- Debian Janitor <janitor@jelmer.uk>  Thu, 01 Sep 2022 14:29:44 -0000
+ -- Debian Janitor <janitor@jelmer.uk>  Sun, 04 Jun 2023 06:08:29 -0000
 
 puppet-module-puppetlabs-ntp (7.2.0-1) unstable; urgency=medium
 
diff --git a/examples/init.pp b/examples/init.pp
index e6d9b53..ad69854 100644
--- a/examples/init.pp
+++ b/examples/init.pp
@@ -1,5 +1,4 @@
 node default {
-
   notify { 'enduser-before': }
   notify { 'enduser-after': }
 
@@ -7,5 +6,4 @@ node default {
     require => Notify['enduser-before'],
     before  => Notify['enduser-after'],
   }
-
 }
diff --git a/locales/config.yaml b/locales/config.yaml
deleted file mode 100644
index b71d24a..0000000
--- a/locales/config.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
----
-# This is the project-specific configuration file for setting up
-# fast_gettext for your project.
-gettext:
-  # This is used for the name of the .pot and .po files; they will be
-  # called <project_name>.pot?
-  project_name: puppetlabs-ntp
-  # This is used in comments in the .pot and .po files to indicate what
-  # project the files belong to and should bea little more desctiptive than
-  # <project_name>
-  package_name: puppetlabs-ntp
-  # The locale that the default messages in the .pot file are in
-  default_locale: en
-  # The email used for sending bug reports.
-  bugs_address: docs@puppet.com
-  # The holder of the copyright.
-  copyright_holder: Puppet, Inc.
-  # This determines which comments in code should be eligible for translation.
-  # Any comments that start with this string will be externalized. (Leave
-  # empty to include all.)
-  comments_tag: TRANSLATOR
-  # Patterns for +Dir.glob+ used to find all files that might contain
-  # translatable content, relative to the project root directory
-  source_files:
-      - './lib/**/*.rb'
-  
diff --git a/locales/ja/puppetlabs-ntp.po b/locales/ja/puppetlabs-ntp.po
deleted file mode 100644
index 7255c07..0000000
--- a/locales/ja/puppetlabs-ntp.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# 
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-03-21 14:19+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: LarissaLane <larissa@puppet.com>, 2017\n"
-"Language-Team: Japanese (Japan) (https://www.transifex.com/puppet/teams/29089/ja_JP/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja_JP\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Translate Toolkit 2.0.0\n"
-
-#. metadata.json
-#: .summary
-msgid "Installs, configures, and manages the NTP service."
-msgstr "NTPサービスのインストール、設定、および管理。"
-
-#. metadata.json
-#: .description
-msgid ""
-"NTP Module for Debian, Ubuntu, CentOS, RHEL, OEL, Fedora, FreeBSD, "
-"ArchLinux, Amazon Linux and Gentoo."
-msgstr ""
-"Debian、Ubuntu、CentOS、RHEL、OEL、Fedora、FreeBSD、ArchLinux、Amazon "
-"Linux、およびGentoo用のNTPモジュール。"
diff --git a/locales/puppetlabs-ntp.pot b/locales/puppetlabs-ntp.pot
deleted file mode 100644
index 727772d..0000000
--- a/locales/puppetlabs-ntp.pot
+++ /dev/null
@@ -1,25 +0,0 @@
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-03-21 14:19+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 2.0.0\n"
-
-#. metadata.json
-#: .summary
-msgid "Installs, configures, and manages the NTP service."
-msgstr ""
-
-#. metadata.json
-#: .description
-msgid ""
-"NTP Module for Debian, Ubuntu, CentOS, RHEL, OEL, Fedora, FreeBSD, "
-"ArchLinux, Amazon Linux and Gentoo."
-msgstr ""
diff --git a/manifests/config.pp b/manifests/config.pp
index c007550..5b8691a 100644
--- a/manifests/config.pp
+++ b/manifests/config.pp
@@ -4,12 +4,66 @@
 # @api private
 #
 class ntp::config {
-
   #The servers-netconfig file overrides NTP config on SLES 12, interfering with our configuration.
-  if ($facts['operatingsystem'] == 'SLES' and $facts['operatingsystemmajrelease'] == '12') or
-    ($facts['operatingsystem'] == 'OpenSuSE' and $facts['operatingsystemmajrelease'] == '42') {
+  if ($facts['os']['name'] == 'SLES' and $facts['os']['release']['major'] == '12') or
+  ($facts['os']['name'] == 'OpenSuSE' and $facts['os']['release']['major'] == '42') {
     file { '/var/run/ntp/servers-netconfig':
-      ensure => 'absent'
+      ensure => 'absent',
+    }
+  }
+
+  case $facts['os']['family'] {
+    'redhat': {
+      $daemon_config = '/etc/sysconfig/ntpd'
+      if $ntp::daemon_extra_opts {
+        file_line { 'Set NTPD daemon options':
+          ensure => present,
+          path   => $daemon_config,
+          line   => "OPTIONS='${ntp::daemon_extra_opts}'",
+          match  => '^OPTIONS\=',
+        }
+      }
+      if $ntp::user and $facts['os']['release']['major'] != '6' {
+        file_line { 'Set NTPD daemon user':
+          ensure => present,
+          path   => '/etc/systemd/system/multi-user.target.wants/ntpd.service',
+          line   => "ExecStart=/usr/sbin/ntpd -u ${ntp::user}:${ntp::user} \$OPTIONS",
+          match  => '^ExecStart\=',
+        }
+      }
+    }
+    'Debian': {
+      $daemon_config = '/etc/default/ntp'
+      if $ntp::daemon_extra_opts {
+        file_line { 'Set NTPD daemon options':
+          ensure => present,
+          path   => $daemon_config,
+          line   => "NTPD_OPTS='${ntp::daemon_extra_opts}'",
+          match  => '^NTPD_OPTS\=',
+        }
+      }
+      if $ntp::user and $facts['os']['release']['major'] == '18.04' {
+        file_line { 'Set NTPD daemon user':
+          ensure => present,
+          path   => '/usr/lib/ntp/ntp-systemd-wrapper',
+          line   => "RUNASUSER=${ntp::user}",
+          match  => '^RUNASUSER\=',
+        }
+      }
+    }
+    'Suse': {
+      $daemon_config = '/etc/sysconfig/ntp'
+      if $ntp::daemon_extra_opts {
+        file_line { 'Set NTPD daemon options':
+          ensure => present,
+          path   => $daemon_config,
+          line   => "OPTIONS='${ntp::daemon_extra_opts}'",
+          match  => '^OPTIONS\=',
+        }
+      }
+    }
+    default: {
+      # Empty
     }
   }
 
@@ -52,29 +106,29 @@ class ntp::config {
     ensure  => file,
     owner   => 0,
     group   => 0,
-    mode    => $::ntp::config_file_mode,
+    mode    => $ntp::config_file_mode,
     content => $config_content,
   }
 
   #If both epp and erb are defined, throw validation error.
   #Otherwise use the defined erb/epp template, or use default
 
-  if $::ntp::step_tickers_file {
-    if $::ntp::step_tickers_template and $::ntp::step_tickers_epp {
+  if $ntp::step_tickers_file {
+    if $ntp::step_tickers_template and $ntp::step_tickers_epp {
       fail('Cannot supply both step_tickers_file and step_tickers_epp templates for step ticker file')
-    } elsif $::ntp::step_tickers_template {
+    } elsif $ntp::step_tickers_template {
       $step_ticker_content = template($ntp::step_tickers_template)
-    } elsif $::ntp::step_tickers_epp {
-      $step_ticker_content = epp($::ntp::step_tickers_epp)
-    } else{
+    } elsif $ntp::step_tickers_epp {
+      $step_ticker_content = epp($ntp::step_tickers_epp)
+    } else {
       $step_ticker_content = epp('ntp/step-tickers.epp')
     }
 
-    file { $::ntp::step_tickers_file:
+    file { $ntp::step_tickers_file:
       ensure  => file,
       owner   => 0,
       group   => 0,
-      mode    => $::ntp::config_file_mode,
+      mode    => $ntp::config_file_mode,
       content => $step_ticker_content,
     }
   }
@@ -82,9 +136,9 @@ class ntp::config {
   if $ntp::logfile {
     file { $ntp::logfile:
       ensure => file,
-      owner  => 'ntp',
-      group  => 'ntp',
-      mode   => '0664',
+      owner  => $ntp::logfile_user,
+      group  => $ntp::logfile_group,
+      mode   => $ntp::logfile_mode,
     }
   }
 
diff --git a/manifests/init.pp b/manifests/init.pp
index 6643f27..2fc853e 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -8,6 +8,9 @@
 # @param broadcastclient
 #   Enables reception of broadcast server messages to any local interface. Default value: false.
 #
+# @param burst
+#   When the server is reachable, send a burst of eight packets instead of the usual one. Default value: false.
+#
 # @param config
 #   Specifies a file for NTP's configuration info. Default value: '/etc/ntp.conf' (or '/etc/inet/ntp.conf' on Solaris).
 #
@@ -25,6 +28,11 @@
 #   Specifies an absolute or relative file path to an ERB template for the config file.
 #   Example value: 'ntp/ntp.conf.erb'. A validation error is thrown if both this **and** the `config_epp` parameter are specified.
 #
+# @param daemon_extra_opts
+#   Specifies any arguments to pass to ntp daemon. Default value: '-g'.
+#   Example value: '-g -i /var/lib/ntp' to enable jaildir options.
+#   Note that user is a specific parameter handled separately.
+#
 # @param disable_auth
 #   Disables cryptographic authentication for broadcast client, multicast client, and symmetric passive associations.
 #
@@ -52,7 +60,7 @@
 # @param interfaces
 #   Specifies one or more network interfaces for NTP to listen on. Default value: [ ].
 #
-# @param interfaces_ignore 
+# @param interfaces_ignore
 #   Specifies one or more ignore pattern for the NTP listener configuration (for example: all, wildcard, ipv6). Default value: [ ].
 #
 # @param keys
@@ -80,6 +88,18 @@
 # @param logfile
 #   Specifies a log file for NTP to use instead of syslog. Default value: ' '.
 #
+# @param logfile_group
+#   Specifies the group for the NTP log file. Default is 'ntp'.
+#
+# @param logfile_mode
+#   Specifies the permission for the NTP log file. Default is 0664.
+#
+# @param logfile_user
+#   Specifies the user for the NTP log file. Default is 'ntp'.
+#
+# @param logconfig
+#   Specifies the logconfig for NTP to use. Default value: ' '.
+#
 # @param minpoll
 #   Sets Puppet to non-standard minimal poll interval of upstream servers.
 #   Values: 3 to 16. Default: undef.
@@ -150,8 +170,14 @@
 # @param service_provider
 #   Which service provider to use for NTP. Default value: 'undef'.
 #
+# @param service_hasstatus
+#   Whether service has a functional status command. Default value: true.
+#
+# @param service_hasrestart
+#   Whether service has a restart command. Default value: true.
+#
 # @param slewalways
-#   xntpd setting to disable stepping behavior and always slew the clock to handle adjustments. 
+#   xntpd setting to disable stepping behavior and always slew the clock to handle adjustments.
 #   Only relevant for AIX. Default value: 'undef'. Allowed values: 'yes', 'no'
 #
 # @param statistics
@@ -206,68 +232,82 @@
 #   This value should be set to no less than 10 if ntpd might be accessible outside your immediate, controlled network.
 #   Default value: 10.am udlc
 #
+# @param user
+#   Specifies user to run ntpd daemon. Default value: ntp.
+#   Usually set by default on Centos7 (/etc/systemd/system/multi-user.target.wants/ntpd.service) and ubuntu 18.04 (/usr/lib/ntp/ntp-systemd-wrapper)
+#   This is currently restricted to Redhat based systems of version 7 and above and Ubuntu 18.04.
+#
 class ntp (
-  Boolean $broadcastclient,
-  Stdlib::Absolutepath $config,
-  Optional[Stdlib::Absolutepath] $config_dir,
-  String $config_file_mode,
-  Optional[String] $config_epp,
-  Optional[String] $config_template,
-  Boolean $disable_auth,
-  Boolean $disable_dhclient,
-  Boolean $disable_kernel,
-  Boolean $disable_monitor,
-  Boolean $enable_mode7,
-  Optional[Array[String]] $fudge,
-  Stdlib::Absolutepath $driftfile,
-  Optional[Stdlib::Absolutepath] $leapfile,
-  Optional[Stdlib::Absolutepath] $logfile,
-  Boolean $iburst_enable,
-  Array[String] $keys,
-  Boolean $keys_enable,
-  Stdlib::Absolutepath $keys_file,
-  Optional[Ntp::Key_id] $keys_controlkey,
-  Optional[Ntp::Key_id] $keys_requestkey,
-  Optional[Array[Ntp::Key_id]] $keys_trusted,
-  Optional[Ntp::Poll_interval] $minpoll,
-  Optional[Ntp::Poll_interval] $maxpoll,
-  String $package_ensure,
-  Boolean $package_manage,
-  Array[String] $package_name,
-  Optional[Integer[0]] $panic,
-  Array[String] $peers,
-  Optional[Array[String]] $pool,
-  Array[String] $preferred_servers,
-  Array[String] $noselect_servers,
-  Array[String] $restrict,
-  Array[String] $interfaces,
-  Array[String] $interfaces_ignore,
-  Array[String] $servers,
-  Boolean $service_enable,
-  Enum['running', 'stopped'] $service_ensure,
-  Boolean $service_manage,
-  String $service_name,
-  Optional[String] $service_provider,
-  Optional[Enum['yes','no']] $slewalways,
-  Optional[Array] $statistics,
-  Optional[Stdlib::Absolutepath] $statsdir,
-  Optional[Integer[0, 65535]] $stepout,
-  Optional[Stdlib::Absolutepath] $step_tickers_file,
-  Optional[String] $step_tickers_epp,
-  Optional[String] $step_tickers_template,
-  Optional[Boolean] $tinker,
-  Boolean $tos,
-  Optional[Integer[1]] $tos_maxclock,
-  Optional[Integer[1]] $tos_minclock,
-  Optional[Integer[1]] $tos_minsane,
-  Optional[Integer[1]] $tos_floor,
-  Optional[Integer[1]] $tos_ceiling,
-  Optional[Integer[1]] $tos_orphan,
-  Variant[Boolean, Integer[0,1]] $tos_cohort,
-  Boolean $udlc,
-  Optional[Integer[1,15]] $udlc_stratum,
-  Optional[Stdlib::Absolutepath] $ntpsigndsocket,
-  Optional[String] $authprov,
+  Boolean                             $broadcastclient,
+  Boolean                             $burst,
+  Stdlib::Absolutepath                $config,
+  Optional[Stdlib::Absolutepath]      $config_dir,
+  String                              $config_file_mode,
+  Optional[String]                    $config_epp,
+  Optional[String]                    $config_template,
+  Boolean                             $disable_auth,
+  Boolean                             $disable_dhclient,
+  Boolean                             $disable_kernel,
+  Boolean                             $disable_monitor,
+  Boolean                             $enable_mode7,
+  Optional[Array[String]]             $fudge,
+  Stdlib::Absolutepath                $driftfile,
+  Optional[Stdlib::Absolutepath]      $leapfile,
+  Optional[Stdlib::Absolutepath]      $logfile,
+  Optional[Variant[String, Integer]]  $logfile_group,
+  String                              $logfile_mode,
+  Optional[Variant[String, Integer]]  $logfile_user,
+  Optional[String]                    $logconfig,
+  Boolean                             $iburst_enable,
+  Array[String]                       $keys,
+  Boolean                             $keys_enable,
+  Stdlib::Absolutepath                $keys_file,
+  Optional[Ntp::Key_id]               $keys_controlkey,
+  Optional[Ntp::Key_id]               $keys_requestkey,
+  Optional[Array[Ntp::Key_id]]        $keys_trusted,
+  Optional[Ntp::Poll_interval]        $minpoll,
+  Optional[Ntp::Poll_interval]        $maxpoll,
+  String                              $package_ensure,
+  Boolean                             $package_manage,
+  Array[String]                       $package_name,
+  Optional[Integer[0]]                $panic,
+  Array[String]                       $peers,
+  Optional[Array[String]]             $pool,
+  Array[String]                       $preferred_servers,
+  Array[String]                       $noselect_servers,
+  Array[String]                       $restrict,
+  Array[String]                       $interfaces,
+  Array[String]                       $interfaces_ignore,
+  Array[String]                       $servers,
+  Boolean                             $service_enable,
+  Enum['running', 'stopped']          $service_ensure,
+  Boolean                             $service_manage,
+  String                              $service_name,
+  Optional[String]                    $service_provider,
+  Boolean                             $service_hasstatus,
+  Boolean                             $service_hasrestart,
+  Optional[Enum['yes','no']]          $slewalways,
+  Optional[Array]                     $statistics,
+  Optional[Stdlib::Absolutepath]      $statsdir,
+  Optional[Integer[0, 65535]]         $stepout,
+  Optional[Stdlib::Absolutepath]      $step_tickers_file,
+  Optional[String]                    $step_tickers_epp,
+  Optional[String]                    $step_tickers_template,
+  Optional[Boolean]                   $tinker,
+  Boolean                             $tos,
+  Optional[Integer[1]]                $tos_maxclock,
+  Optional[Integer[1]]                $tos_minclock,
+  Optional[Integer[1]]                $tos_minsane,
+  Optional[Integer[1]]                $tos_floor,
+  Optional[Integer[1]]                $tos_ceiling,
+  Optional[Integer[1]]                $tos_orphan,
+  Variant[Boolean, Integer[0,1]]      $tos_cohort,
+  Boolean                             $udlc,
+  Optional[Integer[1,15]]             $udlc_stratum,
+  Optional[Stdlib::Absolutepath]      $ntpsigndsocket,
+  Optional[String]                    $authprov,
+  Optional[String]                    $user,
+  Optional[String]                    $daemon_extra_opts,
 ) {
   # defaults for tinker and panic are different, when running on virtual machines
   if $facts['is_virtual'] {
@@ -282,7 +322,7 @@ class ntp (
   contain ntp::config
   contain ntp::service
 
-  Class['::ntp::install']
-  -> Class['::ntp::config']
-  ~> Class['::ntp::service']
+  Class['ntp::install']
+  -> Class['ntp::config']
+  ~> Class['ntp::service']
 }
diff --git a/manifests/install.pp b/manifests/install.pp
index 4d60b20..806f340 100644
--- a/manifests/install.pp
+++ b/manifests/install.pp
@@ -4,13 +4,9 @@
 # @api private
 #
 class ntp::install {
-
   if $ntp::package_manage {
-
     package { $ntp::package_name:
       ensure => $ntp::package_ensure,
     }
-
   }
-
 }
diff --git a/manifests/service.pp b/manifests/service.pp
index 9d6c2b7..c8f365e 100644
--- a/manifests/service.pp
+++ b/manifests/service.pp
@@ -4,16 +4,14 @@
 # @api private
 #
 class ntp::service {
-
   if $ntp::service_manage == true {
     service { 'ntp':
       ensure     => $ntp::service_ensure,
       enable     => $ntp::service_enable,
       name       => $ntp::service_name,
       provider   => $ntp::service_provider,
-      hasstatus  => true,
-      hasrestart => true,
+      hasstatus  => $ntp::service_hasstatus,
+      hasrestart => $ntp::service_hasrestart,
     }
   }
-
 }
diff --git a/metadata.json b/metadata.json
index b4d73d4..c0a76f1 100644
--- a/metadata.json
+++ b/metadata.json
@@ -1,7 +1,7 @@
 {
   "name": "puppetlabs-ntp",
-  "version": "7.2.0",
-  "author": "Puppet Inc",
+  "version": "10.0.0",
+  "author": "puppetlabs",
   "summary": "Installs, configures, and manages the NTP service.",
   "license": "Apache-2.0",
   "source": "https://github.com/puppetlabs/puppetlabs-ntp",
@@ -10,61 +10,54 @@
   "dependencies": [
     {
       "name": "puppetlabs/stdlib",
-      "version_requirement": ">= 4.13.1 < 5.0.0"
+      "version_requirement": ">= 4.13.1 < 9.0.0"
     }
   ],
-  "data_provider": null,
   "operatingsystem_support": [
     {
       "operatingsystem": "RedHat",
       "operatingsystemrelease": [
-        "5",
-        "6",
         "7"
       ]
     },
     {
       "operatingsystem": "CentOS",
       "operatingsystemrelease": [
-        "5",
-        "6",
         "7"
       ]
     },
     {
       "operatingsystem": "OracleLinux",
       "operatingsystemrelease": [
-        "5",
-        "6",
         "7"
       ]
     },
     {
       "operatingsystem": "Scientific",
       "operatingsystemrelease": [
-        "6",
         "7"
       ]
     },
     {
       "operatingsystem": "SLES",
       "operatingsystemrelease": [
-        "11 SP1",
-        "12"
+        "12",
+        "15"
       ]
     },
     {
       "operatingsystem": "Debian",
       "operatingsystemrelease": [
-        "8",
-        "9"
+        "10",
+        "11"
       ]
     },
     {
       "operatingsystem": "Ubuntu",
       "operatingsystemrelease": [
-        "14.04",
-        "16.04"
+        "18.04",
+        "20.04",
+        "22.04"
       ]
     },
     {
@@ -76,32 +69,18 @@
     {
       "operatingsystem": "AIX",
       "operatingsystemrelease": [
-        "5.3",
-        "6.1",
         "7.1"
       ]
-    },
-    {
-      "operatingsystem": "Amazon",
-      "operatingsystemrelease": [
-        "2013.09",
-        "2014.03",
-        "2014.09",
-        "2015.03"
-      ]
-    },
-    {
-      "operatingsystem": "Archlinux"
     }
   ],
   "requirements": [
     {
       "name": "puppet",
-      "version_requirement": ">= 4.9.4 < 6.0.0"
+      "version_requirement": ">= 7.0.0 < 9.0.0"
     }
   ],
   "description": "NTP Module for Debian, Ubuntu, CentOS, RHEL, OEL, Fedora, FreeBSD, ArchLinux, Amazon Linux and Gentoo.",
-  "template-url": "https://github.com/puppetlabs/pdk-templates",
-  "template-ref": "heads/master-0-gc87eee3",
-  "pdk-version": "1.7.0.pre (2)"
+  "template-url": "https://github.com/puppetlabs/pdk-templates.git#main",
+  "template-ref": "heads/main-0-ge5b0114",
+  "pdk-version": "2.7.1"
 }
diff --git a/pdk.yaml b/pdk.yaml
new file mode 100644
index 0000000..4bef4bd
--- /dev/null
+++ b/pdk.yaml
@@ -0,0 +1,2 @@
+---
+ignore: []
diff --git a/plans/acceptance/pe_agent.pp b/plans/acceptance/pe_agent.pp
new file mode 100644
index 0000000..8353010
--- /dev/null
+++ b/plans/acceptance/pe_agent.pp
@@ -0,0 +1,18 @@
+# @summary Install PE
+#
+# Install PE Agent
+#
+# @example
+#   ntp::acceptance::pe_agent
+plan ntp::acceptance::pe_agent() {
+  #identify pe server and agent nodes
+  $puppet_server =  get_targets('*').filter |$n| { $n.vars['role'] == 'ntpserver' }
+  $puppet_agent =  get_targets('*').filter |$n| { $n.vars['role'] == 'ntpclient' }
+
+  # install pe server
+  run_plan(
+    'deploy_pe::provision_agent',
+    $puppet_agent,
+    'master' => $puppet_server,
+  )
+}
diff --git a/plans/acceptance/pe_server.pp b/plans/acceptance/pe_server.pp
new file mode 100644
index 0000000..9d69366
--- /dev/null
+++ b/plans/acceptance/pe_server.pp
@@ -0,0 +1,21 @@
+# @summary Install PE Server
+#
+# Install PE Server
+#
+# @example
+#   ntp::acceptance::pe_server
+plan ntp::acceptance::pe_server(
+  Optional[String] $version = '2019.8.5',
+  Optional[Hash] $pe_settings = { password => 'puppetlabs' }
+) {
+  #identify pe server node
+  $puppet_server =  get_targets('*').filter |$n| { $n.vars['role'] == 'ntpserver' }
+
+  # install pe server
+  run_plan(
+    'deploy_pe::provision_master',
+    $puppet_server,
+    'version' => $version,
+    'pe_settings' => $pe_settings
+  )
+}
diff --git a/plans/acceptance/provision_integration.pp b/plans/acceptance/provision_integration.pp
new file mode 100644
index 0000000..8a5cd5e
--- /dev/null
+++ b/plans/acceptance/provision_integration.pp
@@ -0,0 +1,14 @@
+# @summary Provisions machines
+#
+# Provisions machines for integration testing
+#
+# @example
+#   ntp::acceptance::provision_integration
+plan ntp::acceptance::provision_integration(
+  Optional[String] $image = 'centos-7',
+  Optional[String] $provision_type = 'provision_service',
+) {
+  #provision server machine, set role
+  run_task("provision::${provision_type}", 'localhost', action => 'provision', platform => $image, vars => 'role: ntpserver')
+  run_task("provision::${provision_type}", 'localhost', action => 'provision', platform => $image, vars => 'role: ntpclient')
+}
diff --git a/provision.yaml b/provision.yaml
new file mode 100644
index 0000000..8644823
--- /dev/null
+++ b/provision.yaml
@@ -0,0 +1,63 @@
+---
+default:
+  provisioner: docker_exp
+  images:
+  - litmusimage/centos:7
+vagrant:
+  provisioner: vagrant
+  images:
+  - centos/7
+  - generic/ubuntu1804
+travis_deb:
+  provisioner: docker_exp
+  images:
+  - litmusimage/debian:8
+  - litmusimage/debian:9
+  - litmusimage/debian:10
+travis_ub_6:
+  provisioner: docker
+  images:
+  - litmusimage/ubuntu:14.04
+  - litmusimage/ubuntu:16.04
+  - litmusimage/ubuntu:18.04
+  - litmusimage/ubuntu:20.04
+travis_el7:
+  provisioner: docker_exp
+  images:
+  - litmusimage/centos:7
+  - litmusimage/oraclelinux:7
+  - litmusimage/scientificlinux:7
+release_checks_6:
+  provisioner: abs
+  images:
+  - redhat-6-x86_64
+  - redhat-7-x86_64
+  - centos-6-x86_64
+  - centos-7-x86_64
+  - oracle-5-x86_64
+  - oracle-6-x86_64
+  - oracle-7-x86_64
+  - scientific-6-x86_64
+  - scientific-7-x86_64
+  - debian-8-x86_64
+  - debian-9-x86_64
+  - debian-10-x86_64
+  - sles-12-x86_64
+  - sles-15-x86_64
+  - ubuntu-1404-x86_64
+  - ubuntu-1604-x86_64
+  - ubuntu-1804-x86_64
+  - ubuntu-2004-x86_64
+release_checks_7:
+  provisioner: abs
+  images:
+  - redhat-7-x86_64
+  - centos-7-x86_64
+  - oracle-7-x86_64
+  - scientific-7-x86_64
+  - sles-12-x86_64
+  - sles-15-x86_64
+  - debian-9-x86_64
+  - debian-10-x86_64
+  - ubuntu-1804-x86_64
+  - ubuntu-2004-x86_64
diff --git a/spec/acceptance/class_spec.rb b/spec/acceptance/class_spec.rb
deleted file mode 100644
index a29a4a7..0000000
--- a/spec/acceptance/class_spec.rb
+++ /dev/null
@@ -1,45 +0,0 @@
-require 'spec_helper_acceptance'
-
-describe 'ntp class:', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
-  context 'with ntp' do
-    let(:pp) { "class { 'ntp': }" }
-
-    it 'runs successfully - not_to match' do
-      apply_manifest(pp, catch_failures: true) do |r|
-        expect(r.stderr).not_to match(%r{error}i)
-      end
-    end
-
-    it 'runs successfully - not_to eq' do
-      apply_manifest(pp, catch_failures: true) do |r|
-        expect(r.stderr).not_to eq(%r{error}i)
-      end
-    end
-
-    it 'runs successfully - to be_zero' do
-      apply_manifest(pp, catch_failures: true) do |r|
-        expect(r.exit_code).to be_zero
-      end
-    end
-  end
-
-  context 'when service_ensure => stopped:' do
-    let(:pp) { "class { 'ntp': service_ensure => stopped }" }
-
-    it 'runs successfully - not_to match' do
-      apply_manifest(pp, catch_failures: true) do |r|
-        expect(r.stderr).not_to match(%r{error}i)
-      end
-    end
-  end
-
-  context 'when service_ensure => running:' do
-    it 'runs successfully - not_to match' do
-      pp = "class { 'ntp': service_ensure => running }"
-
-      apply_manifest(pp, catch_failures: true) do |r|
-        expect(r.stderr).not_to match(%r{error}i)
-      end
-    end
-  end
-end
diff --git a/spec/acceptance/disable_monitoring_spec.rb b/spec/acceptance/disable_monitoring_spec.rb
deleted file mode 100644
index d2f81f7..0000000
--- a/spec/acceptance/disable_monitoring_spec.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-require 'spec_helper_acceptance'
-
-config = if fact('osfamily') == 'Solaris'
-           '/etc/inet/ntp.conf'
-         else
-           '/etc/ntp.conf'
-         end
-
-describe 'ntp class with disable_monitor:', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
-  context 'with should disable' do
-    let(:pp) { "class { 'ntp': disable_monitor => true }" }
-
-    it 'runs twice' do
-      apply_manifest(pp, catch_failures: true)
-      apply_manifest(pp, catch_changes: true)
-    end
-
-    describe file(config.to_s) do
-      its(:content) { is_expected.to match('disable monitor') }
-    end
-  end
-
-  context 'when enabled' do
-    let(:pp) { "class { 'ntp': disable_monitor => false }" }
-
-    it 'runs twice' do
-      apply_manifest(pp, catch_failures: true)
-      apply_manifest(pp, catch_changes: true)
-    end
-
-    describe file(config.to_s) do
-      its(:content) { is_expected.not_to match('disable monitor') }
-    end
-  end
-end
diff --git a/spec/acceptance/enable_mode7_spec.rb b/spec/acceptance/enable_mode7_spec.rb
deleted file mode 100644
index 5a493b9..0000000
--- a/spec/acceptance/enable_mode7_spec.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-require 'spec_helper_acceptance'
-
-config = if fact('osfamily') == 'Solaris'
-           '/etc/inet/ntp.conf'
-         else
-           '/etc/ntp.conf'
-         end
-
-describe 'ntp class with enable_mode7:', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
-  context 'with enable' do
-    let(:pp) { "class { 'ntp': enable_mode7 => true }" }
-
-    it 'runs twice' do
-      apply_manifest(pp, catch_failures: true)
-      apply_manifest(pp, catch_changes: true)
-    end
-
-    describe file(config.to_s) do
-      its(:content) { is_expected.to match('enable mode7') }
-    end
-  end
-
-  context 'with disable' do
-    let(:pp) { "class { 'ntp': enable_mode7 => false }" }
-
-    it 'runs twice' do
-      apply_manifest(pp, catch_failures: true)
-      apply_manifest(pp, catch_changes: true)
-    end
-
-    describe file(config.to_s) do
-      its(:content) { is_expected.not_to match('enable mode7') }
-    end
-  end
-end
diff --git a/spec/acceptance/nodesets/centos-7-x64.yml b/spec/acceptance/nodesets/centos-7-x64.yml
deleted file mode 100644
index 5eebdef..0000000
--- a/spec/acceptance/nodesets/centos-7-x64.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-HOSTS:
-  centos-7-x64:
-    roles:
-      - agent
-      - default
-    platform: el-7-x86_64
-    hypervisor: vagrant
-    box: puppetlabs/centos-7.2-64-nocm
-CONFIG:
-  type: foss
diff --git a/spec/acceptance/nodesets/debian-8-x64.yml b/spec/acceptance/nodesets/debian-8-x64.yml
deleted file mode 100644
index fef6e63..0000000
--- a/spec/acceptance/nodesets/debian-8-x64.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-HOSTS:
-  debian-8-x64:
-    roles:
-      - agent
-      - default
-    platform: debian-8-amd64
-    hypervisor: vagrant
-    box: puppetlabs/debian-8.2-64-nocm
-CONFIG:
-  type: foss
diff --git a/spec/acceptance/nodesets/default.yml b/spec/acceptance/nodesets/default.yml
deleted file mode 100644
index dba339c..0000000
--- a/spec/acceptance/nodesets/default.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-HOSTS:
-  ubuntu-1404-x64:
-    roles:
-      - agent
-      - default
-    platform: ubuntu-14.04-amd64
-    hypervisor: vagrant
-    box: puppetlabs/ubuntu-14.04-64-nocm
-CONFIG:
-  type: foss
diff --git a/spec/acceptance/nodesets/docker/centos-7.yml b/spec/acceptance/nodesets/docker/centos-7.yml
deleted file mode 100644
index a3333aa..0000000
--- a/spec/acceptance/nodesets/docker/centos-7.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-HOSTS:
-  centos-7-x64:
-    platform: el-7-x86_64
-    hypervisor: docker
-    image: centos:7
-    docker_preserve_image: true
-    docker_cmd: '["/usr/sbin/init"]'
-    # install various tools required to get the image up to usable levels
-    docker_image_commands:
-      - 'yum install -y crontabs tar wget openssl sysvinit-tools iproute which initscripts'
-CONFIG:
-  trace_limit: 200
diff --git a/spec/acceptance/nodesets/docker/debian-8.yml b/spec/acceptance/nodesets/docker/debian-8.yml
deleted file mode 100644
index df5c319..0000000
--- a/spec/acceptance/nodesets/docker/debian-8.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-HOSTS:
-  debian-8-x64:
-    platform: debian-8-amd64
-    hypervisor: docker
-    image: debian:8
-    docker_preserve_image: true
-    docker_cmd: '["/sbin/init"]'
-    docker_image_commands:
-      - 'apt-get update && apt-get install -y net-tools wget locales strace lsof && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen'
-CONFIG:
-  trace_limit: 200
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 b1efa58..0000000
--- a/spec/acceptance/nodesets/docker/ubuntu-14.04.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-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:
-      # ensure that upstart is booting correctly in the container
-      - 'rm /usr/sbin/policy-rc.d && rm /sbin/initctl && dpkg-divert --rename --remove /sbin/initctl && apt-get update && apt-get install -y net-tools wget && locale-gen en_US.UTF-8'
-CONFIG:
-  trace_limit: 200
diff --git a/spec/acceptance/noselect_servers_spec.rb b/spec/acceptance/noselect_servers_spec.rb
deleted file mode 100644
index 981dfbd..0000000
--- a/spec/acceptance/noselect_servers_spec.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-require 'spec_helper_acceptance'
-
-config = if fact('osfamily') == 'Solaris'
-           '/etc/inet/ntp.conf'
-         else
-           '/etc/ntp.conf'
-         end
-
-describe 'noselect servers', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
-  pp = <<-MANIFEST
-    class { '::ntp':
-      servers          => ['a', 'b', 'c', 'd'],
-      noselect_servers => ['c', 'd'],
-    }
-  MANIFEST
-
-  it 'applies cleanly' do
-    apply_manifest(pp, catch_failures: true) do |r|
-      expect(r.stderr).not_to match(%r{error}i)
-    end
-  end
-
-  describe file(config.to_s) do
-    it { is_expected.to be_file }
-    its(:content) { is_expected.to match 'server a' }
-    its(:content) { is_expected.to match 'server b' }
-    its(:content) { is_expected.to match %r{server c (iburst\s|)noselect} }
-    its(:content) { is_expected.to match %r{server d (iburst\s|)noselect} }
-  end
-end
diff --git a/spec/acceptance/ntp_config_spec.rb b/spec/acceptance/ntp_config_spec.rb
deleted file mode 100644
index b386004..0000000
--- a/spec/acceptance/ntp_config_spec.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-require 'spec_helper_acceptance'
-
-case fact('osfamily')
-when 'FreeBSD'
-  line = '0.freebsd.pool.ntp.org maxpoll 9 iburst'
-when 'Debian'
-  line = '0.debian.pool.ntp.org iburst'
-when 'RedHat'
-  line = case fact('operatingsystem')
-         when 'Fedora'
-           '0.fedora.pool.ntp.org'
-         else
-           '0.centos.pool.ntp.org'
-         end
-when 'Suse'
-  line = '0.opensuse.pool.ntp.org'
-when 'Gentoo'
-  line = '0.gentoo.pool.ntp.org'
-when 'Linux'
-  case fact('operatingsystem')
-  when 'ArchLinux'
-    line = '0.arch.pool.ntp.org'
-  when 'Gentoo'
-    line = '0.gentoo.pool.ntp.org'
-  end
-when 'Solaris'
-  line = '0.pool.ntp.org'
-when 'AIX'
-  line = '0.debian.pool.ntp.org iburst'
-end
-
-config = if fact('osfamily') == 'Solaris'
-           '/etc/inet/ntp.conf'
-         else
-           '/etc/ntp.conf'
-         end
-
-describe 'ntp::config class', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
-  it 'sets up ntp.conf' do
-    apply_manifest(%(
-      class { 'ntp': }
-    ), catch_failures: true)
-  end
-
-  describe file(config.to_s) do
-    it { is_expected.to be_file }
-    its(:content) { is_expected.to match line }
-  end
-end
diff --git a/spec/acceptance/ntp_install_spec.rb b/spec/acceptance/ntp_install_spec.rb
deleted file mode 100644
index 275c136..0000000
--- a/spec/acceptance/ntp_install_spec.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-require 'spec_helper_acceptance'
-
-case fact('osfamily')
-when 'FreeBSD'
-  packagename = 'net/ntp'
-when 'Gentoo'
-  packagename = 'net-misc/ntp'
-when 'Linux'
-  case fact('operatingsystem')
-  when 'ArchLinux'
-    packagename = 'ntp'
-  when 'Gentoo'
-    packagename = 'net-misc/ntp'
-  end
-when 'AIX'
-  packagename = 'bos.net.tcp.client'
-when 'Solaris'
-  case fact('kernelrelease')
-  when '5.10'
-    packagename = ['SUNWntp4r', 'SUNWntp4u']
-  when '5.11'
-    packagename = 'service/network/ntp'
-  end
-end
-
-describe 'ntp::install class', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
-  it 'installs the package' do
-    apply_manifest(%(
-      class { 'ntp': }
-    ), catch_failures: true)
-  end
-
-  Array(packagename).each do |package|
-    describe package(package) do
-      it { is_expected.to be_installed }
-    end
-  end
-end
diff --git a/spec/acceptance/ntp_parameters_spec.rb b/spec/acceptance/ntp_parameters_spec.rb
deleted file mode 100644
index 7e0b1ca..0000000
--- a/spec/acceptance/ntp_parameters_spec.rb
+++ /dev/null
@@ -1,236 +0,0 @@
-require 'spec_helper_acceptance'
-
-case fact('osfamily')
-when 'FreeBSD'
-  packagename = 'net/ntp'
-when 'Gentoo'
-  packagename = 'net-misc/ntp'
-when 'Linux'
-  case fact('operatingsystem')
-  when 'ArchLinux'
-    packagename = 'ntp'
-  when 'Gentoo'
-    packagename = 'net-misc/ntp'
-  end
-when 'AIX'
-  packagename = 'bos.net.tcp.client'
-when 'Solaris'
-  case fact('kernelrelease')
-  when '5.10'
-    packagename = ['SUNWntp4r', 'SUNWntp4u']
-  when '5.11'
-    packagename = 'service/network/ntp'
-  end
-else
-  if fact('operatingsystem') == 'SLES' && fact('operatingsystemmajrelease') == '12'
-    'ntpd'
-  else
-    'ntp'
-  end
-end
-
-keysfile = if fact('osfamily') == 'RedHat'
-             '/etc/ntp/keys'
-           elsif fact('osfamily') == 'Solaris'
-             '/etc/inet/ntp.keys'
-           else
-             '/etc/ntp.keys'
-           end
-
-config = if fact('osfamily') == 'Solaris'
-           '/etc/inet/ntp.conf'
-         else
-           '/etc/ntp.conf'
-         end
-
-describe 'ntp class:', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
-  # FM-5470, this was added to reset failed count and work around puppet 3.x
-  if (fact('operatingsystem') == 'SLES' && fact('operatingsystemmajrelease') == '12') || (fact('operatingsystem') == 'Scientific' && fact('operatingsystemmajrelease') == '7')
-    after :each do
-      shell('systemctl reset-failed ntpd.service')
-    end
-  end
-
-  it 'applies successfully' do
-    pp = "class { 'ntp': }"
-
-    apply_manifest(pp, catch_failures: true) do |r|
-      expect(r.stderr).not_to match(%r{error}i)
-    end
-  end
-
-  describe 'config' do
-    it 'sets the ntp.conf location' do
-      pp = "class { 'ntp': config => '/etc/antp.conf' }"
-      apply_manifest(pp, catch_failures: true)
-    end
-
-    describe file('/etc/antp.conf') do
-      it { is_expected.to be_file }
-    end
-  end
-
-  describe 'config_template' do
-    before :all do
-      modulepath = default['distmoduledir']
-      shell("mkdir -p #{modulepath}/test/templates")
-      # Add spurious template logic to verify the use of the correct template rendering engine
-      shell("echo '<% [1].each do |i| %>erbserver<%= i %><%end %>' >> #{modulepath}/test/templates/ntp.conf.erb")
-    end
-
-    it 'sets the ntp.conf erb template location' do
-      pp = "class { 'ntp': config_template => 'test/ntp.conf.erb' }"
-      apply_manifest(pp, catch_failures: true)
-    end
-
-    describe file(config.to_s) do
-      it { is_expected.to be_file }
-      its(:content) { is_expected.to match 'erbserver1' }
-    end
-
-    it 'sets the ntp.conf epp template location and the ntp.conf erb template location which should fail' do
-      pp = "class { 'ntp': config_template => 'test/ntp.conf.erb', config_epp => 'test/ntp.conf.epp' }"
-      expect(apply_manifest(pp, expect_failures: true).stderr).to match(%r{Cannot supply both config_epp and config_template}i)
-    end
-  end
-
-  describe 'config_epp' do
-    before :all do
-      modulepath = default['distmoduledir']
-      shell("mkdir -p #{modulepath}/test/templates")
-      # Add spurious template logic to verify the use of the correct template rendering engine
-      shell("echo '<% [1].each |$i| { -%>eppserver<%= $i %><% } -%>' >> #{modulepath}/test/templates/ntp.conf.epp")
-    end
-
-    it 'sets the ntp.conf epp template location' do
-      pp = "class { 'ntp': config_epp => 'test/ntp.conf.epp' }"
-      apply_manifest(pp, catch_failures: true)
-    end
-
-    describe file(config.to_s) do
-      it { is_expected.to be_file }
-      its(:content) { is_expected.to match 'eppserver1' }
-    end
-
-    it 'sets the ntp.conf epp template location and the ntp.conf erb template location which should fail' do
-      pp = "class { 'ntp': config_template => 'test/ntp.conf.erb', config_epp => 'test/ntp.conf.epp' }"
-      expect(apply_manifest(pp, expect_failures: true).stderr).to match(%r{Cannot supply both config_epp and config_template}i)
-    end
-  end
-
-  describe 'driftfile' do
-    it 'sets the driftfile location' do
-      pp = "class { 'ntp': driftfile => '/tmp/driftfile' }"
-      apply_manifest(pp, catch_failures: true)
-    end
-
-    describe file(config.to_s) do
-      it { is_expected.to be_file }
-      its(:content) { is_expected.to match 'driftfile /tmp/driftfile' }
-    end
-  end
-
-  describe 'keys' do
-    pp = <<-MANIFEST
-    class { 'ntp':
-      keys_enable     => true,
-      keys_controlkey => 1,
-      keys_requestkey => 1,
-      keys_trusted    => [ 1, 2 ],
-      keys            => [ '1 M AAAABBBB' ],
-    }
-    MANIFEST
-
-    it 'enables the key parameters' do
-      apply_manifest(pp, catch_failures: true)
-    end
-
-    describe file(config.to_s) do
-      it { is_expected.to be_file }
-      its(:content) { is_expected.to match "keys #{keysfile}" }
-      its(:content) { is_expected.to match 'controlkey 1' }
-      its(:content) { is_expected.to match 'requestkey 1' }
-      its(:content) { is_expected.to match 'trustedkey 1 2' }
-    end
-
-    describe file(keysfile) do
-      it { is_expected.to be_file }
-      its(:content) { is_expected.to match '1 M AAAABBBB' }
-    end
-  end
-
-  describe 'package' do
-    pp = <<-MANIFEST
-    class { 'ntp':
-      package_ensure => present,
-      package_name   => #{Array(packagename).inspect},
-    }
-    MANIFEST
-
-    it 'installs the right package' do
-      apply_manifest(pp, catch_failures: true)
-    end
-
-    Array(packagename).each do |package|
-      describe package(package) do
-        it { is_expected.to be_installed }
-      end
-    end
-  end
-
-  describe 'panic => 0' do
-    pp = <<-MANIFEST
-    class { 'ntp':
-      panic => 0,
-    }
-    MANIFEST
-
-    it 'disables the tinker panic setting' do
-      apply_manifest(pp, catch_failures: true)
-    end
-
-    describe file(config.to_s) do
-      its(:content) { is_expected.to match 'tinker panic 0' }
-    end
-  end
-
-  describe 'panic => 1' do
-    pp = <<-MANIFEST
-    class { 'ntp':
-      panic => 1,
-    }
-    MANIFEST
-
-    it 'enables the tinker panic setting' do
-      apply_manifest(pp, catch_failures: true)
-    end
-
-    describe file(config.to_s) do
-      its(:content) { is_expected.to match 'tinker panic 1' }
-    end
-  end
-
-  describe 'udlc' do
-    it 'adds a udlc' do
-      pp = "class { 'ntp': udlc => true }"
-      apply_manifest(pp, catch_failures: true)
-    end
-
-    describe file(config.to_s) do
-      it { is_expected.to be_file }
-      its(:content) { is_expected.to match '127.127.1.0' }
-    end
-  end
-
-  describe 'udlc_stratum' do
-    it 'sets the stratum value when using udlc' do
-      pp = "class { 'ntp': udlc => true, udlc_stratum => 10 }"
-      apply_manifest(pp, catch_failures: true)
-    end
-
-    describe file(config.to_s) do
-      it { is_expected.to be_file }
-      its(:content) { is_expected.to match 'stratum 10' }
-    end
-  end
-end
diff --git a/spec/acceptance/ntp_service_spec.rb b/spec/acceptance/ntp_service_spec.rb
deleted file mode 100644
index f1ca302..0000000
--- a/spec/acceptance/ntp_service_spec.rb
+++ /dev/null
@@ -1,107 +0,0 @@
-require 'spec_helper_acceptance'
-require 'specinfra'
-
-case fact('osfamily')
-when 'RedHat', 'FreeBSD', 'Linux', 'Gentoo'
-  servicename = 'ntpd'
-when 'Solaris'
-  case fact('kernelrelease')
-  when '5.10'
-    servicename = 'network/ntp4'
-  when '5.11'
-    servicename = 'network/ntp'
-  end
-when 'AIX'
-  servicename = 'xntpd'
-else
-  servicename = if fact('operatingsystem') == 'SLES' && fact('operatingsystemmajrelease') == '12'
-                  'ntpd'
-                else
-                  'ntp'
-                end
-end
-shared_examples 'running' do
-  describe service(servicename) do
-    if !(fact('operatingsystem') == 'SLES' && fact('operatingsystemmajrelease') == '12')
-      it { is_expected.to be_running }
-      if fact('operatingsystem') == 'Debian' && fact('operatingsystemmajrelease') == '8'
-        pending 'Should be enabled - Bug 760616 on Debian 8'
-      else
-        it { is_expected.to be_enabled }
-      end
-    else
-      # HACK: until we either update SpecInfra or come up with alternative
-      shell('service ntpd start')
-      output = shell('service ntpd status')
-      it {
-        expect(output.stdout) =~ %r{Active\:\s+active\s+\(running\)}
-      }
-      it {
-        expect(output.stdout) =~ %r{Loaded.*enabled\)$}
-      }
-    end
-  end
-end
-describe 'service tests' do
-  describe 'ntp::service class', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
-    context 'with a basic test' do
-      it 'sets up the service' do
-        apply_manifest(%(
-          class { 'ntp': }
-        ), catch_failures: true)
-      end
-
-      it_behaves_like 'running'
-    end
-
-    describe 'service parameters' do
-      pp = <<-MANIFEST
-      class { 'ntp':
-        service_enable => true,
-        service_ensure => running,
-        service_manage => true,
-        service_name   => '#{servicename}'
-      }
-      MANIFEST
-      it 'starts the service' do
-        apply_manifest(pp, catch_failures: true)
-      end
-      it_behaves_like 'running'
-    end
-  end
-
-  describe 'service is unmanaged' do
-    pp = <<-MANIFEST
-      class { 'ntp':
-        service_enable => false,
-        service_ensure => stopped,
-        service_manage => false,
-        service_name   => '#{servicename}'
-      }
-    MANIFEST
-    it 'shouldnt stop the service' do
-      apply_manifest(pp, catch_failures: true)
-    end
-
-    describe service(servicename) do
-      if !(fact('operatingsystem') == 'SLES' && fact('operatingsystemmajrelease') == '12')
-        it { is_expected.to be_running }
-        if fact('operatingsystem') == 'Debian' && fact('operatingsystemmajrelease') == '8'
-          pending 'Should be enabled - Bug 760616 on Debian 8'
-        else
-          it { is_expected.to be_enabled }
-        end
-      else
-        # HACK: until we either update SpecInfra or come up with alternative
-        let(:output) { shell('service ntpd status', acceptable_exit_codes: [0, 3]) }
-
-        it 'is disabled' do
-          expect(output.stdout) =~ %r{Loaded.*disabled\)$}
-        end
-        it 'is stopped' do
-          expect(output.stdout) =~ %r{Active\:\s+inactive}
-        end
-      end
-    end
-  end
-end
diff --git a/spec/acceptance/preferred_servers_spec.rb b/spec/acceptance/preferred_servers_spec.rb
deleted file mode 100644
index 4262469..0000000
--- a/spec/acceptance/preferred_servers_spec.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-require 'spec_helper_acceptance'
-
-config = if fact('osfamily') == 'Solaris'
-           '/etc/inet/ntp.conf'
-         else
-           '/etc/ntp.conf'
-         end
-
-describe 'preferred servers', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
-  pp = <<-MANIFEST
-    class { '::ntp':
-      servers           => ['a', 'b', 'c', 'd'],
-      preferred_servers => ['c', 'd'],
-    }
-  MANIFEST
-
-  it 'applies cleanly' do
-    apply_manifest(pp, catch_failures: true) do |r|
-      expect(r.stderr).not_to match(%r{error}i)
-    end
-  end
-
-  describe file(config.to_s) do
-    it { is_expected.to be_file }
-    its(:content) { is_expected.to match 'server a' }
-    its(:content) { is_expected.to match 'server b' }
-    its(:content) { is_expected.to match %r{server c (iburst\s|)prefer} }
-    its(:content) { is_expected.to match %r{server d (iburst\s|)prefer} }
-  end
-end
diff --git a/spec/acceptance/restrict_spec.rb b/spec/acceptance/restrict_spec.rb
deleted file mode 100644
index c26eb91..0000000
--- a/spec/acceptance/restrict_spec.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-require 'spec_helper_acceptance'
-
-config = if fact('osfamily') == 'Solaris'
-           '/etc/inet/ntp.conf'
-         else
-           '/etc/ntp.conf'
-         end
-
-describe 'ntp class with restrict:', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
-  context 'when running' do
-    let(:pp) { "class { 'ntp': restrict => ['test restrict']}" }
-
-    it 'runs twice' do
-      2.times do
-        apply_manifest(pp, catch_failures: true) do |r|
-          expect(r.stderr).not_to match(%r{error}i)
-        end
-      end
-    end
-  end
-
-  describe file(config.to_s) do
-    its(:content) { is_expected.to match('test restrict') }
-  end
-end
diff --git a/spec/acceptance/statistics_spec.rb b/spec/acceptance/statistics_spec.rb
deleted file mode 100644
index 6cf50e8..0000000
--- a/spec/acceptance/statistics_spec.rb
+++ /dev/null
@@ -1,29 +0,0 @@
-require 'spec_helper_acceptance'
-
-config = if fact('osfamily') == 'Solaris'
-           '/etc/inet/ntp.conf'
-         else
-           '/etc/ntp.conf'
-         end
-
-describe 'ntp class with statistics:', unless: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
-  context 'when successful' do
-    let(:pp) { "class { 'ntp': statistics => ['loopstats'], disable_monitor => false}" }
-
-    it 'runs twice' do
-      2.times do
-        apply_manifest(pp, catch_failures: true) do |r|
-          expect(r.stderr).not_to match(%r{error}i)
-        end
-      end
-    end
-  end
-
-  describe file(config.to_s) do
-    its(:content) { is_expected.to match('filegen loopstats file loopstats type day enable') }
-  end
-
-  describe file(config.to_s) do
-    its(:content) { is_expected.to match('statsdir /var/log/ntpstats') }
-  end
-end
diff --git a/spec/acceptance/unsupported_spec.rb b/spec/acceptance/unsupported_spec.rb
deleted file mode 100644
index 7c6018e..0000000
--- a/spec/acceptance/unsupported_spec.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-require 'spec_helper_acceptance'
-
-describe 'unsupported distributions and OSes', if: UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
-  it 'fails' do
-    pp = <<-MANIFEST
-    class { 'ntp': }
-    MANIFEST
-    expect(apply_manifest(pp, expect_failures: true).stderr).to match(%r{is not supported on an}i)
-  end
-end
diff --git a/spec/classes/contains_spec.rb b/spec/classes/contains_spec.rb
deleted file mode 100644
index 9208b09..0000000
--- a/spec/classes/contains_spec.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-# To check the correct dependancies are set up for NTP.
-
-require 'spec_helper'
-describe 'ntp' do
-  let(:facts) { { is_virtual: false } }
-  let :pre_condition do
-    'file { "foo.rb":
-      ensure => present,
-      path => "/etc/tmp",
-      notify => Service["ntp"] }'
-  end
-
-  on_supported_os.reject { |_, f| f[:os]['family'] == 'Solaris' }.each do |os, f|
-    context "on #{os}" do
-      let(:facts) do
-        f.merge(super())
-      end
-
-      it { is_expected.to compile.with_all_deps }
-      describe 'Testing the dependancies between the classes' do
-        it { is_expected.to contain_class('ntp::install') }
-        it { is_expected.to contain_class('ntp::config') }
-        it { is_expected.to contain_class('ntp::service') }
-        it { is_expected.to contain_class('ntp::install').that_comes_before('Class[ntp::config]') }
-        it { is_expected.to contain_class('ntp::service').that_subscribes_to('Class[ntp::config]') }
-        it { is_expected.to contain_file('foo.rb').that_notifies('Service[ntp]') }
-      end
-    end
-  end
-end
diff --git a/spec/classes/ntp_spec.rb b/spec/classes/ntp_spec.rb
deleted file mode 100644
index c10c995..0000000
--- a/spec/classes/ntp_spec.rb
+++ /dev/null
@@ -1,940 +0,0 @@
-require 'spec_helper'
-
-on_supported_os.reject { |_, f| f[:os]['family'] == 'Solaris' }.each do |os, f|
-  describe 'ntp' do
-    let(:facts) { { is_virtual: false } }
-
-    context "on #{os}" do
-      let(:facts) do
-        f.merge(super())
-      end
-
-      it { is_expected.to compile.with_all_deps }
-
-      it { is_expected.to contain_class('ntp::install') }
-      it { is_expected.to contain_class('ntp::config') }
-      it { is_expected.to contain_class('ntp::service') }
-
-      describe 'ntp::config' do
-        it { is_expected.to contain_file('/etc/ntp.conf').with_owner('0') }
-        it { is_expected.to contain_file('/etc/ntp.conf').with_group('0') }
-        it { is_expected.to contain_file('/etc/ntp.conf').with_mode('0644') }
-
-        if f[:os]['family'] == 'RedHat'
-          it { is_expected.to contain_file('/etc/ntp/step-tickers').with_owner('0') }
-          it { is_expected.to contain_file('/etc/ntp/step-tickers').with_group('0') }
-          it { is_expected.to contain_file('/etc/ntp/step-tickers').with_mode('0644') }
-        end
-
-        if f[:os]['family'] == 'Suse' && f[:os]['release']['major'] == '12'
-          it { is_expected.to contain_file('/var/run/ntp/servers-netconfig').with_ensure_absent }
-        end
-
-        describe 'allows template to be overridden with erb template' do
-          let(:params) { { config_template: 'my_ntp/ntp.conf.erb' } }
-
-          it { is_expected.to contain_file('/etc/ntp.conf').with_content(%r{erbserver1}) }
-        end
-
-        describe 'allows template to be overridden with epp template' do
-          let(:params) { { config_epp: 'my_ntp/ntp.conf.epp' } }
-
-          it { is_expected.to contain_file('/etc/ntp.conf').with_content(%r{eppserver1}) }
-        end
-
-        describe 'keys' do
-          context 'when enabled' do
-            let(:params) do
-              {
-                keys_enable: true,
-                keys_trusted: [1, 2, 3],
-                keys_controlkey: 2,
-                keys_requestkey: 3,
-              }
-            end
-
-            it {
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{trustedkey 1 2 3})
-            }
-            it {
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{controlkey 2})
-            }
-            it {
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{requestkey 3})
-            }
-          end
-        end
-
-        context 'when disabled' do
-          let(:params) do
-            {
-              keys_enable: false,
-              keys_trusted: [1, 2, 3],
-              keys_controlkey: 2,
-              keys_requestkey: 3,
-            }
-          end
-
-          it {
-            is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{trustedkey 1 2 3})
-          }
-          it {
-            is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{controlkey 2})
-          }
-          it {
-            is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{requestkey 3})
-          }
-        end
-
-        describe 'preferred servers' do
-          context 'when set' do
-            let(:params) do
-              {
-                servers: ['a', 'b', 'c', 'd'],
-                preferred_servers: ['a', 'b'],
-                iburst_enable: false,
-              }
-            end
-
-            it {
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{server a prefer( maxpoll 9)?\nserver b prefer( maxpoll 9)?\nserver c( maxpoll 9)?\nserver d( maxpoll 9)?})
-            }
-          end
-          context 'when not set' do
-            let(:params) do
-              {
-                servers: ['a', 'b', 'c', 'd'],
-                preferred_servers: [],
-              }
-            end
-
-            it {
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{server a prefer})
-            }
-          end
-        end
-
-        describe 'noselect servers' do
-          context 'when set' do
-            let(:params) do
-              {
-                servers: ['a', 'b', 'c', 'd'],
-                noselect_servers: ['a', 'b'],
-                iburst_enable: false,
-              }
-            end
-
-            it {
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{server a (maxpoll 9 )?noselect\nserver b (maxpoll 9 )?noselect\nserver c( maxpoll 9)?\nserver d( maxpoll 9)?})
-            }
-          end
-          context 'when not set' do
-            let(:params) do
-              {
-                servers: ['a', 'b', 'c', 'd'],
-                noselect_servers: [],
-              }
-            end
-
-            it {
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{server a noselect})
-            }
-          end
-        end
-        describe 'specified interfaces' do
-          context 'when set' do
-            let(:params) do
-              {
-                servers: ['a', 'b', 'c', 'd'],
-                interfaces: ['127.0.0.1', 'a.b.c.d'],
-              }
-            end
-
-            it {
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{interface ignore wildcard\ninterface listen 127.0.0.1\ninterface listen a.b.c.d})
-            }
-          end
-          context 'when not set' do
-            let(:params) do
-              {
-                servers: ['a', 'b', 'c', 'd'],
-              }
-            end
-
-            it {
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{interface ignore wildcard})
-            }
-          end
-        end
-
-        describe 'specified ignore interfaces' do
-          context 'when set' do
-            let(:params) do
-              {
-                interfaces: ['a.b.c.d'],
-                interfaces_ignore: ['wildcard', 'ipv6'],
-              }
-            end
-
-            it {
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{interface ignore wildcard\ninterface ignore ipv6\ninterface listen a.b.c.d})
-            }
-          end
-          context 'when not set' do
-            let(:params) do
-              {
-                interfaces: ['127.0.0.1'],
-                servers: ['a', 'b', 'c', 'd'],
-              }
-            end
-
-            it {
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{interface ignore wildcard\ninterface listen 127.0.0.1})
-            }
-          end
-        end
-
-        describe 'with parameter disable_auth' do
-          context 'when set to true' do
-            let(:params) do
-              {
-                disable_auth: true,
-              }
-            end
-
-            it 'contains disable auth setting' do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^disable auth\n})
-            end
-          end
-          context 'when set to false' do
-            let(:params) do
-              {
-                disable_auth: false,
-              }
-            end
-
-            it 'does not contain disable auth setting' do
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{^disable auth\n})
-            end
-          end
-        end
-
-        describe 'with parameter disable_dhclient' do
-          context 'when set to true' do
-            let(:params) do
-              {
-                disable_dhclient: true,
-              }
-            end
-
-            it 'contains disable ntp-servers setting' do
-              is_expected.to contain_augeas('disable ntp-servers in dhclient.conf')
-            end
-            it 'contains dhcp file' do
-              is_expected.to contain_file('/var/lib/ntp/ntp.conf.dhcp').with_ensure('absent')
-            end
-            it 'contains ntp.sh file' do
-              is_expected.to contain_file('/etc/dhcp/dhclient.d/ntp.sh').with_ensure('absent')
-            end
-          end
-          context 'when set to false' do
-            let(:params) do
-              {
-                disable_dhclient: false,
-              }
-            end
-
-            it 'does not contain disable ntp-servers setting' do
-              is_expected.not_to contain_augeas('disable ntp-servers in dhclient.conf')
-            end
-            it 'does not contain dhcp file' do
-              is_expected.not_to contain_file('/var/lib/ntp/ntp.conf.dhcp').with_ensure('absent')
-            end
-          end
-        end
-        describe 'with parameter disable_kernel' do
-          context 'when set to true' do
-            let(:params) do
-              {
-                disable_kernel: true,
-              }
-            end
-
-            it 'contains disable kernel setting' do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^disable kernel\n})
-            end
-          end
-          context 'when set to false' do
-            let(:params) do
-              {
-                disable_kernel: false,
-              }
-            end
-
-            it 'does not contain disable kernel setting' do
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{^disable kernel\n})
-            end
-          end
-        end
-        describe 'with parameter disable_monitor' do
-          context 'when default' do
-            let(:params) do
-              {
-              }
-            end
-
-            it 'contains disable monitor setting' do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^disable monitor\n})
-            end
-          end
-          context 'when set to true' do
-            let(:params) do
-              {
-                disable_monitor: true,
-              }
-            end
-
-            it 'contains disable monitor setting' do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^disable monitor\n})
-            end
-          end
-          context 'when set to false' do
-            let(:params) do
-              {
-                disable_monitor: false,
-              }
-            end
-
-            it 'does not contain disable monitor setting' do
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{^disable monitor\n})
-            end
-          end
-        end
-        describe 'with parameter enable_mode7' do
-          context 'when default' do
-            let(:params) do
-              {
-              }
-            end
-
-            it 'does not contain enable mode7 setting' do
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{^enable mode7\n})
-            end
-          end
-          context 'when set to true' do
-            let(:params) do
-              {
-                enable_mode7: true,
-              }
-            end
-
-            it 'contains enable mode7 setting' do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^enable mode7\n})
-            end
-          end
-          context 'when set to false' do
-            let(:params) do
-              {
-                enable_mode7: false,
-              }
-            end
-
-            it 'does not contain enable mode7 setting' do
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{^enable mode7\n})
-            end
-          end
-        end
-        describe 'with parameter broadcastclient' do
-          context 'when set to true' do
-            let(:params) do
-              {
-                broadcastclient: true,
-              }
-            end
-
-            it 'contains broadcastclient setting' do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^broadcastclient\n})
-            end
-          end
-          context 'when set to false' do
-            let(:params) do
-              {
-                broadcastclient: false,
-              }
-            end
-
-            it 'does not contain broadcastclient setting' do
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{^broadcastclient\n})
-            end
-          end
-          context 'when setting custom config_dir' do
-            let(:params) do
-              {
-                keys_enable: true,
-                config_dir: '/tmp/foo',
-                keys_file: '/tmp/foo/ntp.keys',
-              }
-            end
-
-            it 'contains custom config directory' do
-              is_expected.to contain_file('/tmp/foo').with(
-                'ensure' => 'directory', 'owner' => '0', 'group' => '0', 'mode' => '0775', 'recurse' => 'false',
-              )
-            end
-          end
-          context 'when manually setting conf file mode to 0777' do
-            let(:params) do
-              {
-                config_file_mode: '0777',
-              }
-            end
-
-            it 'contains file mode of 0777' do
-              is_expected.to contain_file('/etc/ntp.conf').with_mode('0777')
-            end
-          end
-        end
-
-        context 'when choosing the default pool servers' do
-          case f[:os]['family']
-          when 'RedHat'
-            it 'uses the centos ntp servers' do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{server \d.centos.pool.ntp.org})
-            end
-            it do
-              is_expected.to contain_file('/etc/ntp/step-tickers').with('content' => %r{\d.centos.pool.ntp.org})
-            end
-          when 'Debian'
-            it 'uses the debian ntp servers' do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{server \d.debian.pool.ntp.org iburst\n})
-            end
-          when 'Suse'
-            it 'uses the opensuse ntp servers' do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{server \d.opensuse.pool.ntp.org})
-            end
-          when 'FreeBSD'
-            it 'uses the freebsd ntp servers' do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{server \d.freebsd.pool.ntp.org iburst maxpoll 9})
-            end
-          when 'Archlinux'
-            it 'uses the Archlinux NTP servers' do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{server \d.arch.pool.ntp.org})
-            end
-          when 'Solaris', 'Gentoo'
-            it 'uses the generic NTP pool servers' do
-              is_expected.to contain_file('/etc/inet/ntp.conf').with('content' => %r{server \d.pool.ntp.org})
-            end
-          else
-            it {
-              expect { catalogue }.to raise_error(
-                %r{The ntp module is not supported on an unsupported based system.},
-              )
-            }
-          end
-        end
-
-        describe 'slewalways' do
-          context 'when absent' do
-            if f[:kernel] == 'AIX'
-              it 'on AIX does contain "slewalways no"' do
-                is_expected.to contain_file('/etc/ntp.conf').with_content(%r{^slewalways no})
-              end
-            else
-              it 'on non-AIX does not contain a slewalways' do
-                is_expected.to contain_file('/etc/ntp.conf').without_content(%r{^slewalways})
-              end
-            end
-          end
-
-          context 'when "no"' do
-            let(:params) do
-              {
-                slewalways: 'no',
-              }
-            end
-
-            it 'does contain "slewalways no"' do
-              is_expected.to contain_file('/etc/ntp.conf').with_content(%r{^slewalways no})
-            end
-          end
-
-          context 'when "yes"' do
-            let(:params) do
-              {
-                slewalways: 'yes',
-              }
-            end
-
-            it 'does contain "slewalways yes"' do
-              is_expected.to contain_file('/etc/ntp.conf').with_content(%r{^slewalways yes})
-            end
-          end
-        end
-      end
-
-      describe 'ntp::install' do
-        let(:params) { { package_ensure: 'present', package_name: ['ntp'], package_manage: true } }
-
-        it {
-          is_expected.to contain_package('ntp').with(
-            ensure: 'present',
-          )
-        }
-
-        describe 'should allow package ensure to be overridden' do
-          let(:params) { { package_ensure: 'latest', package_name: ['ntp'], package_manage: true } }
-
-          it { is_expected.to contain_package('ntp').with_ensure('latest') }
-        end
-
-        describe 'should allow the package name to be overridden' do
-          let(:params) { { package_ensure: 'present', package_name: ['hambaby'], package_manage: true } }
-
-          it { is_expected.to contain_package('hambaby') }
-        end
-
-        describe 'should allow the package to be unmanaged' do
-          let(:params) { { package_manage: false, package_name: ['ntp'] } }
-
-          it { is_expected.not_to contain_package('ntp') }
-        end
-      end
-
-      describe 'ntp::service' do
-        let(:params) do
-          {
-            service_manage: true,
-            service_enable: true,
-            service_ensure: 'running',
-            service_name: 'ntp',
-          }
-        end
-
-        describe 'with defaults' do
-          it {
-            is_expected.to contain_service('ntp').with(
-              enable: true,
-              ensure: 'running',
-              name: 'ntp',
-            )
-          }
-        end
-
-        describe 'service_ensure' do
-          describe 'when overridden' do
-            let(:params) { { service_name: 'ntp', service_ensure: 'stopped' } }
-
-            it { is_expected.to contain_service('ntp').with_ensure('stopped') }
-          end
-        end
-
-        describe 'service_manage' do
-          let(:params) do
-            {
-              service_manage: false,
-              service_enable: true,
-              service_ensure: 'running',
-              service_name: 'ntpd',
-            }
-          end
-
-          it 'when set to false' do
-            is_expected.not_to contain_service('ntp').with('enable' => true,
-                                                           'ensure' => 'running',
-                                                           'name'   => 'ntpd')
-          end
-        end
-      end
-
-      describe 'with parameter iburst_enable' do
-        context 'when set to true' do
-          let(:params) do
-            {
-              iburst_enable: true,
-            }
-          end
-
-          it do
-            is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{iburst})
-          end
-        end
-
-        context 'when set to false' do
-          let(:params) do
-            {
-              iburst_enable: false,
-            }
-          end
-
-          it do
-            is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{iburst\n})
-          end
-        end
-      end
-
-      describe 'with tinker parameter changed' do
-        describe 'when set to false' do
-          context 'when panic or stepout not overriden' do
-            let(:params) do
-              {
-                tinker: false,
-              }
-            end
-
-            it do
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{^tinker })
-            end
-          end
-
-          context 'when panic overriden' do
-            let(:params) do
-              {
-                tinker: false,
-                panic: 257,
-              }
-            end
-
-            it do
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{^tinker })
-            end
-          end
-
-          context 'when stepout overriden' do
-            let(:params) do
-              {
-                tinker: false,
-                stepout: 5,
-              }
-            end
-
-            it do
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{^tinker })
-            end
-          end
-
-          context 'when panic and stepout overriden' do
-            let(:params) do
-              {
-                tinker: false,
-                panic: 257,
-                stepout: 5,
-              }
-            end
-
-            it do
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{^tinker })
-            end
-          end
-        end
-        describe 'when set to true' do
-          context 'when only tinker set to true' do
-            let(:params) do
-              {
-                tinker: true,
-              }
-            end
-
-            it do
-              is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{^tinker })
-            end
-          end
-
-          context 'when panic changed' do
-            let(:params) do
-              {
-                tinker: true,
-                panic: 257,
-              }
-            end
-
-            it do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^tinker panic 257\n})
-            end
-          end
-
-          context 'when stepout changed' do
-            let(:params) do
-              {
-                tinker: true,
-                stepout: 5,
-              }
-            end
-
-            it do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^tinker stepout 5\n})
-            end
-          end
-
-          context 'when panic and stepout changed' do
-            let(:params) do
-              {
-                tinker: true,
-                panic: 257,
-                stepout: 5,
-              }
-            end
-
-            it do
-              is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^tinker panic 257 stepout 5\n})
-            end
-          end
-        end
-      end
-
-      describe 'with parameters minpoll or maxpoll changed from default' do
-        context 'when minpoll changed from default' do
-          let(:params) do
-            {
-              minpoll: 6,
-            }
-          end
-
-          it do
-            is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{minpoll 6})
-          end
-        end
-
-        context 'when maxpoll changed from default' do
-          let(:params) do
-            {
-              maxpoll: 12,
-            }
-          end
-
-          it do
-            is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{maxpoll 12\n})
-          end
-        end
-
-        context 'when minpoll and maxpoll changed from default simultaneously' do
-          let(:params) do
-            {
-              minpoll: 6,
-              maxpoll: 12,
-            }
-          end
-
-          it do
-            is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{minpoll 6 maxpoll 12\n})
-          end
-        end
-      end
-
-      describe 'with parameter leapfile' do
-        context 'when set to true' do
-          let(:params) do
-            {
-              servers: ['a', 'b', 'c', 'd'],
-              leapfile: '/etc/leap-seconds.3629404800',
-            }
-          end
-
-          it 'contains leapfile setting' do
-            is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^leapfile \/etc\/leap-seconds\.3629404800\n})
-          end
-        end
-
-        context 'when set to false' do
-          let(:params) do
-            {
-              servers: ['a', 'b', 'c', 'd'],
-            }
-          end
-
-          it 'does not contain a leapfile line' do
-            is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{leapfile })
-          end
-        end
-      end
-
-      describe 'with parameter logfile' do
-        context 'when set to true' do
-          let(:params) do
-            {
-              servers: ['a', 'b', 'c', 'd'],
-              logfile: '/var/log/foobar.log',
-            }
-          end
-
-          it 'contains logfile setting' do
-            is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^logfile \/var\/log\/foobar\.log\n})
-          end
-        end
-
-        context 'when set to false' do
-          let(:params) do
-            {
-              servers: ['a', 'b', 'c', 'd'],
-            }
-          end
-
-          it 'does not contain a logfile line' do
-            is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{logfile })
-          end
-        end
-      end
-
-      describe 'with parameter ntpsigndsocket' do
-        context 'when set to true' do
-          let(:params) do
-            {
-              servers: ['a', 'b', 'c', 'd'],
-              ntpsigndsocket: '/usr/local/samba/var/lib/ntp_signd',
-            }
-          end
-
-          it 'contains ntpsigndsocket setting' do
-            is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^ntpsigndsocket /usr/local/samba/var/lib/ntp_signd\n})
-          end
-        end
-
-        context 'when set to false' do
-          let(:params) do
-            {
-              servers: ['a', 'b', 'c', 'd'],
-            }
-          end
-
-          it 'does not contain a ntpsigndsocket line' do
-            is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{ntpsigndsocket })
-          end
-        end
-      end
-
-      describe 'with parameter authprov' do
-        context 'when set to true' do
-          let(:params) do
-            {
-              servers: ['a', 'b', 'c', 'd'],
-              authprov: '/opt/novell/xad/lib64/libw32time.so 131072:4294967295 global',
-            }
-          end
-
-          it 'contains authprov setting' do
-            is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^authprov /opt/novell/xad/lib64/libw32time.so 131072:4294967295 global\n})
-          end
-        end
-
-        context 'when set to false' do
-          let(:params) do
-            {
-              servers: ['a', 'b', 'c', 'd'],
-            }
-          end
-
-          it 'does not contain a authprov line' do
-            is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{authprov })
-          end
-        end
-      end
-
-      describe 'with parameter tos' do
-        context 'when set to true' do
-          let(:params) do
-            {
-              tos: true,
-            }
-          end
-
-          it 'contains tos setting' do
-            is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{^tos})
-          end
-        end
-
-        context 'when set to false' do
-          let(:params) do
-            {
-              tos: false,
-            }
-          end
-
-          it 'does not contain tos setting' do
-            is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{^tos})
-          end
-        end
-      end
-
-      describe 'pool' do
-        context 'when empty' do
-          let(:params) do
-            {
-              pool: [],
-            }
-          end
-
-          it 'does not contain a pool line' do
-            is_expected.to contain_file('/etc/ntp.conf').without_content(%r{^pool})
-          end
-        end
-
-        context 'when set' do
-          let(:params) do
-            {
-              pool: ['foo', 'bar'],
-            }
-          end
-
-          it 'contains the pool lines - expectation one' do
-            is_expected.to contain_file('/etc/ntp.conf').with_content(%r{pool foo})
-          end
-          it 'contains the pool lines - expectation two' do
-            is_expected.to contain_file('/etc/ntp.conf').with_content(%r{pool bar})
-          end
-        end
-      end
-
-      describe 'peers' do
-        context 'when empty' do
-          let(:params) do
-            {
-              peers: [],
-            }
-          end
-
-          it 'does not contain a peer line' do
-            is_expected.to contain_file('/etc/ntp.conf').without_content(%r{^peer})
-          end
-        end
-
-        context 'when set' do
-          let(:params) do
-            {
-              peers: ['foo', 'bar'],
-            }
-          end
-
-          it 'contains the peer lines - expectation one' do
-            is_expected.to contain_file('/etc/ntp.conf').with_content(%r{peer foo})
-          end
-          it 'contains the peer lines - expectation two' do
-            is_expected.to contain_file('/etc/ntp.conf').with_content(%r{peer bar})
-          end
-        end
-      end
-
-      describe 'for virtual machines' do
-        let :facts do
-          super().merge(is_virtual: true)
-        end
-
-        it 'does not use local clock as a time source' do
-          is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{server.*127.127.1.0.*fudge.*127.127.1.0 stratum 10})
-        end
-
-        it 'allows large clock skews' do
-          is_expected.to contain_file('/etc/ntp.conf').with('content' => %r{tinker panic 0})
-        end
-      end
-
-      describe 'for physical machines' do
-        let :facts do
-          super().merge(is_virtual: false)
-        end
-
-        it 'disallows large clock skews' do
-          is_expected.not_to contain_file('/etc/ntp.conf').with('content' => %r{tinker panic 0})
-        end
-      end
-    end
-  end
-end
diff --git a/spec/default_facts.yml b/spec/default_facts.yml
deleted file mode 100644
index 3248be5..0000000
--- a/spec/default_facts.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-# Use default_module_facts.yml for module specific facts.
-#
-# Facts specified here will override the values provided by rspec-puppet-facts.
----
-concat_basedir: "/tmp"
-ipaddress: "172.16.254.254"
-is_pe: false
-macaddress: "AA:AA:AA:AA:AA:AA"
diff --git a/spec/fixtures/my_ntp/templates/ntp.conf.epp b/spec/fixtures/my_ntp/templates/ntp.conf.epp
deleted file mode 100644
index d096265..0000000
--- a/spec/fixtures/my_ntp/templates/ntp.conf.epp
+++ /dev/null
@@ -1,2 +0,0 @@
-# EPP template
-<% [1].each |$i| { -%>eppserver<%= $i %><% } -%>
diff --git a/spec/fixtures/my_ntp/templates/ntp.conf.erb b/spec/fixtures/my_ntp/templates/ntp.conf.erb
deleted file mode 100644
index 2284e2f..0000000
--- a/spec/fixtures/my_ntp/templates/ntp.conf.erb
+++ /dev/null
@@ -1,2 +0,0 @@
-# ERB template
-<% [1].each do |i| %>erbserver<%= i %><%end %>
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
deleted file mode 100644
index e69d11d..0000000
--- a/spec/spec_helper.rb
+++ /dev/null
@@ -1,45 +0,0 @@
-
-require 'puppetlabs_spec_helper/module_spec_helper'
-require 'rspec-puppet-facts'
-
-begin
-  require 'spec_helper_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_local.rb'))
-rescue LoadError => loaderror
-  warn "Could not require spec_helper_local: #{loaderror.message}"
-end
-
-include RspecPuppetFacts
-
-default_facts = {
-  puppetversion: Puppet.version,
-  facterversion: Facter.version,
-}
-
-default_facts_path = File.expand_path(File.join(File.dirname(__FILE__), 'default_facts.yml'))
-default_module_facts_path = File.expand_path(File.join(File.dirname(__FILE__), 'default_module_facts.yml'))
-
-if File.exist?(default_facts_path) && File.readable?(default_facts_path)
-  default_facts.merge!(YAML.safe_load(File.read(default_facts_path)))
-end
-
-if File.exist?(default_module_facts_path) && File.readable?(default_module_facts_path)
-  default_facts.merge!(YAML.safe_load(File.read(default_module_facts_path)))
-end
-
-RSpec.configure do |c|
-  c.default_facts = default_facts
-  c.before :each do
-    # set to strictest setting for testing
-    # by default Puppet runs at warning level
-    Puppet.settings[:strict] = :warning
-  end
-end
-
-def ensure_module_defined(module_name)
-  module_name.split('::').reduce(Object) do |last_module, next_module|
-    last_module.const_set(next_module, Module.new) unless last_module.const_defined?(next_module)
-    last_module.const_get(next_module)
-  end
-end
-
-# 'spec_overrides' from sync.yml will appear below this line
diff --git a/spec/spec_helper_acceptance.rb b/spec/spec_helper_acceptance.rb
deleted file mode 100644
index d801584..0000000
--- a/spec/spec_helper_acceptance.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-require 'beaker-rspec'
-require 'beaker/puppet_install_helper'
-require 'beaker/module_install_helper'
-
-UNSUPPORTED_PLATFORMS = ['windows', 'Darwin'].freeze
-
-run_puppet_install_helper
-install_ca_certs unless ENV['PUPPET_INSTALL_TYPE'] =~ %r{pe}i
-install_module_on(hosts)
-install_module_dependencies_on(hosts)
-
-unless ENV['RS_PROVISION'] == 'no' || ENV['BEAKER_provision'] == 'no'
-
-  hosts.each do |host|
-    # Need to disable update of ntp servers from DHCP, as subsequent restart of ntp causes test failures
-    if fact_on(host, 'osfamily') == 'Debian'
-      on host, 'dpkg-divert --divert /etc/dhcp-ntp.bak --local --rename --add /etc/dhcp/dhclient-exit-hooks.d/ntp'
-      on host, 'dpkg-divert --divert /etc/dhcp3-ntp.bak --local --rename --add /etc/dhcp3/dhclient-exit-hooks.d/ntp'
-    elsif fact_on(host, 'osfamily') == 'RedHat'
-      on host, 'echo "PEERNTP=no" >> /etc/sysconfig/network'
-    end
-  end
-end
-
-RSpec.configure do |c|
-  # Project root
-  proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
-
-  # Readable test descriptions
-  c.formatter = :documentation
-
-  # Configure all nodes in nodeset
-  c.before :suite do
-    hosts.each do |host|
-      copy_module_to(host, source: proj_root, module_name: 'ntp')
-    end
-  end
-end
diff --git a/spec/spec_helper_local.rb b/spec/spec_helper_local.rb
deleted file mode 100644
index 9ff7f23..0000000
--- a/spec/spec_helper_local.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-require 'rspec-puppet-facts'
-include RspecPuppetFacts
diff --git a/templates/ntp.conf.epp b/templates/ntp.conf.epp
index e52829a..c54e80d 100644
--- a/templates/ntp.conf.epp
+++ b/templates/ntp.conf.epp
@@ -62,13 +62,14 @@ broadcastclient
 
 # Set up servers for ntpd with next options:
 # server - IP address or DNS name of upstream NTP server
+# burst - send a burst of eight packets instead of the usual one.
 # iburst - allow send sync packages faster if upstream unavailable
 # prefer - select preferrable server
 # minpoll - set minimal update frequency
 # maxpoll - set maximal update frequency
 # noselect - do not sync with this server
 <% $ntp::servers.each |$server| {-%>
-server <%= $server %><% if $ntp::iburst_enable == true {%> iburst<% } %><% if ($ntp::preferred_servers).member($server) { %> prefer<% } %><% if $ntp::minpoll { %> minpoll <%= $ntp::minpoll %><% } %><% if $ntp::maxpoll { %> maxpoll <%= $ntp::maxpoll %><% } %><% if ($ntp::noselect_servers).member($server) { %> noselect<% } %>
+server <%= $server %><% if $ntp::iburst_enable == true {%> iburst<% } %><% if ($ntp::preferred_servers).member($server) { %> prefer<% } %><% if $ntp::burst == true {%> burst<% } %><% if $ntp::minpoll { %> minpoll <%= $ntp::minpoll %><% } %><% if $ntp::maxpoll { %> maxpoll <%= $ntp::maxpoll %><% } %><% if ($ntp::noselect_servers).member($server) { %> noselect<% } %>
 <% } -%>
 <%# -%>
 <% if $ntp::udlc {-%>
@@ -89,6 +90,12 @@ driftfile <%= $ntp::driftfile %>
 logfile <%= $ntp::logfile %>
 <% } -%>
 <%# -%>
+<% if $ntp::logconfig {-%>
+
+# Logconfig
+logconfig <%= $ntp::logconfig %>
+<% } -%>
+<%# -%>
 <% if $ntp::ntpsigndsocket {-%>
 
 # Enable signed packets
diff --git a/types/poll_interval.pp b/types/poll_interval.pp
index 49e4658..fc4cb4c 100644
--- a/types/poll_interval.pp
+++ b/types/poll_interval.pp
@@ -1,3 +1,3 @@
-# See http://doc.ntp.org/4.2.6/clockopt.html#server for documentation
+# See https://doc.ntp.org/documentation/4.2.6-series/confopt/#command-options for documentation
 # Alternatively: type Ntp::Poll_interval = Variant[Integer, Pattern['']]
-type Ntp::Poll_interval = Integer[4, 17]
+type Ntp::Poll_interval = Integer[3, 17]

More details

Full run details

Historical runs