Showing with 10,156 additions and 7,537 deletions.
  1. +6 −0 .devcontainer/Dockerfile
  2. +38 −0 .devcontainer/README.md
  3. +17 −0 .devcontainer/devcontainer.json
  4. +11 −0 .fixtures-latest.yml
  5. +0 −16 .fixtures-puppetv3.yml
  6. +5 −12 .fixtures.yml
  7. +5 −0 .gitattributes
  8. +83 −0 .github/workflows/ci.yaml
  9. +30 −0 .github/workflows/release.yaml
  10. +26 −38 .gitignore
  11. +45 −0 .pdkignore
  12. +5 −0 .puppet-lint.rc
  13. +2 −0 .rspec
  14. +527 −0 .rubocop.yml
  15. +23 −0 .sync.yml
  16. +0 −43 .travis.yml
  17. +6 −0 .vscode/extensions.json
  18. +1 −0 .yardopts
  19. +692 −85 CHANGELOG.md
  20. +6 −0 CONTRIBUTING.md
  21. +74 −33 Gemfile
  22. +1 −1 LICENSE
  23. +43 −842 README.md
  24. +2,431 −0 REFERENCE.md
  25. +96 −8 Rakefile
  26. +225 −0 UPGRADING.md
  27. +69 −0 Vagrantfile
  28. +1 −0 data/common.yaml
  29. +67 −0 data/os/Debian/10.yaml
  30. +23 −0 data/os/Debian/11.yaml
  31. +70 −0 data/os/RedHat/7.yaml
  32. +60 −0 data/os/RedHat/8.yaml
  33. +72 −0 data/os/SLED/10.yaml
  34. +71 −0 data/os/SLED/11.yaml
  35. +71 −0 data/os/SLED/12.yaml
  36. +71 −0 data/os/SLED/15.yaml
  37. +3 −0 data/os/SLED/i386.yaml
  38. +72 −0 data/os/SLES/10.yaml
  39. +71 −0 data/os/SLES/11.yaml
  40. +71 −0 data/os/SLES/12.yaml
  41. +71 −0 data/os/SLES/15.yaml
  42. +3 −0 data/os/SLES/i386.yaml
  43. +42 −0 data/os/Solaris/10.yaml
  44. +38 −0 data/os/Solaris/11.yaml
  45. +42 −0 data/os/Solaris/9.yaml
  46. +73 −0 data/os/Ubuntu/18.04.yaml
  47. +68 −0 data/os/Ubuntu/20.04.yaml
  48. +1 −0 examples/init.pp
  49. +17 −0 hiera.yaml
  50. +2 −2 lib/facter/ssh.rb
  51. +35 −13 manifests/config_entry.pp
  52. +607 −1,204 manifests/init.pp
  53. +605 −0 manifests/server.pp
  54. +25 −62 metadata.json
  55. +2 −0 pdk.yaml
  56. +20 −0 spec/acceptance/nodesets/centos-7.yml
  57. +24 −0 spec/acceptance/nodesets/debian-10.yml
  58. +25 −0 spec/acceptance/nodesets/debian-8.yml
  59. +22 −0 spec/acceptance/nodesets/rocky-8.yml
  60. +21 −0 spec/acceptance/nodesets/ubuntu-1804.yml
  61. +44 −0 spec/acceptance/ssh_spec.rb
  62. +212 −0 spec/classes/init_data_types_spec.rb
  63. +137 −0 spec/classes/init_params_spec.rb
  64. +267 −2,749 spec/classes/init_spec.rb
  65. +194 −0 spec/classes/server_data_types_spec.rb
  66. +156 −0 spec/classes/server_params_spec.rb
  67. +217 −0 spec/classes/server_spec.rb
  68. +8 −0 spec/default_facts.yml
  69. +4 −0 spec/default_module_facts.yml
  70. +86 −63 spec/defines/config_entry_spec.rb
  71. +0 −61 spec/fixtures/ssh_config_debian
  72. +0 −61 spec/fixtures/ssh_config_debian8
  73. +0 −61 spec/fixtures/ssh_config_debian9
  74. +0 −61 spec/fixtures/ssh_config_rhel
  75. +0 −60 spec/fixtures/ssh_config_rhel_old
  76. +0 −61 spec/fixtures/ssh_config_suse
  77. +0 −60 spec/fixtures/ssh_config_suse_old
  78. +0 −61 spec/fixtures/ssh_config_ubuntu1604
  79. +0 −61 spec/fixtures/ssh_config_ubuntu1804
  80. +0 −143 spec/fixtures/sshd_config_debian
  81. +0 −141 spec/fixtures/sshd_config_debian8
  82. +0 −133 spec/fixtures/sshd_config_debian9
  83. +0 −143 spec/fixtures/sshd_config_rhel
  84. +0 −142 spec/fixtures/sshd_config_rhel7
  85. 0 spec/fixtures/{sshd_config_sles_12_x86_64 → sshd_config_sles_15_x86_64}
  86. +0 −128 spec/fixtures/sshd_config_solaris
  87. +0 −143 spec/fixtures/sshd_config_suse_i386
  88. +0 −143 spec/fixtures/sshd_config_suse_x86_64
  89. +0 −143 spec/fixtures/sshd_config_ubuntu1604
  90. +0 −143 spec/fixtures/sshd_config_ubuntu1804
  91. +24 −0 spec/fixtures/testing/Debian-10_ssh_config
  92. +42 −0 spec/fixtures/testing/Debian-10_sshd_config
  93. +11 −0 spec/fixtures/testing/Debian-11_ssh_config
  94. +13 −0 spec/fixtures/testing/Debian-11_sshd_config
  95. +24 −0 spec/fixtures/testing/RedHat-7_ssh_config
  96. +46 −0 spec/fixtures/testing/RedHat-7_sshd_config
  97. +9 −0 spec/fixtures/testing/RedHat-8_ssh_config
  98. +51 −0 spec/fixtures/testing/RedHat-8_sshd_config
  99. +22 −0 spec/fixtures/testing/SLED-10_ssh_config
  100. +22 −0 spec/fixtures/testing/SLED-11_ssh_config
  101. +46 −0 spec/fixtures/testing/SLED-11_sshd_config
  102. +22 −0 spec/fixtures/testing/SLED-12_ssh_config
  103. +46 −0 spec/fixtures/testing/SLED-12_sshd_config
  104. +22 −0 spec/fixtures/testing/SLES-10_ssh_config
  105. +24 −0 spec/fixtures/testing/SLES-11_ssh_config
  106. +46 −0 spec/fixtures/testing/SLES-11_sshd_config
  107. +24 −0 spec/fixtures/testing/SLES-12_ssh_config
  108. +46 −0 spec/fixtures/testing/SLES-12_sshd_config
  109. +7 −0 spec/fixtures/testing/Solaris-10_ssh_config
  110. +29 −0 spec/fixtures/testing/Solaris-10_sshd_config
  111. +7 −0 spec/fixtures/testing/Solaris-11_ssh_config
  112. +29 −0 spec/fixtures/testing/Solaris-11_sshd_config
  113. +7 −0 spec/fixtures/testing/Solaris-9_ssh_config
  114. +12 −0 spec/fixtures/testing/Solaris-9_sshd_config
  115. +24 −0 spec/fixtures/testing/Ubuntu-18.04_ssh_config
  116. +48 −0 spec/fixtures/testing/Ubuntu-18.04_sshd_config
  117. +25 −0 spec/fixtures/testing/Ubuntu-20.04_ssh_config
  118. +43 −0 spec/fixtures/testing/Ubuntu-20.04_sshd_config
  119. +22 −24 spec/fixtures/{ssh_config_solaris → untouched/Debian-11_ssh_config}
  120. +123 −0 spec/fixtures/untouched/Debian-11_sshd_config
  121. +71 −12 spec/spec_helper.rb
  122. +20 −0 spec/spec_helper_acceptance.rb
  123. +48 −0 spec/type_aliases/key_type_spec.rb
  124. +44 −0 spec/type_aliases/permit_root_login_spec.rb
  125. +51 −0 spec/type_aliases/syslog_facility_spec.rb
  126. +40 −0 spec/type_aliases/yes_no_spec.rb
  127. +11 −11 spec/unit/facter/ssh_spec.rb
  128. +293 −113 templates/ssh_config.erb
  129. +265 −256 templates/sshd_config.erb
  130. +0 −1 tests/init.pp
  131. +77 −0 tests/provision.sh
  132. +16 −0 tests/vagrant_test_all.sh
  133. +12 −0 types/key/type.pp
  134. +11 −0 types/log_level.pp
  135. +8 −0 types/permit_root_login.pp
  136. +14 −0 types/syslog_facility.pp
  137. +1 −0 types/yes_no.pp
