diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 7c918db..d8538a1 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -51,6 +51,9 @@ jobs:
- label: 'OpenVox 8'
openvox_version: '~> 8'
ruby_version: '3.2'
+ - label: 'OpenVox 9 Preview (OpenVox 8 + Ruby 4.0)'
+ openvox_version: '~> 8'
+ ruby_version: '4.0'
env:
OPENVOX_GEM_VERSION: ${{matrix.openvox.openvox_version}}
steps:
diff --git a/site/profile/Gemfile b/site/profile/Gemfile
index 9f61a3d..95ec58d 100644
--- a/site/profile/Gemfile
+++ b/site/profile/Gemfile
@@ -17,29 +17,22 @@ group :development do
gem "json", '= 2.19.5', require: false
gem "racc", '~> 1.8.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
gem "deep_merge", '~> 1.2.2', require: false
- gem "voxpupuli-puppet-lint-plugins", '~> 5.0', require: false
- gem "facterdb", '~> 4.0', require: false
- gem "metadata-json-lint", '~> 5.0', require: false
- gem "rspec-puppet-facts", '~> 6.0', require: false
+ gem "voxpupuli-test", '~> 14.0', require: false
+ gem "voxpupuli-rubocop", '~> 5.0', require: false
gem "dependency_checker", '~> 1.0.0', require: false
- gem "parallel_tests", '= 5.7.0', require: false
gem "pry", '~> 0.10', require: false
gem "simplecov-console", '~> 0.9', require: false
gem "puppet-debugger", '~> 1.0', require: false
- gem "rubocop", '~> 1.86.0', require: false
- gem "rubocop-performance", '= 1.26.1', require: false
- gem "rubocop-rspec", '= 3.9.0', require: false
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
gem "rexml", '>= 3.0.0', '< 3.4.5', require: false
end
group :development, :release_prep do
gem "openvox-strings", '~> 7.0', require: false
- gem "puppetlabs_spec_helper", '~> 8.0', require: false
gem "puppet-blacksmith", '~> 9.0', require: false
end
-group :system_tests do
- gem "CFPropertyList", '< 3.0.9', require: false, platforms: [:mswin, :mingw, :x64_mingw]
- gem "serverspec", '~> 2.41', require: false
+group :acceptance do
+ gem "voxpupuli-acceptance", '~> 4.0', require: false
+ gem "vagrant-wrapper", require: false
end
openvox_version = ENV['OPENVOX_GEM_VERSION']
diff --git a/site/profile/REFERENCE.md b/site/profile/REFERENCE.md
index 2a443c9..48f3055 100644
--- a/site/profile/REFERENCE.md
+++ b/site/profile/REFERENCE.md
@@ -42,18 +42,24 @@ Data type: `Variant[String, Array[String]]`
Puppet agent service name
+Default value: `'puppet'`
+
##### `service_ensure`
Data type: `String`
The `ensure` attribute for the agent service
+Default value: `'running'`
+
##### `service_enable`
Data type: `Boolean`
The `enable` attribute for the agent service
+Default value: `true`
+
### `profile::base`
Base OS customization
@@ -78,6 +84,8 @@ Data type: `Array`
A list of packages to manage
+Default value: `[]`
+
### `profile::db`
Configure db
@@ -140,6 +148,8 @@ Data type: `Array[String]`
List of certnames or domain name globs
+Default value: `[]`
+
### `profile::server::install`
Install server package
diff --git a/site/profile/Rakefile b/site/profile/Rakefile
index 31b5930..f2b8573 100644
--- a/site/profile/Rakefile
+++ b/site/profile/Rakefile
@@ -1,10 +1,8 @@
# frozen_string_literal: true
require 'bundler'
-require 'puppet_litmus/rake_tasks' if Gem.loaded_specs.key? 'puppet_litmus'
-require 'puppetlabs_spec_helper/rake_tasks'
-require 'puppet-syntax/tasks/puppet-syntax'
-require 'puppet-strings/tasks' if Gem.loaded_specs.key? 'puppet-strings'
+require 'voxpupuli/test/rake'
+require 'openvox-strings/tasks' if Gem.loaded_specs.key? 'openvox-strings'
PuppetLint.configuration.send('disable_relative')
PuppetLint.configuration.send('disable_80chars')
@@ -16,3 +14,9 @@ PuppetLint.configuration.send('disable_single_quote_string_with_variables')
PuppetLint.configuration.fail_on_warnings = true
PuppetLint.configuration.ignore_paths = [".vendor/**/*.pp", ".bundle/**/*.pp", "pkg/**/*.pp", "spec/**/*.pp", "tests/**/*.pp", "types/**/*.pp", "vendor/**/*.pp"]
+# Restore the original `check` task prerequisites (drop `check:trailing_whitespace`,
+# which was not run by puppetlabs_spec_helper).
+if Rake::Task.task_defined?('check')
+ Rake::Task['check'].clear_prerequisites
+ task check: ['check:test_file', 'check:dot_underscore', 'check:git_ignore']
+end
diff --git a/site/profile/spec/spec_helper.rb b/site/profile/spec/spec_helper.rb
index ae7c1f6..d3afc99 100644
--- a/site/profile/spec/spec_helper.rb
+++ b/site/profile/spec/spec_helper.rb
@@ -1,16 +1,9 @@
# frozen_string_literal: true
-RSpec.configure do |c|
- c.mock_with :rspec
-end
-
-require 'puppetlabs_spec_helper/module_spec_helper'
-require 'rspec-puppet-facts'
+require 'voxpupuli/test/spec_helper'
require 'spec_helper_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_local.rb'))
-include RspecPuppetFacts
-
default_facts = {
puppetversion: Puppet.version,
facterversion: Facter.version,
@@ -46,9 +39,6 @@
Puppet.settings[:strict_variables] = true
end
c.filter_run_excluding(bolt: true) unless ENV['GEM_BOLT']
- c.after(:suite) do
- RSpec::Puppet::Coverage.report!(0)
- end
# Filter backtrace noise
backtrace_exclusion_patterns = [
diff --git a/site/role/.fixtures.yml b/site/role/.fixtures.yml
index 89cbf9a..83c4cbe 100644
--- a/site/role/.fixtures.yml
+++ b/site/role/.fixtures.yml
@@ -31,4 +31,4 @@ fixtures:
firewalld: puppet-firewalld
augeas_core: puppetlabs-augeas_core
symlinks:
- profile: "#{source_dir}/../profile"
+ profile: "../../../../profile"
diff --git a/site/role/Gemfile b/site/role/Gemfile
index 9f61a3d..95ec58d 100644
--- a/site/role/Gemfile
+++ b/site/role/Gemfile
@@ -17,29 +17,22 @@ group :development do
gem "json", '= 2.19.5', require: false
gem "racc", '~> 1.8.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
gem "deep_merge", '~> 1.2.2', require: false
- gem "voxpupuli-puppet-lint-plugins", '~> 5.0', require: false
- gem "facterdb", '~> 4.0', require: false
- gem "metadata-json-lint", '~> 5.0', require: false
- gem "rspec-puppet-facts", '~> 6.0', require: false
+ gem "voxpupuli-test", '~> 14.0', require: false
+ gem "voxpupuli-rubocop", '~> 5.0', require: false
gem "dependency_checker", '~> 1.0.0', require: false
- gem "parallel_tests", '= 5.7.0', require: false
gem "pry", '~> 0.10', require: false
gem "simplecov-console", '~> 0.9', require: false
gem "puppet-debugger", '~> 1.0', require: false
- gem "rubocop", '~> 1.86.0', require: false
- gem "rubocop-performance", '= 1.26.1', require: false
- gem "rubocop-rspec", '= 3.9.0', require: false
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
gem "rexml", '>= 3.0.0', '< 3.4.5', require: false
end
group :development, :release_prep do
gem "openvox-strings", '~> 7.0', require: false
- gem "puppetlabs_spec_helper", '~> 8.0', require: false
gem "puppet-blacksmith", '~> 9.0', require: false
end
-group :system_tests do
- gem "CFPropertyList", '< 3.0.9', require: false, platforms: [:mswin, :mingw, :x64_mingw]
- gem "serverspec", '~> 2.41', require: false
+group :acceptance do
+ gem "voxpupuli-acceptance", '~> 4.0', require: false
+ gem "vagrant-wrapper", require: false
end
openvox_version = ENV['OPENVOX_GEM_VERSION']
diff --git a/site/role/Rakefile b/site/role/Rakefile
index 31b5930..f2b8573 100644
--- a/site/role/Rakefile
+++ b/site/role/Rakefile
@@ -1,10 +1,8 @@
# frozen_string_literal: true
require 'bundler'
-require 'puppet_litmus/rake_tasks' if Gem.loaded_specs.key? 'puppet_litmus'
-require 'puppetlabs_spec_helper/rake_tasks'
-require 'puppet-syntax/tasks/puppet-syntax'
-require 'puppet-strings/tasks' if Gem.loaded_specs.key? 'puppet-strings'
+require 'voxpupuli/test/rake'
+require 'openvox-strings/tasks' if Gem.loaded_specs.key? 'openvox-strings'
PuppetLint.configuration.send('disable_relative')
PuppetLint.configuration.send('disable_80chars')
@@ -16,3 +14,9 @@ PuppetLint.configuration.send('disable_single_quote_string_with_variables')
PuppetLint.configuration.fail_on_warnings = true
PuppetLint.configuration.ignore_paths = [".vendor/**/*.pp", ".bundle/**/*.pp", "pkg/**/*.pp", "spec/**/*.pp", "tests/**/*.pp", "types/**/*.pp", "vendor/**/*.pp"]
+# Restore the original `check` task prerequisites (drop `check:trailing_whitespace`,
+# which was not run by puppetlabs_spec_helper).
+if Rake::Task.task_defined?('check')
+ Rake::Task['check'].clear_prerequisites
+ task check: ['check:test_file', 'check:dot_underscore', 'check:git_ignore']
+end
diff --git a/site/role/plans/init.pp b/site/role/plans/init.pp
index f4e8c2f..7debf4c 100644
--- a/site/role/plans/init.pp
+++ b/site/role/plans/init.pp
@@ -77,7 +77,7 @@
-> class { 'r10k':
remote => $control_repo,
}
- -> exec { 'r10k deploy environment -pv':
+ -> exec { 'r10k deploy environment -pv': # lint:ignore:exec_idempotency
path => '/opt/puppetlabs/bin:/bin:/usr/bin:/sbin:/usr/sbin',
# Always run this command to ensure that the environment is deployed.
}
diff --git a/site/role/spec/spec_helper.rb b/site/role/spec/spec_helper.rb
index 52175b7..4f70ded 100644
--- a/site/role/spec/spec_helper.rb
+++ b/site/role/spec/spec_helper.rb
@@ -1,16 +1,9 @@
# frozen_string_literal: true
-RSpec.configure do |c|
- c.mock_with :rspec
-end
-
-require 'puppetlabs_spec_helper/module_spec_helper'
-require 'rspec-puppet-facts'
+require 'voxpupuli/test/spec_helper'
require 'spec_helper_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_local.rb'))
-include RspecPuppetFacts
-
default_facts = {
puppetversion: Puppet.version,
facterversion: Facter.version,
@@ -47,9 +40,6 @@
Puppet.settings[:strict_variables] = true
end
c.filter_run_excluding(bolt: true) unless ENV['GEM_BOLT']
- c.after(:suite) do
- RSpec::Puppet::Coverage.report!(0)
- end
# Filter backtrace noise
backtrace_exclusion_patterns = [