diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1f82c4c9..8c32acf9 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -4,6 +4,7 @@
name: CI
+# yamllint disable-line rule:truthy
on:
pull_request: {}
push:
@@ -18,4 +19,4 @@ concurrency:
jobs:
puppet:
name: Puppet
- uses: voxpupuli/gha-puppet/.github/workflows/beaker.yml@v2
+ uses: voxpupuli/gha-puppet/.github/workflows/beaker.yml@v3
diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml
index 66127cd0..73be88dc 100644
--- a/.github/workflows/labeler.yml
+++ b/.github/workflows/labeler.yml
@@ -4,6 +4,7 @@
name: "Pull Request Labeler"
+# yamllint disable-line rule:truthy
on:
pull_request_target: {}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 93b33c2b..4adf65cd 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -4,6 +4,7 @@
name: Release
+# yamllint disable-line rule:truthy
on:
push:
tags:
@@ -12,7 +13,7 @@ on:
jobs:
release:
name: Release
- uses: voxpupuli/gha-puppet/.github/workflows/release.yml@v2
+ uses: voxpupuli/gha-puppet/.github/workflows/release.yml@v3
with:
allowed_owner: 'voxpupuli'
secrets:
diff --git a/.msync.yml b/.msync.yml
index 95e8c977..ac84b45d 100644
--- a/.msync.yml
+++ b/.msync.yml
@@ -2,4 +2,4 @@
# Managed by modulesync - DO NOT EDIT
# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/
-modulesync_config_version: '9.1.0'
+modulesync_config_version: '9.3.0'
diff --git a/.pmtignore b/.pmtignore
index 10b98306..a9d37aa0 100644
--- a/.pmtignore
+++ b/.pmtignore
@@ -20,6 +20,7 @@
/.github/
/.librarian/
/Puppetfile.lock
+/Puppetfile
*.iml
/.editorconfig
/.fixtures.yml
diff --git a/Gemfile b/Gemfile
index 7123c663..2ac98f89 100644
--- a/Gemfile
+++ b/Gemfile
@@ -26,7 +26,7 @@ end
gem 'rake', :require => false
gem 'facter', ENV['FACTER_GEM_VERSION'], :require => false, :groups => [:test]
-puppetversion = ENV['PUPPET_GEM_VERSION'] || '~> 7.24'
+puppetversion = ENV['PUPPET_GEM_VERSION'] || [">= 7.24", "< 9"]
gem 'puppet', puppetversion, :require => false, :groups => [:test]
# vim: syntax=ruby
diff --git a/REFERENCE.md b/REFERENCE.md
new file mode 100644
index 00000000..a25cda59
--- /dev/null
+++ b/REFERENCE.md
@@ -0,0 +1,1570 @@
+# Reference
+
+
+
+## Table of Contents
+
+### Classes
+
+#### Public Classes
+
+* [`jenkins`](#jenkins): This class manages the [Jenkins CI/CD service](https://jenkins.io/index.html). Note that if different jenkins listening port(s) are configur
+* [`jenkins::cli::config`](#jenkins--cli--config): This class provides configuration values to override defaults and fact data for PuppetX::Jenkins::Provider::Clihelper based providers. Defau
+* [`jenkins::cli_helper`](#jenkins--cli_helper): A helper script for creating resources via the Jenkins cli
+* [`jenkins::master`](#jenkins--master): Install a master
+* [`jenkins::security`](#jenkins--security): Jenkins security configuration
+* [`jenkins::slave`](#jenkins--slave): === Examples class { 'jenkins::slave': masterurl => 'http://jenkins-master1.example.com:8080', ui_user => 'adminuser', ui_pass =>
+
+#### Private Classes
+
+* `jenkins::cli`: Allow Jenkins commands to be issued from the command line
+* `jenkins::cli::reload`: Command Jenkins to reload config.xml via the CLI.
+* `jenkins::config`: Wire up the configuration
+* `jenkins::direct_download`: Support for directly downloading a package file - for when no
+repository is available
+* `jenkins::firewall`: Integrate with the puppetlabs-firewall module for opening the port
+to Jenkins automatically
+* `jenkins::jobs`: Create Jenkins Jobs
+* `jenkins::package`: Installation of the Jenkins native package.
+* `jenkins::params`: Default parameters
+* `jenkins::plugins`: Install Jenkins plugins
+* `jenkins::proxy`: Configure the proxy part
+* `jenkins::repo`: Pull in the platform specific repo classes
+* `jenkins::repo::debian`: Set up the apt repo on Debian-based distros
+* `jenkins::repo::el`: Set up the yum repo on Red Hat-based distros
+* `jenkins::repo::suse`: Set up the Zypper repo on SUSE-based distros
+* `jenkins::service`: Manage the Jenkins service
+* `jenkins::user_setup`: Optionally create the jenkins user and make sure all directories
+have proper permissions setup.
+* `jenkins::users`: Create Jenkins users
+
+### Defined types
+
+#### Public Defined types
+
+* [`jenkins::augeas`](#jenkins--augeas): Change config files using augeas
+* [`jenkins::cli::exec`](#jenkins--cli--exec): Executing custom helper script commands via the Jenkins CLI.
+* [`jenkins::credentials`](#jenkins--credentials): Jenkins credentials via the CloudBees Credentials plugin
+* [`jenkins::job`](#jenkins--job): Manage Jenkins jobs given a name and config xml
+* [`jenkins::plugin`](#jenkins--plugin): Manage the state of an installed plugin
+* [`jenkins::user`](#jenkins--user): Manage Jenkins user accounts
+
+#### Private Defined types
+
+* `jenkins::job::absent`: Removes a jenkins build job
+* `jenkins::job::present`: Creates or updates a jenkins build job
+
+### Functions
+
+* [`jenkins_port`](#jenkins_port): Return the configurad Jenkins port value (corresponds to /etc/defaults/jenkins -> JENKINS_PORT Example: $port = jenkins_port()
+* [`jenkins_prefix`](#jenkins_prefix): Return the configured Jenkins prefix value (corresponds to /etc/defaults/jenkins -> PREFIX) Example: $prefix = jenkins_prefix()
+
+### Data types
+
+* [`Jenkins::Tunnel`](#Jenkins--Tunnel): A custom data type for a jenkins tunnel verification
+
+## Classes
+
+### `jenkins`
+
+This class manages the [Jenkins CI/CD service](https://jenkins.io/index.html).
+
+Note that if different jenkins listening port(s) are configured via
+``jenkins::port`` and ``jenkins::config_hash`` resource, "bad things" are
+likely to happen. This is a known implementation problem with this module
+that can not be fixed without breaking backwards compatibility.
+
+#### Examples
+
+##### Bulk sysconf
+
+```puppet
+class{ 'jenkins':
+ config_hash => {
+ 'JENKINS_PORT' => { 'value' => '9090' },
+ }
+}
+```
+
+##### Bulk plugin installation (code)
+
+```puppet
+class{ 'jenkins::plugins':
+ plugin_hash => {
+ 'git' => { version => '1.1.1' },
+ 'parameterized-trigger' => {},
+ 'multiple-scms' => {},
+ 'git-client' => {},
+ 'token-macro' => {},
+ }
+}
+```
+
+##### Bulk plugin installation (hiera)
+
+```puppet
+jenkins::plugin_hash:
+ git:
+ version: '1.1.1'
+ parameterized-trigger: {}
+ multiple-scms: {}
+ git-client: {}
+ token-macro: {}
+```
+
+##### Bulk user creation (code)
+
+```puppet
+class{ 'jenkins':
+ user_hash => {
+ 'user1' => {
+ 'password' => 'pass1',
+ 'email' => 'user1@example.com',
+ }
+ }
+}
+```
+
+##### Bulk user creation (hiera)
+
+```puppet
+jenkins::user_hash:
+ user:
+ password: 'pass1'
+ email: 'user1@example.com'
+```
+
+##### Manage version of ``credentials`` plugin (hiera)
+
+```puppet
+jenkins::default_plugins: []
+jenkins::plugin_hash:
+ credentials:
+ version: 2.1.5
+ digest_string: 7db002e7b053f863e2ce96fb58abb98a9c01b09c
+ digest_type: sha1
+```
+
+##### Explicitly manage *all* plugins (hiera)
+
+```puppet
+jenkins::default_plugins: []
+jenkins::purge_plugins: true
+jenkins::plugin_hash:
+ credentials:
+ version: '2.1.10'
+ support-core:
+ version: '2.38'
+ # support-core deps
+ metrics:
+ version: '3.1.2.9'
+ jackson2-api:
+ version: '2.7.3'
+ bouncycastle-api:
+ version: '2.16.0'
+ # /support-core deps
+```
+
+#### Parameters
+
+The following parameters are available in the `jenkins` class:
+
+* [`version`](#-jenkins--version)
+* [`lts`](#-jenkins--lts)
+* [`repo`](#-jenkins--repo)
+* [`package_name`](#-jenkins--package_name)
+* [`direct_download`](#-jenkins--direct_download)
+* [`package_cache_dir`](#-jenkins--package_cache_dir)
+* [`package_provider`](#-jenkins--package_provider)
+* [`manage_service`](#-jenkins--manage_service)
+* [`service_enable`](#-jenkins--service_enable)
+* [`service_ensure`](#-jenkins--service_ensure)
+* [`service_override`](#-jenkins--service_override)
+* [`service_provider`](#-jenkins--service_provider)
+* [`config_hash`](#-jenkins--config_hash)
+* [`plugin_hash`](#-jenkins--plugin_hash)
+* [`job_hash`](#-jenkins--job_hash)
+* [`user_hash`](#-jenkins--user_hash)
+* [`configure_firewall`](#-jenkins--configure_firewall)
+* [`install_java`](#-jenkins--install_java)
+* [`repo_proxy`](#-jenkins--repo_proxy)
+* [`proxy_host`](#-jenkins--proxy_host)
+* [`proxy_port`](#-jenkins--proxy_port)
+* [`no_proxy_list`](#-jenkins--no_proxy_list)
+* [`cli`](#-jenkins--cli)
+* [`cli_ssh_keyfile`](#-jenkins--cli_ssh_keyfile)
+* [`cli_username`](#-jenkins--cli_username)
+* [`cli_password`](#-jenkins--cli_password)
+* [`cli_password_file`](#-jenkins--cli_password_file)
+* [`cli_tries`](#-jenkins--cli_tries)
+* [`cli_try_sleep`](#-jenkins--cli_try_sleep)
+* [`port`](#-jenkins--port)
+* [`libdir`](#-jenkins--libdir)
+* [`manage_datadirs`](#-jenkins--manage_datadirs)
+* [`localstatedir`](#-jenkins--localstatedir)
+* [`executors`](#-jenkins--executors)
+* [`slaveagentport`](#-jenkins--slaveagentport)
+* [`manage_user`](#-jenkins--manage_user)
+* [`user`](#-jenkins--user)
+* [`manage_group`](#-jenkins--manage_group)
+* [`group`](#-jenkins--group)
+* [`default_plugins`](#-jenkins--default_plugins)
+* [`default_plugins_host`](#-jenkins--default_plugins_host)
+* [`purge_plugins`](#-jenkins--purge_plugins)
+
+##### `version`
+
+Data type: `String`
+
+package to install
+
+* ``installed`` (Default)
+ do NOT update jenkins to the most recent version.
+* ``latest``
+ automatically update the version of jenkins to the current version
+ available via your package manager.
+
+Default value: `'installed'`
+
+##### `lts`
+
+Data type: `Boolean`
+
+use the upstream jenkins "Long Term Support" repos
+
+* ``false``
+ Use the most up to date version of jenkins
+* ``true`` (Default)
+ Use LTS version of jenkins
+
+Default value: `true`
+
+##### `repo`
+
+Data type: `Boolean`
+
+configure upstream jenkins package repos
+
+``false`` means do NOT configure the upstream jenkins package repo. This
+means you'll manage a repo manually outside this module. This can also be
+your distribution's repo.
+
+Default value: `$jenkins::params::repo`
+
+##### `package_name`
+
+Data type: `String`
+
+Optionally override the package name
+
+Default value: `'jenkins'`
+
+##### `direct_download`
+
+Data type: `Optional[String]`
+
+URL to jenkins package
+
+Ignore repository based package installation and download the package
+directly. Leave as `undef` (the default) to download using your OS package
+manager
+
+Default value: `undef`
+
+##### `package_cache_dir`
+
+Data type: `Stdlib::Absolutepath`
+
+Directory in which to store a ``direct_download`` package
+
+Default value: `'/var/cache/jenkins_pkgs'`
+
+##### `package_provider`
+
+Data type: `Optional[String]`
+
+Override the ``package`` resource provider
+
+This *only has effect* when using ``direct_download``.
+
+Default value: `$jenkins::params::package_provider`
+
+##### `manage_service`
+
+Data type: `Boolean`
+
+Enable management of ``Service[jenkins]`` resource
+
+When setting to ``false`` please ensure something else defines
+``Service[jenkins]`` in order for some module functionality (e.g.
+``jenkins::cli``) to work properly
+
+Default value: `true`
+
+##### `service_enable`
+
+Data type: `Boolean`
+
+Enable (or not) the jenkins service
+
+Default value: `true`
+
+##### `service_ensure`
+
+Data type: `Enum['running', 'stopped']`
+
+Status of the jenkins service
+
+* ``running`` (default)
+* ``stopped``
+
+Default value: `'running'`
+
+##### `service_override`
+
+Data type: `Hash[String[1], String]`
+
+Override the jenkins service configuration
+
+Default value: `{}`
+
+##### `service_provider`
+
+Data type: `Optional[String]`
+
+Override ``Service[jenkins]`` resource provider
+
+Setting this to ``undef`` on platforms with ``systemd`` will force the
+usage of package provider sysv init scripts.
+
+Default value: `undef`
+
+##### `config_hash`
+
+Data type: `Hash`
+
+options to set in sysconfig/jenkins defaults/jenkins
+
+(see jenkins::sysconf)
+
+Default value: `{}`
+
+##### `plugin_hash`
+
+Data type: `Hash`
+
+plugins to install
+
+(see jenkins::plugin)
+
+Default value: `{}`
+
+##### `job_hash`
+
+Data type: `Hash`
+
+jobs to install
+
+(see jenkins::job)
+
+Default value: `{}`
+
+##### `user_hash`
+
+Data type: `Hash`
+
+jenkins users to create
+
+Default value: `{}`
+
+##### `configure_firewall`
+
+Data type: `Boolean`
+
+For folks that want to manage the puppetlabs firewall module.
+
+ * If it's not present in the catalog, nothing happens.
+ * If it is, you need to explicitly set this true / false.
+ * We didn't want you to have a service opened automatically, or
+ unreachable inexplicably.
+ * This default changed in v1.0 to be undef.
+
+Default value: `false`
+
+##### `install_java`
+
+Data type: `Boolean`
+
+use the ``puppetlabs-java`` module to install a JDK
+
+Jenkins requires a JRE. Setting this to ``false`` means that you are
+response for managing a JDK outside of this module.
+
+Default value: `true`
+
+##### `repo_proxy`
+
+Data type: `Optional[String]`
+
+proxy to download packages
+
+This parameter is only relevant for ``yum`` repos managed by this module.
+
+Default value: `undef`
+
+##### `proxy_host`
+
+Data type: `Optional[String]`
+
+proxy hostname for plugin installation via this module and the UpdateCenter
+
+Default value: `undef`
+
+##### `proxy_port`
+
+Data type: `Optional[Integer]`
+
+proxy port for plugin installation via this module and the UpdateCenter
+
+Default value: `undef`
+
+##### `no_proxy_list`
+
+Data type: `Optional[Array]`
+
+List of hostname patterns to skip using the proxy.
+
+* Only effective if "proxy_host" and "proxy_port" are set.
+* Only applies to plugins installed via the UpdateCenter
+
+Default value: `undef`
+
+##### `cli`
+
+Data type: `Boolean`
+
+install ``jenkins-cli.jar`` CLI utility
+
+* force installation of the jenkins CLI jar to
+``$libdir/jenkins-cli.jar``
+* the cli is automatically installed when needed by components that use it,
+ such as the user and credentials types, and the security class
+
+Default value: `true`
+
+##### `cli_ssh_keyfile`
+
+Data type: `Optional[Stdlib::Absolutepath]`
+
+Provides the location of an ssh private key file to make authenticated
+connections to the Jenkins CLI.
+
+Default value: `undef`
+
+##### `cli_username`
+
+Data type: `Optional[String]`
+
+Provides the username for authenticating to Jenkins via username and
+password.
+
+Default value: `undef`
+
+##### `cli_password`
+
+Data type: `Optional[String]`
+
+Provides the password for authenticating to Jenkins via username and
+password. Needed if cli_username is specified.
+
+Default value: `undef`
+
+##### `cli_password_file`
+
+Data type: `Optional[String]`
+
+Provides the password file for authenticating to Jenkins via username and
+password. Needed if cli_username is specified and cli_password is undefined.
+
+Default value: `undef`
+
+##### `cli_tries`
+
+Data type: `Integer`
+
+Retries until giving up talking to jenkins API
+
+Default value: `10`
+
+##### `cli_try_sleep`
+
+Data type: `Integer`
+
+Seconds between tries to contact jenkins API
+
+Default value: `10`
+
+##### `port`
+
+Data type: `Integer`
+
+Jenkins listening HTTP port
+
+Note that this value is used for CLI communication and firewall
+configuration. It does not configure the port on which the jenkins service
+listens. (see config_hash)
+
+Default value: `8080`
+
+##### `libdir`
+
+Data type: `Stdlib::Absolutepath`
+
+Path to jenkins core files
+
+Default value: `'/usr/share/java'`
+
+##### `manage_datadirs`
+
+Data type: `Boolean`
+
+manage the local state dir, plugins dir and jobs dir
+
+Default value: `true`
+
+##### `localstatedir`
+
+Data type: `Stdlib::Absolutepath`
+
+base path, in the ``autoconf`` sense, for jenkins local data including jobs
+and plugins
+
+Default value: `'/var/lib/jenkins'`
+
+##### `executors`
+
+Data type: `Optional[Integer]`
+
+number of executors on the Jenkins master
+
+Default value: `undef`
+
+##### `slaveagentport`
+
+Data type: `Optional[Integer]`
+
+jenkins slave agent
+
+Default value: `undef`
+
+##### `manage_user`
+
+Data type: `Boolean`
+
+manage the system jenkins user
+
+Default value: `true`
+
+##### `user`
+
+Data type: `String`
+
+system user that owns the jenkins master's files
+
+Default value: `'jenkins'`
+
+##### `manage_group`
+
+Data type: `Boolean`
+
+manage the system jenkins group
+
+Default value: `true`
+
+##### `group`
+
+Data type: `String`
+
+system group that owns the jenkins master's files
+
+Default value: `'jenkins'`
+
+##### `default_plugins`
+
+Data type: `Array`
+
+List of default plugins installed by this module
+
+The the ``credentials`` plugin is required for this module to properly
+function. No version is specified. Set to ``[]`` if you want to explicitly
+manage all plugins version
+
+Default value: `$jenkins::params::default_plugins`
+
+##### `default_plugins_host`
+
+Data type: `String`
+
+Provide a way to override plugins host for all plugins
+
+Default value: `'https://updates.jenkins.io'`
+
+##### `purge_plugins`
+
+Data type: `Boolean`
+
+Purge *all* plugins not explicitly managed by this module
+
+This will result in plugins manually installed via the UpdateCenter being
+removed. Only enable this option if you want to manage all plugins (and
+plugin dependencies) explicitly.
+
+Default value: `false`
+
+### `jenkins::cli::config`
+
+This class provides configuration values to override defaults and fact data
+for PuppetX::Jenkins::Provider::Clihelper based providers.
+
+Default and fact data is managed internal to the
+PuppetX::Jenkins::Provider::Clihelper class for compatiblity with the puppet
+resource face. No defaults should be set in this classes definition.
+
+#### Parameters
+
+The following parameters are available in the `jenkins::cli::config` class:
+
+* [`cli_jar`](#-jenkins--cli--config--cli_jar)
+* [`url`](#-jenkins--cli--config--url)
+* [`ssh_private_key`](#-jenkins--cli--config--ssh_private_key)
+* [`puppet_helper`](#-jenkins--cli--config--puppet_helper)
+* [`cli_tries`](#-jenkins--cli--config--cli_tries)
+* [`cli_try_sleep`](#-jenkins--cli--config--cli_try_sleep)
+* [`cli_username`](#-jenkins--cli--config--cli_username)
+* [`cli_password`](#-jenkins--cli--config--cli_password)
+* [`cli_password_file`](#-jenkins--cli--config--cli_password_file)
+* [`cli_password_file_exists`](#-jenkins--cli--config--cli_password_file_exists)
+* [`ssh_private_key_content`](#-jenkins--cli--config--ssh_private_key_content)
+
+##### `cli_jar`
+
+Data type: `Optional[Stdlib::Absolutepath]`
+
+
+
+Default value: `undef`
+
+##### `url`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `ssh_private_key`
+
+Data type: `Optional[Stdlib::Absolutepath]`
+
+
+
+Default value: `undef`
+
+##### `puppet_helper`
+
+Data type: `Optional[Stdlib::Absolutepath]`
+
+
+
+Default value: `undef`
+
+##### `cli_tries`
+
+Data type: `Optional[Integer]`
+
+
+
+Default value: `undef`
+
+##### `cli_try_sleep`
+
+Data type: `Optional[Numeric]`
+
+
+
+Default value: `undef`
+
+##### `cli_username`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `cli_password`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `cli_password_file`
+
+Data type: `String`
+
+
+
+Default value: `'/tmp/jenkins_credentials_for_puppet'`
+
+##### `cli_password_file_exists`
+
+Data type: `Boolean`
+
+
+
+Default value: `false`
+
+##### `ssh_private_key_content`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+### `jenkins::cli_helper`
+
+A helper script for creating resources via the Jenkins cli
+
+### `jenkins::master`
+
+Install a master
+
+#### Parameters
+
+The following parameters are available in the `jenkins::master` class:
+
+* [`version`](#-jenkins--master--version)
+
+##### `version`
+
+Data type: `String`
+
+Version of the swarm plugin
+
+Default value: `$jenkins::params::swarm_version`
+
+### `jenkins::security`
+
+Copyright 2014 RetailMeNot, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+#### Parameters
+
+The following parameters are available in the `jenkins::security` class:
+
+* [`security_model`](#-jenkins--security--security_model)
+
+##### `security_model`
+
+Data type: `String`
+
+
+
+### `jenkins::slave`
+
+=== Examples
+
+ class { 'jenkins::slave':
+ masterurl => 'http://jenkins-master1.example.com:8080',
+ ui_user => 'adminuser',
+ ui_pass => 'adminpass'
+ }
+
+=== Authors
+
+Matthew Barr
+
+=== Copyright
+
+Copyright 2013 Matthew Barr , but can be used for anything by anyone..
+
+#### Parameters
+
+The following parameters are available in the `jenkins::slave` class:
+
+* [`slave_name`](#-jenkins--slave--slave_name)
+* [`description`](#-jenkins--slave--description)
+* [`masterurl`](#-jenkins--slave--masterurl)
+* [`autodiscoveryaddress`](#-jenkins--slave--autodiscoveryaddress)
+* [`ui_user`](#-jenkins--slave--ui_user)
+* [`ui_pass`](#-jenkins--slave--ui_pass)
+* [`tool_locations`](#-jenkins--slave--tool_locations)
+* [`source`](#-jenkins--slave--source)
+* [`proxy_server`](#-jenkins--slave--proxy_server)
+* [`tunnel`](#-jenkins--slave--tunnel)
+* [`version`](#-jenkins--slave--version)
+* [`executors`](#-jenkins--slave--executors)
+* [`manage_slave_user`](#-jenkins--slave--manage_slave_user)
+* [`slave_user`](#-jenkins--slave--slave_user)
+* [`slave_groups`](#-jenkins--slave--slave_groups)
+* [`slave_uid`](#-jenkins--slave--slave_uid)
+* [`slave_home`](#-jenkins--slave--slave_home)
+* [`slave_mode`](#-jenkins--slave--slave_mode)
+* [`disable_ssl_verification`](#-jenkins--slave--disable_ssl_verification)
+* [`disable_clients_unique_id`](#-jenkins--slave--disable_clients_unique_id)
+* [`labels`](#-jenkins--slave--labels)
+* [`install_java`](#-jenkins--slave--install_java)
+* [`manage_client_jar`](#-jenkins--slave--manage_client_jar)
+* [`ensure`](#-jenkins--slave--ensure)
+* [`enable`](#-jenkins--slave--enable)
+* [`java_args`](#-jenkins--slave--java_args)
+* [`swarm_client_args`](#-jenkins--slave--swarm_client_args)
+* [`delete_existing_clients`](#-jenkins--slave--delete_existing_clients)
+* [`java_cmd`](#-jenkins--slave--java_cmd)
+
+##### `slave_name`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `description`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `masterurl`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `autodiscoveryaddress`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `ui_user`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `ui_pass`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `tool_locations`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `source`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `proxy_server`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `tunnel`
+
+Data type: `Optional[Jenkins::Tunnel]`
+
+
+
+Default value: `undef`
+
+##### `version`
+
+Data type: `String`
+
+
+
+Default value: `$jenkins::params::swarm_version`
+
+##### `executors`
+
+Data type: `Integer`
+
+
+
+Default value: `2`
+
+##### `manage_slave_user`
+
+Data type: `Boolean`
+
+
+
+Default value: `true`
+
+##### `slave_user`
+
+Data type: `String`
+
+
+
+Default value: `'jenkins-slave'`
+
+##### `slave_groups`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `slave_uid`
+
+Data type: `Optional[Integer]`
+
+
+
+Default value: `undef`
+
+##### `slave_home`
+
+Data type: `Stdlib::Absolutepath`
+
+
+
+Default value: `'/home/jenkins-slave'`
+
+##### `slave_mode`
+
+Data type: `Enum['normal', 'exclusive']`
+
+
+
+Default value: `'normal'`
+
+##### `disable_ssl_verification`
+
+Data type: `Boolean`
+
+
+
+Default value: `false`
+
+##### `disable_clients_unique_id`
+
+Data type: `Boolean`
+
+
+
+Default value: `false`
+
+##### `labels`
+
+Data type: `Array[String[1]]`
+
+
+
+Default value: `[]`
+
+##### `install_java`
+
+Data type: `Any`
+
+
+
+Default value: `true`
+
+##### `manage_client_jar`
+
+Data type: `Boolean`
+
+
+
+Default value: `true`
+
+##### `ensure`
+
+Data type: `Enum['running', 'stopped']`
+
+
+
+Default value: `'running'`
+
+##### `enable`
+
+Data type: `Boolean`
+
+
+
+Default value: `true`
+
+##### `java_args`
+
+Data type: `Array[String[1]]`
+
+
+
+Default value: `[]`
+
+##### `swarm_client_args`
+
+Data type: `Array[String[1]]`
+
+
+
+Default value: `[]`
+
+##### `delete_existing_clients`
+
+Data type: `Boolean`
+
+
+
+Default value: `false`
+
+##### `java_cmd`
+
+Data type: `Any`
+
+
+
+Default value: `'/usr/bin/java'`
+
+## Defined types
+
+### `jenkins::augeas`
+
+Change config files using augeas
+
+#### Examples
+
+##### Configure the git plugin
+
+```puppet
+jenkins::augeas { 'git':
+ plugin => true,
+ config_filename => 'hudson.plugins.git.GitSCM.xml',
+ context => '/hudson.plugins.git.GitSCM_-DescriptorImpl',
+ changes => [
+ 'set globalConfigName/#text "Bob the Builder"',
+ 'set globalConfigEmail/#text "bob@example.com",
+ ],
+}
+```
+
+#### Parameters
+
+The following parameters are available in the `jenkins::augeas` defined type:
+
+* [`config_filename`](#-jenkins--augeas--config_filename)
+* [`changes`](#-jenkins--augeas--changes)
+* [`onlyif`](#-jenkins--augeas--onlyif)
+* [`plugin`](#-jenkins--augeas--plugin)
+* [`plugin_version`](#-jenkins--augeas--plugin_version)
+* [`context`](#-jenkins--augeas--context)
+* [`restart`](#-jenkins--augeas--restart)
+* [`show_diff`](#-jenkins--augeas--show_diff)
+
+##### `config_filename`
+
+Data type: `String`
+
+Filename of the configuration file to work on relative to the jenkins
+localstatedir.
+
+##### `changes`
+
+Data type: `Variant[Array[String], String]`
+
+String or array with augeas changes to perform.
+
+##### `onlyif`
+
+Data type: `Optional[Variant[Array[String], String]]`
+
+Optional augeas command and comparisons to control the execution of this type.
+
+Default value: `undef`
+
+##### `plugin`
+
+Data type: `Variant[Boolean,String]`
+
+Optionally jenkins::augeas can also install the plugin. If this is set to
+true, we use the name of the resource as plugin name. If it's a string,
+that is used as plugin name.
+
+Default value: `false`
+
+##### `plugin_version`
+
+Data type: `Optional[String]`
+
+Optional plugin version to pass through to jenkins::plugin
+
+Default value: `undef`
+
+##### `context`
+
+Data type: `String`
+
+Optional context to ease your change rules.
+
+Default value: `'/'`
+
+##### `restart`
+
+Data type: `Boolean`
+
+If set to true, will trigger a jenkins (safe-)restart in stead of reloading
+the configuration.
+
+Default value: `false`
+
+##### `show_diff`
+
+Data type: `Boolean`
+
+Whether to display differences when the file changes, defaulting to true.
+
+Default value: `true`
+
+### `jenkins::cli::exec`
+
+Executing custom helper script commands via the Jenkins CLI.
+
+#### Parameters
+
+The following parameters are available in the `jenkins::cli::exec` defined type:
+
+* [`unless`](#-jenkins--cli--exec--unless)
+* [`command`](#-jenkins--cli--exec--command)
+
+##### `unless`
+
+Data type: `Optional[String]`
+
+The unless parameter passed to the exec resource
+
+Default value: `undef`
+
+##### `command`
+
+Data type: `Variant[String, Array]`
+
+The command or commands to run
+
+Default value: `$title`
+
+### `jenkins::credentials`
+
+Copyright 2014 RetailMeNot, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+#### Parameters
+
+The following parameters are available in the `jenkins::credentials` defined type:
+
+* [`password`](#-jenkins--credentials--password)
+* [`description`](#-jenkins--credentials--description)
+* [`private_key_or_path`](#-jenkins--credentials--private_key_or_path)
+* [`ensure`](#-jenkins--credentials--ensure)
+* [`uuid`](#-jenkins--credentials--uuid)
+
+##### `password`
+
+Data type: `String`
+
+
+
+##### `description`
+
+Data type: `String`
+
+
+
+Default value: `'Managed by Puppet'`
+
+##### `private_key_or_path`
+
+Data type: `String`
+
+
+
+Default value: `''`
+
+##### `ensure`
+
+Data type: `Enum['present', 'absent']`
+
+
+
+Default value: `'present'`
+
+##### `uuid`
+
+Data type: `String`
+
+
+
+Default value: `''`
+
+### `jenkins::job`
+
+Manage Jenkins jobs given a name and config xml
+
+#### Parameters
+
+The following parameters are available in the `jenkins::job` defined type:
+
+* [`config`](#-jenkins--job--config)
+* [`source`](#-jenkins--job--source)
+* [`template`](#-jenkins--job--template)
+* [`jobname`](#-jenkins--job--jobname)
+* [`ensure`](#-jenkins--job--ensure)
+* [`difftool`](#-jenkins--job--difftool)
+* [`replace`](#-jenkins--job--replace)
+
+##### `config`
+
+Data type: `String`
+
+The content of the jenkins job config file (required)
+
+##### `source`
+
+Data type: `Optional[String]`
+
+Path to a puppet file() resource containing the Jenkins XML job description.
+Will override 'config' if set
+
+Default value: `undef`
+
+##### `template`
+
+Data type: `Optional[String[1]]`
+
+Path to a puppet template() resource containing the Jenkins XML job description.
+Will override 'config' if set
+
+Default value: `undef`
+
+##### `jobname`
+
+Data type: `String`
+
+the name of the jenkins job
+
+Default value: `$title`
+
+##### `ensure`
+
+Data type: `Enum['present', 'absent']`
+
+choose 'absent' to ensure the job is removed
+
+Default value: `'present'`
+
+##### `difftool`
+
+Data type: `String`
+
+Provide a command to execute to compare Jenkins job files
+
+Default value: `'/usr/bin/diff -b -q'`
+
+##### `replace`
+
+Data type: `Boolean`
+
+Whether or not to replace the job if it already exists.
+
+Default value: `true`
+
+### `jenkins::plugin`
+
+This can be used to manage the state of individual plugins. Note that it does
+no dependency management and that's all up to the user. This is particularly
+important to remember when also purging plugins.
+
+#### Parameters
+
+The following parameters are available in the `jenkins::plugin` defined type:
+
+* [`version`](#-jenkins--plugin--version)
+* [`config_filename`](#-jenkins--plugin--config_filename)
+* [`config_content`](#-jenkins--plugin--config_content)
+* [`update_url`](#-jenkins--plugin--update_url)
+* [`source`](#-jenkins--plugin--source)
+* [`extension`](#-jenkins--plugin--extension)
+* [`digest_string`](#-jenkins--plugin--digest_string)
+* [`digest_type`](#-jenkins--plugin--digest_type)
+* [`enabled`](#-jenkins--plugin--enabled)
+* [`pin`](#-jenkins--plugin--pin)
+* [`download_options`](#-jenkins--plugin--download_options)
+
+##### `version`
+
+Data type: `Optional[String]`
+
+The version to ensure
+
+Default value: `undef`
+
+##### `config_filename`
+
+Data type: `Optional[String]`
+
+Name of the config file for this plugin. Note config_content must also be
+set.
+
+Default value: `undef`
+
+##### `config_content`
+
+Data type: `Optional[String]`
+
+Content of the config file for this plugin. It is up to the caller to
+create this content from a template or any other mean. config_filename must
+also be set.
+
+Default value: `undef`
+
+##### `update_url`
+
+Data type: `Optional[String]`
+
+
+
+Default value: `undef`
+
+##### `source`
+
+Data type: `Optional[String]`
+
+Direct URL from which to download plugin without modification. This is
+particularly useful for development and testing of plugins which may not be
+hosted in the typical Jenkins' plugin directory structure. E.g.,
+
+https://example.org/myplugin.hpi
+
+Default value: `undef`
+
+##### `extension`
+
+Data type: `Enum['hpi', 'jpi']`
+
+When no source is given, this extension is used
+
+Default value: `'hpi'`
+
+##### `digest_string`
+
+Data type: `Optional[String]`
+
+An optional digest string to verify integrity. The digest_type parameter
+describes content of this string. It's passed to puppet-archive to verify
+the downloaded plugin.
+
+Default value: `undef`
+
+##### `digest_type`
+
+Data type: `String`
+
+This parameter describes the content of digest_string. It's passed to
+puppet-archive to verify the downloaded plugin.
+
+Default value: `'sha1'`
+
+##### `enabled`
+
+Data type: `Boolean`
+
+Ensure whether the plugin is enabled or not. Disabled plugins are still
+installed.
+
+Default value: `true`
+
+##### `pin`
+
+Data type: `Boolean`
+
+Pin the plugin to a specific version. This prevents the updater from
+updating it.
+
+Default value: `false`
+
+##### `download_options`
+
+Data type: `Array[String[1]]`
+
+Add options to Archive's curl
+
+Default value: `['--http1.1']`
+
+### `jenkins::user`
+
+Copyright 2014 RetailMeNot, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+#### Parameters
+
+The following parameters are available in the `jenkins::user` defined type:
+
+* [`email`](#-jenkins--user--email)
+* [`password`](#-jenkins--user--password)
+* [`full_name`](#-jenkins--user--full_name)
+* [`public_key`](#-jenkins--user--public_key)
+* [`ensure`](#-jenkins--user--ensure)
+
+##### `email`
+
+Data type: `Pattern[/^[^@]+@[^@]+$/]`
+
+
+
+##### `password`
+
+Data type: `String`
+
+
+
+##### `full_name`
+
+Data type: `String`
+
+
+
+Default value: `'Managed by Puppet'`
+
+##### `public_key`
+
+Data type: `String`
+
+
+
+Default value: `''`
+
+##### `ensure`
+
+Data type: `Enum['present', 'absent']`
+
+
+
+Default value: `'present'`
+
+## Functions
+
+### `jenkins_port`
+
+Type: Ruby 3.x API
+
+Return the configurad Jenkins port value
+(corresponds to /etc/defaults/jenkins -> JENKINS_PORT
+
+Example:
+
+ $port = jenkins_port()
+
+#### `jenkins_port()`
+
+Return the configurad Jenkins port value
+(corresponds to /etc/defaults/jenkins -> JENKINS_PORT
+
+Example:
+
+ $port = jenkins_port()
+
+Returns: `Any`
+
+### `jenkins_prefix`
+
+Type: Ruby 3.x API
+
+Return the configured Jenkins prefix value
+(corresponds to /etc/defaults/jenkins -> PREFIX)
+
+Example:
+
+ $prefix = jenkins_prefix()
+
+#### `jenkins_prefix()`
+
+Return the configured Jenkins prefix value
+(corresponds to /etc/defaults/jenkins -> PREFIX)
+
+Example:
+
+ $prefix = jenkins_prefix()
+
+Returns: `Any`
+
+## Data types
+
+### `Jenkins::Tunnel`
+
+A custom data type for a jenkins tunnel verification
+
+Alias of `Variant[Pattern[/.+:$/], Pattern[/.+:[0-9]+/], Pattern[/^:[0-9]+/]]`
+
diff --git a/manifests/plugin.pp b/manifests/plugin.pp
index 595c7139..601bce28 100644
--- a/manifests/plugin.pp
+++ b/manifests/plugin.pp
@@ -59,7 +59,7 @@
Boolean $enabled = true,
String $digest_type = 'sha1',
Boolean $pin = false,
- Array[String[1]] $download_options = ($facts['os']['family'] == 'RedHat' and $facts['os']['release']['major'] == '7') ? { true => [], default => ['--http1.1'] },
+ Array[String[1]] $download_options = ['--http1.1'],
) {
include jenkins
diff --git a/metadata.json b/metadata.json
index 6d81305e..e14de33b 100644
--- a/metadata.json
+++ b/metadata.json
@@ -16,7 +16,6 @@
{
"operatingsystem": "RedHat",
"operatingsystemrelease": [
- "7",
"8",
"9"
]
@@ -30,7 +29,6 @@
{
"operatingsystem": "OracleLinux",
"operatingsystemrelease": [
- "7",
"8",
"9"
]