6 changes: 6 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
FROM puppet/pdk:latest

# [Optional] Uncomment this section to install additional packages.
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
# && apt-get -y install --no-install-recommends <your-package-list-here>

38 changes: 38 additions & 0 deletions .devcontainer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# devcontainer


For format details, see https://aka.ms/devcontainer.json.

For config options, see the README at:
https://github.com/microsoft/vscode-dev-containers/tree/v0.140.1/containers/puppet

``` json
{
"name": "Puppet Development Kit (Community)",
"dockerFile": "Dockerfile",

// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.profiles.linux": {
"bash": {
"path": "bash",
}
}
},

// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"puppet.puppet-vscode",
"rebornix.Ruby"
],

// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "pdk --version",
}
```



17 changes: 17 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "Puppet Development Kit (Community)",
"dockerFile": "Dockerfile",

"settings": {
"terminal.integrated.profiles.linux": {
"bash": {
"path": "bash",
}
}
},

"extensions": [
"puppet.puppet-vscode",
"rebornix.Ruby"
]
}
11 changes: 11 additions & 0 deletions .fixtures-latest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
fixtures:
repositories:
stdlib:
repo: 'https://github.com/puppetlabs/puppetlabs-stdlib.git'
concat:
repo: 'https://github.com/puppetlabs/puppetlabs-concat.git'
sshkeys:
repo: 'https://github.com/puppetlabs/puppetlabs-sshkeys_core.git'
symlinks:
ssh: "#{source_dir}"
16 changes: 0 additions & 16 deletions .fixtures-puppetv3.yml

This file was deleted.

17 changes: 5 additions & 12 deletions .fixtures.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
---
fixtures:
repositories:
stdlib:
repo: 'https://github.com/puppetlabs/puppetlabs-stdlib.git'
ref: '4.6.0'
ref: 'v8.0.0'
concat:
repo: 'https://github.com/puppetlabs/puppetlabs-concat.git'
ref: '2.2.1'
common:
repo: 'https://github.com/ghoneycutt/puppet-module-common.git'
ref: 'v1.4.1'
firewall:
repo: 'https://github.com/puppetlabs/puppetlabs-firewall.git'
ref: '1.9.0'
ref: 'v7.0.0'
sshkeys:
repo: 'git://github.com/puppetlabs/puppetlabs-sshkeys_core.git'
ref: '1.0.1'
symlinks:
ssh: "#{source_dir}"
repo: 'https://github.com/puppetlabs/puppetlabs-sshkeys_core.git'
ref: 'v2.3.0'
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*.rb eol=lf
*.erb eol=lf
*.pp eol=lf
*.sh eol=lf
*.epp eol=lf
83 changes: 83 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: CI

on:
push:
branches:
- main
- master
pull_request:

jobs:
unit:
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.allow_failure }}
strategy:
fail-fast: false
matrix:
include:
- ruby: 2.7.0
puppet: 7
fixtures: .fixtures.yml
allow_failure: false
- ruby: 2.7.0
puppet: 7
fixtures: .fixtures-latest.yml
allow_failure: true
env:
BUNDLE_WITHOUT: system_tests:release
PUPPET_GEM_VERSION: "~> ${{ matrix.puppet }}.0"
FACTER_GEM_VERSION: "< 4.0"
FIXTURES_YML: ${{ matrix.fixtures }}
name: Puppet ${{ matrix.puppet }} (Ruby ${{ matrix.ruby }} fixtures=${{ matrix.fixtures }})
steps:
- uses: actions/checkout@v2
- name: Setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
bundler: '2.1.0'
- name: Validate
run: bundle exec rake check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop syntax lint metadata_lint
- name: Run tests
run: bundle exec rake parallel_spec
acceptance:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
set:
- "debian-10"
- "centos-7"
- "rocky-8"
- "ubuntu-1804"
puppet:
- "puppet7"
env:
BUNDLE_WITHOUT: development:release
BEAKER_debug: true
name:
steps:
- name: Enable IPv6 on docker
run: |
echo '{"ipv6":true,"fixed-cidr-v6":"2001:db8:1::/64"}' | sudo tee /etc/docker/daemon.json
sudo service docker restart
# https://github.com/actions/virtual-environments/issues/181#issuecomment-610874237
- name: apparmor
run: |
set -x
sudo apt-get remove mysql-server --purge
sudo apt-get install apparmor-profiles
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
- uses: actions/checkout@v2
- name: Setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '2.7'
bundler-cache: true
bundler: '2.1.0'
- name: Run tests
run: bundle exec rake beaker
env:
BEAKER_PUPPET_COLLECTION: ${{ matrix.puppet }}
BEAKER_set: ${{ matrix.set }}
30 changes: 30 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Release

on:
push:
tags:
- '*'

env:
BUNDLE_WITHOUT: system_tests

jobs:
deploy:
name: 'deploy to forge'
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '2.7'
bundler-cache: true
bundler: '2.1.0'
- name: Build and Deploy
env:
# Configure secrets here:
# https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets
BLACKSMITH_FORGE_USERNAME: 'ghoneycutt'
BLACKSMITH_FORGE_API_KEY: '${{ secrets.PUPPET_FORGE_API_KEY }}'
run: bundle exec rake module:push
64 changes: 26 additions & 38 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,40 +1,28 @@
# Default .gitignore for Ruby
*.gem
*.rbc
.bundle
.config
coverage
InstalledFiles
lib/bundler/man
pkg
rdoc
spec/reports
test/tmp
test/version_tmp
tmp

# YARD artifacts
.git/
.*.sw[op]
.metadata
.yardoc
_yardoc
doc/

# Vim
*.swp

# Eclipse
.project

# OS X
.yardwarns
*.iml
/.bundle/
/.idea/
/.vagrant/
/coverage/
/bin/
/doc/
/Gemfile.local
/Gemfile.lock
/junit/
/log/
/pkg/
/spec/fixtures/manifests/
/spec/fixtures/modules/
/tmp/
/vendor/
/convert_report.txt
/update_report.txt
.DS_Store

# Puppet
coverage/
spec/fixtures/manifests/*
spec/fixtures/modules/*
Gemfile.lock

# JetBrains IDE
.idea/

# Rbenv
.ruby-version
.project
.envrc
/inventory.yaml
/spec/fixtures/litmus_inventory.yaml
45 changes: 45 additions & 0 deletions .pdkignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
.git/
.*.sw[op]
.metadata
.yardoc
.yardwarns
*.iml
/.bundle/
/.idea/
/.vagrant/
/coverage/
/bin/
/doc/
/Gemfile.local
/Gemfile.lock
/junit/
/log/
/pkg/
/spec/fixtures/manifests/
/spec/fixtures/modules/
/tmp/
/vendor/
/convert_report.txt
/update_report.txt
.DS_Store
.project
.envrc
/inventory.yaml
/spec/fixtures/litmus_inventory.yaml
/appveyor.yml
/.fixtures.yml
/Gemfile
/.gitattributes
/.gitignore
/.gitlab-ci.yml
/.pdkignore
/Rakefile
/rakelib/
/.rspec
/.rubocop.yml
/.travis.yml
/.yardopts
/spec/
/.vscode/
/.sync.yml
/.devcontainer/
5 changes: 5 additions & 0 deletions .puppet-lint.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
--no-80chars-check
--no-140chars-check
--no-manifest_whitespace_opening_brace_after-check
--relative
--fail_on_warnings
2 changes: 2 additions & 0 deletions .rspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
--color
--format documentation
Loading