Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
- Puppet >= 7.0.0 < 9.0.0
- , , , , , , ,
Tasks:
- register_runner
- unregister_runner
Start using this module
Add this module to your Puppetfile:
mod 'puppet-gitlab_ci_runner', '5.1.0'
Learn more about managing modules with a PuppetfileDocumentation
Gitlab-CI runner module for Puppet
Table of Contents
- Overview
- Usage - Configuration options and additional functionality
- Limitations - OS compatibility, etc.
- Upgrading from version 3
- License
Overview
This module installs and configures the Gitlab CI Runner Package or nodes.
Usage
Here is an example how to configure Gitlab CI runners using Hiera:
To use the Gitlab CI runners it is required to have the puppetlabs/docker module.
$manage_docker
can be set to false if docker is managed externally.
gitlab_ci_runner::concurrent: 4
gitlab_ci_runner::check_interval: 4
gitlab_ci_runner::metrics_server: "localhost:8888"
gitlab_ci_runner::manage_docker: true
gitlab_ci_runner::config_path: "/etc/gitlab-runner/config.toml"
gitlab_ci_runner::runners:
test_runner1:{}
test_runner2:{}
test_runner3:
url: "https://git.alternative.org/ci"
registration-token: "abcdef1234567890"
tag-list: "aws,docker,example-tag"
ca_file: "/etc/pki/cert/foo.pem"
gitlab_ci_runner::runner_defaults:
url: "https://git.example.com/ci"
registration-token: "1234567890abcdef"
executor: "docker"
docker:
image: "ubuntu:focal"
To unregister a specific runner you may use ensure
param:
gitlab_ci_runner::runners:
test_runner1:{}
test_runner2:{}
test_runner3:
url: "https://git.alternative.org/ci"
registration-token: "abcdef1234567890"
ensure: absent
Upgrading from version 3
Version 4 of this module introduces some big changes. Puppet 6 or above is now required as the module now makes use of Deferred Functions when registering a runner.
Previously the gitlab_ci_runner::runner:config
was only used when a runner was registered.
The configuration was used as the arguments to the runner register
command, which would write the configuration file after registering with the gitlab server.
Puppet did not manage this file directly.
The module now manages the configuration file properly. That means, it's now possible to update most configuration settings after the initial registration, and more advanced configurations are supported.
:warning: When upgrading, your runners will be re-registered.
When upgrading to version 4 you may need to update some of your manifests accordingly. For example:
class { 'gitlab_ci_runner':
# [...]
runners => {
'my_runner' => {
'url' => 'https://gitlab.com/ci',
'registration-token' => 'abcdef1234567890',
'docker-image' => 'ubuntu:focal',
},
},
}
would need to be converted to:
class { 'gitlab_ci_runner':
# [...]
runners => {
'my_runner' => {
'url' => 'https://gitlab.com',
'registration-token' => 'abcdef1234567890',
'docker' => {
'image' => 'ubuntu:focal',
},
},
},
}
Configuration keys that are specific to registration, (such as registration-token
, run_untagged
etc.) are not written to the runner's configuration file, but are automatically extracted and used during registration only.
Changing these after registration has no affect.
Limitations
The Gitlab CI runner installation is at the moment only tested on:
- CentOS 7/8
- Debian 10/11
- Ubuntu 18.04/20.04/22.04
For the current list of tested and support operating systems, please checkout the metadata.json file.
It is currently not possible to alter registration specific configuration settings after a runner is registered.
License
lib/puppet_x/gitlab/dumper.rb is licensed under MIT. All other code is licensed under Apache 2.0.
Reference
Table of Contents
Classes
Public Classes
gitlab_ci_runner
: This module installs and configures Gitlab CI Runners.
Private Classes
gitlab_ci_runner::config
: Manages the configuration of Gitlab runnergitlab_ci_runner::install
: Manages the package of Gitlab runnergitlab_ci_runner::repo
: Manages the repository for Gitlab runnergitlab_ci_runner::service
: Manages the service of Gitlab runner
Defined types
gitlab_ci_runner::runner
: This configures a Gitlab CI runner.
Functions
gitlab_ci_runner::register
: A function that registers a Gitlab runner on a Gitlab instance. Be careful, this will be triggered on noop runs as well!gitlab_ci_runner::register_to_file
: A function that registers a Gitlab runner on a Gitlab instance, if it doesn't already exist, and saves the retrieved authentication token tgitlab_ci_runner::to_toml
: Convert a data structure and output to TOML.gitlab_ci_runner::unregister
: A function that unregisters a Gitlab runner from a Gitlab instance. Be careful, this will be triggered on noop runs as well!gitlab_ci_runner::unregister_from_file
: A function that unregisters a Gitlab runner from a Gitlab instance, if the local token is there. This is meant to be used in conjunction with
Data types
Gitlab_ci_runner::Keyserver
: Type to match repo_keyserver Regex from: https://github.com/puppetlabs/puppetlabs-apt/blob/main/manifests/key.ppGitlab_ci_runner::Log_format
: Gitlab Runner log format configurationGitlab_ci_runner::Log_level
: Gitlab Runner log level configurationGitlab_ci_runner::Register
: A struct of all possible additionl options for gitlab_ci_runner::registerGitlab_ci_runner::Register_parameters
: A enum containing a possible keys used for Gitlab runner registrationsGitlab_ci_runner::Session_server
: Gitlab Runner session_server configuration
Tasks
register_runner
: Registers a runner on a Gitlab instance.unregister_runner
: Unregisters a runner from a Gitlab instance.
Classes
gitlab_ci_runner
This module installs and configures Gitlab CI Runners.
Examples
Simple runner registration
class { 'gitlab_ci_runner':
runners => {
example_runner => {
'registration-token' => 'gitlab-token',
'url' => 'https://gitlab.com',
'tag-list' => 'docker,aws',
},
},
}
Parameters
The following parameters are available in the gitlab_ci_runner
class:
runners
runner_defaults
xz_package_name
concurrent
log_level
log_format
check_interval
shutdown_timeout
sentry_dsn
listen_address
session_server
manage_docker
manage_repo
package_ensure
package_name
repo_base_url
repo_keyserver
config_path
config_owner
config_group
config_mode
manage_config_dir
config_dir_mode
http_proxy
ca_file
repo_keysource
runners
Data type: Hash
Hashkeys are used as $title in runners.pp. The subkeys have to be named as the parameter names from ´gitlab-runner register´ command cause they're later joined to one entire string using 2 hyphen to look like shell command parameters. See ´https://docs.gitlab.com/runner/register/#one-line-registration-command´ for details.
Default value: {}
runner_defaults
Data type: Hash
A hash with defaults which will be later merged with $runners.
Default value: {}
xz_package_name
Data type: String
The name of the 'xz' package. Needed for local docker installations.
concurrent
Data type: Optional[Integer]
Limits how many jobs globally can be run concurrently. The most upper limit of jobs using all defined runners. 0 does not mean unlimited!
Default value: undef
log_level
Data type: Optional[Gitlab_ci_runner::Log_level]
Log level (options: debug, info, warn, error, fatal, panic). Note that this setting has lower priority than level set by command line argument --debug, -l or --log-level
Default value: undef
log_format
Data type: Optional[Gitlab_ci_runner::Log_format]
Log format (options: runner, text, json). Note that this setting has lower priority than format set by command line argument --log-format
Default value: undef
check_interval
Data type: Optional[Integer]
Defines the interval length, in seconds, between new jobs check. The default value is 3; if set to 0 or lower, the default value will be used.
Default value: undef
shutdown_timeout
Data type: Optional[Integer]
Number of seconds until the forceful shutdown operation times out and exits the process.
Default value: undef
sentry_dsn
Data type: Optional[String]
Enable tracking of all system level errors to sentry.
Default value: undef
listen_address
Data type: Optional[Pattern[/.*:.+/]]
Address (:) on which the Prometheus metrics HTTP server should be listening.
Default value: undef
session_server
Data type: Optional[Gitlab_ci_runner::Session_server]
Session server lets users interact with jobs, for example, in the interactive web terminal.
Default value: undef
manage_docker
Data type: Boolean
If docker should be installs (uses the puppetlabs-docker).
Default value: false
manage_repo
Data type: Boolean
If the repository should be managed.
Default value: true
package_ensure
Data type: String
The package 'ensure' state.
Default value: installed
package_name
Data type: String
The name of the package.
Default value: 'gitlab-runner'
repo_base_url
Data type: Stdlib::HTTPUrl
The base repository url.
Default value: 'https://packages.gitlab.com'
repo_keyserver
Data type: Optional[Gitlab_ci_runner::Keyserver]
The keyserver which should be used to get the repository key.
Default value: undef
config_path
Data type: String
The path to the config file of Gitlab runner.
Default value: '/etc/gitlab-runner/config.toml'
config_owner
Data type: String[1]
The user owning the config file. (and config directory if managed).
Default value: 'root'
config_group
Data type: String[1]
The group ownership assigned to the config file (and config directory if managed).
Default value: 'root'
config_mode
Data type: Stdlib::Filemode
The file permissions applied to the config file.
Default value: '0444'
manage_config_dir
Data type: Boolean
Manage the parent directory of the config file.
Default value: false
config_dir_mode
Data type: Optional[Stdlib::Filemode]
The file permissions applied to the config directory.
Default value: undef
http_proxy
Data type: Optional[Stdlib::HTTPUrl]
An HTTP proxy to use whilst registering runners.
This setting is only used when registering or unregistering runners and will be used for all runners in the runners
parameter.
If you have some runners that need to use a proxy and others that don't, leave runners
and http_proxy
unset and declare gitlab_ci_runnner::runner
resources separately.
If you do need to use an http proxy, you'll probably also want to configure other aspects of your runners to use it, (eg. setting http_proxy
environment variables, pre-clone-script
, pre-build-script
etc.)
Exactly how you might need to configure your runners varies between runner executors and specific use-cases.
This module makes no attempt to automatically alter your runner configurations based on the value of this parameter.
More information on what you might need to configure can be found here
Default value: undef
ca_file
Data type: Optional[Stdlib::Unixpath]
A file containing public keys of trusted certificate authorities in PEM format.
This setting is only used when registering or unregistering runners and will be used for all runners in the runners
parameter.
It can be used when the certificate of the gitlab server is signed using a CA
and when upon registering a runner the following error is shown:
certificate verify failed (self signed certificate in certificate chain)
Using the CA file solves https://github.com/voxpupuli/puppet-gitlab_ci_runner/issues/124.
The ca_file must exist. If it doesn't, Gitlab runner token generation will be skipped. Gitlab runner will not register until either the file exists or the ca_file parameter is not specified.
Default value: undef
repo_keysource
Data type: Stdlib::HTTPSUrl
URL to the gpg file used to sign the apt packages
Default value: "${repo_base_url}/gpg.key"
Defined types
gitlab_ci_runner::runner
This configures a Gitlab CI runner.
Examples
Add a simple runner
gitlab_ci_runner::runner { 'testrunner':
config => {
'url' => 'https://gitlab.com',
'token' => '123456789abcdefgh', # Note this is different from the registration token used by `gitlab-runner register`
'executor' => 'shell',
},
}
Add a autoscaling runner with DigitalOcean as IaaS
gitlab_ci_runner::runner { 'autoscale-runner':
config => {
url => 'https://gitlab.com',
token => 'RUNNER_TOKEN', # Note this is different from the registration token used by `gitlab-runner register`
name => 'autoscale-runner',
executor => 'docker+machine',
limit => 10,
docker => {
image => 'ruby:2.6',
},
machine => {
OffPeakPeriods => [
'* * 0-9,18-23 * * mon-fri *',
'* * * * * sat,sun *',
],
OffPeakIdleCount => 1,
OffPeakIdleTime => 1200,
IdleCount => 5,
IdleTime => 600,
MaxBuilds => 100,
MachineName => 'auto-scale-%s',
MachineDriver => 'digitalocean',
MachineOptions => [
'digitalocean-image=coreos-stable',
'digitalocean-ssh-user=core',
'digitalocean-access-token=DO_ACCESS_TOKEN',
'digitalocean-region=nyc2',
'digitalocean-size=4gb',
'digitalocean-private-networking',
'engine-registry-mirror=http://10.11.12.13:12345',
],
},
cache => {
'Type' => 's3',
s3 => {
ServerAddress => 's3-eu-west-1.amazonaws.com',
AccessKey => 'AMAZON_S3_ACCESS_KEY',
SecretKey => 'AMAZON_S3_SECRET_KEY',
BucketName => 'runner',
Insecure => false,
},
},
},
}
Parameters
The following parameters are available in the gitlab_ci_runner::runner
defined type:
config
Data type: Hash
Hash with configuration options. See https://docs.gitlab.com/runner/configuration/advanced-configuration.html for all possible options. If you omit the 'name' configuration, we will automatically use the $title of this define class.
ensure
Data type: Enum['present', 'absent']
If the runner should be 'present' or 'absent'. Will add/remove the configuration from config.toml Will also register/unregister the runner.
Default value: 'present'
ca_file
Data type: Optional[Stdlib::Unixpath]
A path to a file containing public keys of trusted certificate authorities in PEM format. Used during runner registration/unregistration only.
Default value: undef
http_proxy
Data type: Optional[Stdlib::HTTPUrl]
Default value: undef
Functions
gitlab_ci_runner::register
Type: Ruby 4.x API
A function that registers a Gitlab runner on a Gitlab instance. Be careful, this will be triggered on noop runs as well!
Examples
Using it as a replacement for the Bolt 'register_runner' task
puppet apply -e "notice(gitlab_ci_runner::register('https://gitlab.com', 'registration-token'))"
gitlab_ci_runner::register(Stdlib::HTTPUrl $url, String[1] $token, Optional[Gitlab_ci_runner::Register] $additional_options, Optional[Optional[Stdlib::Unixpath]] $ca_file)
A function that registers a Gitlab runner on a Gitlab instance. Be careful, this will be triggered on noop runs as well!
Returns: Struct[{ id => Integer[1], token => String[1], }]
Returns a hash with the runner id and authentcation token
Examples
Using it as a replacement for the Bolt 'register_runner' task
puppet apply -e "notice(gitlab_ci_runner::register('https://gitlab.com', 'registration-token'))"
url
Data type: Stdlib::HTTPUrl
The url to your Gitlab instance. Please only provide the host part (e.g https://gitlab.com)
token
Data type: String[1]
Registration token.
additional_options
Data type: Optional[Gitlab_ci_runner::Register]
A hash with all additional configuration options for that runner
ca_file
Data type: Optional[Optional[Stdlib::Unixpath]]
An absolute path to a trusted certificate authority file.
gitlab_ci_runner::register_to_file
Type: Ruby 4.x API
A function that registers a Gitlab runner on a Gitlab instance, if it doesn't already exist, and saves the retrieved authentication token to a file. This is helpful for Deferred functions.
Examples
Using it as a Deferred function
gitlab_ci_runner::runner { 'testrunner':
config => {
'url' => 'https://gitlab.com',
'token' => Deferred('gitlab_ci_runner::register_runner_to_file', [$config['url'], $config['registration-token'], 'testrunner'])
'executor' => 'shell',
},
}
gitlab_ci_runner::register_to_file(String[1] $url, String[1] $regtoken, String[1] $runner_name, Optional[Hash] $additional_options, Optional[Optional[String[1]]] $proxy, Optional[Optional[String[1]]] $ca_file)
A function that registers a Gitlab runner on a Gitlab instance, if it doesn't already exist, and saves the retrieved authentication token to a file. This is helpful for Deferred functions.
Returns: String[1]
Returns the authentication token
Examples
Using it as a Deferred function
gitlab_ci_runner::runner { 'testrunner':
config => {
'url' => 'https://gitlab.com',
'token' => Deferred('gitlab_ci_runner::register_runner_to_file', [$config['url'], $config['registration-token'], 'testrunner'])
'executor' => 'shell',
},
}
url
Data type: String[1]
The url to your Gitlab instance. Please only provide the host part (e.g https://gitlab.com)
regtoken
Data type: String[1]
Registration token.
runner_name
Data type: String[1]
The name of the runner. Use as identifier for the retrieved auth token.
additional_options
Data type: Optional[Hash]
A hash with all additional configuration options for that runner
proxy
Data type: Optional[Optional[String[1]]]
The HTTP proxy to use when registering
ca_file
Data type: Optional[Optional[String[1]]]
An absolute path to a trusted certificate authority file.
gitlab_ci_runner::to_toml
Type: Ruby 4.x API
Convert a data structure and output to TOML.
Examples
How to output TOML to a file
file { '/tmp/config.toml':
ensure => file,
content => to_toml($myhash),
}
gitlab_ci_runner::to_toml(Hash $data)
The gitlab_ci_runner::to_toml function.
Returns: String
Converted data as TOML string
Examples
How to output TOML to a file
file { '/tmp/config.toml':
ensure => file,
content => to_toml($myhash),
}
data
Data type: Hash
Data structure which needs to be converted into TOML
gitlab_ci_runner::unregister
Type: Ruby 4.x API
A function that unregisters a Gitlab runner from a Gitlab instance. Be careful, this will be triggered on noop runs as well!
Examples
Using it as a replacement for the Bolt 'unregister_runner' task
puppet apply -e "notice(gitlab_ci_runner::unregister('https://gitlab.com', 'runner-auth-token'))"
gitlab_ci_runner::unregister(Stdlib::HTTPUrl $url, String[1] $token, Optional[Optional[Stdlib::Unixpath]] $ca_file)
A function that unregisters a Gitlab runner from a Gitlab instance. Be careful, this will be triggered on noop runs as well!
Returns: Struct[{ status => Enum['success'], }]
Returns a hash with the runner id and authentcation token
Examples
Using it as a replacement for the Bolt 'unregister_runner' task
puppet apply -e "notice(gitlab_ci_runner::unregister('https://gitlab.com', 'runner-auth-token'))"
url
Data type: Stdlib::HTTPUrl
The url to your Gitlab instance. Please only provide the host part (e.g https://gitlab.com)
token
Data type: String[1]
Runners authentication token.
ca_file
Data type: Optional[Optional[Stdlib::Unixpath]]
An absolute path to a trusted certificate authority file.
gitlab_ci_runner::unregister_from_file
Type: Ruby 4.x API
A function that unregisters a Gitlab runner from a Gitlab instance, if the local token is there. This is meant to be used in conjunction with the gitlab_ci_runner::register_to_file function.
Examples
Using it as a Deferred function with a file resource
file { '/etc/gitlab-runner/auth-token-testrunner':
file => absent,
content => Deferred('gitlab_ci_runner::unregister_from_file', ['http://gitlab.example.org'])
}
gitlab_ci_runner::unregister_from_file(String[1] $url, String[1] $runner_name, Optional[Optional[String[1]]] $proxy, Optional[Optional[String[1]]] $ca_file)
A function that unregisters a Gitlab runner from a Gitlab instance, if the local token is there. This is meant to be used in conjunction with the gitlab_ci_runner::register_to_file function.
Returns: Any
Examples
Using it as a Deferred function with a file resource
file { '/etc/gitlab-runner/auth-token-testrunner':
file => absent,
content => Deferred('gitlab_ci_runner::unregister_from_file', ['http://gitlab.example.org'])
}
url
Data type: String[1]
The url to your Gitlab instance. Please only provide the host part (e.g https://gitlab.com)
runner_name
Data type: String[1]
The name of the runner. Use as identifier for the retrived auth token.
proxy
Data type: Optional[Optional[String[1]]]
HTTP proxy to use when unregistering
ca_file
Data type: Optional[Optional[String[1]]]
An absolute path to a trusted certificate authority file.
Data types
Gitlab_ci_runner::Keyserver
Type to match repo_keyserver Regex from: https://github.com/puppetlabs/puppetlabs-apt/blob/main/manifests/key.pp
Alias of Pattern[/\A((hkp|hkps|http|https):\/\/)?([a-z\d])([a-z\d-]{0,61}\.)+[a-z\d]+(:\d{2,5})?(\/[a-zA-Z\d\-_.]+)*\/?$/]
Gitlab_ci_runner::Log_format
Gitlab Runner log format configuration
Alias of Enum['runner', 'text', 'json']
Gitlab_ci_runner::Log_level
Gitlab Runner log level configuration
Alias of Enum['debug', 'info', 'warn', 'error', 'fatal', 'panic']
Gitlab_ci_runner::Register
A struct of all possible additionl options for gitlab_ci_runner::register
Alias of
Struct[{
Optional[description] => String[1],
Optional[info] => Hash[String[1],String[1]],
Optional[active] => Boolean,
Optional[locked] => Boolean,
Optional[run_untagged] => Boolean,
Optional[tag_list] => Array[String[1]],
Optional[access_level] => Enum['not_protected', 'ref_protected'],
Optional[maximum_timeout] => Integer,
}]
Gitlab_ci_runner::Register_parameters
A enum containing a possible keys used for Gitlab runner registrations
Alias of Enum['description', 'info', 'active', 'locked', 'run_untagged', 'run-untagged', 'tag_list', 'tag-list', 'access_level', 'access-level', 'maximum_timeout', 'maximum-timeout']
Gitlab_ci_runner::Session_server
Gitlab Runner session_server configuration
Alias of
Struct[{
listen_address => String[1],
advertise_address => String[1],
session_timeout => Optional[Integer],
}]
Tasks
register_runner
Registers a runner on a Gitlab instance.
Supports noop? false
Parameters
url
Data type: String[1]
The url to your Gitlab instance. Please only provide the host part (e.g https://gitlab.com)
token
Data type: String[1]
Registration token.
description
Data type: Optional[String[1]]
Runners description.
info
Data type: Optional[Hash]
Runners metadata.
active
Data type: Optional[Boolean]
Whether the Runner is active.
locked
Data type: Optional[Boolean]
Whether the Runner should be locked for current project.
run_untagged
Data type: Optional[Boolean]
Whether the Runner should handle untagged jobs.
tag_list
Data type: Optional[Array[String[1]]]
List of Runners tags.
access_level
Data type: Optional[Enum['not_protected', 'ref_protected']]
The access_level of the runner.
maximum_timeout
Data type: Optional[Integer[1]]
Maximum timeout set when this Runner will handle the job.
unregister_runner
Unregisters a runner from a Gitlab instance.
Supports noop? false
Parameters
url
Data type: String[1]
The url to your Gitlab instance. Please provide the host part only! (e.g https://gitlab.com)
token
Data type: String[1]
Runners authentication token.
What are tasks?
Modules can contain tasks that take action outside of a desired state managed by Puppet. It’s perfect for troubleshooting or deploying one-off changes, distributing scripts to run across your infrastructure, or automating changes that need to happen in a particular order as part of an application deployment.
Tasks in this module release
Changelog
All notable changes to this project will be documented in this file. Each new release typically also includes the latest modulesync defaults. These should not affect the functionality of the module.
v5.1.0 (2023-12-04)
Implemented enhancements:
- Add shutdown_timeout parameter #182 (wardhus)
- Add Puppet 8 support #173 (bastelfreak)
v5.0.0 (2023-10-17)
Breaking changes:
- Replace deprecated ensure_packages() with stdlib::ensure_packages() #180 (bastelfreak)
- Drop Debian 9 (EOL) #170 (smortex)
- Drop Puppet 6 support #168 (bastelfreak)
Implemented enhancements:
- Replace legacy merge() with native puppet code #179 (bastelfreak)
- Add EL9 support #175 (bastelfreak)
- Add AlmaLinux/Rocky support #174 (bastelfreak)
- Relax dependencies version requirements #171 (smortex)
Fixed bugs:
- Fix broken apt::source declaration for Debian-based systems #142 (logicminds)
Merged pull requests:
- .fixtures.yml: Drop puppet 6 leftovers #178 (bastelfreak)
- Fix acceptance tests #165 (smortex)
- Fix broken Apache-2 license #163 (bastelfreak)
v4.4.0 (2022-12-14)
Implemented enhancements:
- Add Ubuntu 22.04 support #160 (bastelfreak)
- check for presence of specifed ca_file #159 (bastelfreak)
- Add extra logging when registering/unregistering #157 (bastelfreak)
- Allow up-to-date dependencies #154 (smortex)
- Add Debian 11 support #122 (bastelfreak)
v4.3.1 (2022-06-20)
Fixed bugs:
- Ubuntu 18 Puppet 6: Install lsb-release during CI #151 (bastelfreak)
- Set ca_file per runner #150 (tuxmea)
Merged pull requests:
- Remove temp directories in docs #143 (logicminds)
- Fix puppet markup #140 (smortex)
v4.3.0 (2022-01-20)
Implemented enhancements:
Merged pull requests:
- toml gem: apply upstream changes #139 (bastelfreak)
v4.2.0 (2021-12-06)
Closed issues:
- Certificate verify failed on update to v4.0.0 #124
Merged pull requests:
- Add
ca_file
parameter for use during registration #135 (alexjfisher)
v4.1.0 (2021-11-04)
Implemented enhancements:
Merged pull requests:
- Add puppet-lint-param-docs #121 (bastelfreak)
v4.0.0 (2021-08-26)
Version 4.0.0 is a new major release of this module. It has many improvements but also significant breaking changes that you should read about and test before deploying into a production environment. Specifically Puppet 6 is required, your code will probably need updating and existing runners will reregister.
The README has further details.
Huge thanks to all our contributors and especially to Matthias Baur for his excellent contributions to this release.
Breaking changes:
- Drop RHEL/CentOS 6 and Amazon Linux Support #118
- Deprecate support for Debian 8 and Ubuntu 16.04 (and add support for Ubuntu 20.04) #114 (alexjfisher)
- Add support for registration by leveraging a "Deferred" function #107 (baurmatt)
- Move to concat for config.toml #75 (baurmatt)
Implemented enhancements:
- Support Puppet 7 #116 (alexjfisher)
- Add runner registration proxy support #109 (alexjfisher)
- Allow
hkp://
style URLs forrepo_keyserver
URL #102 (hp197)
Fixed bugs:
- Fix runner unregistering #111 (alexjfisher)
- Fix unregistering runner with
ensure => absent
#110 (alexjfisher)
Closed issues:
- Get acceptance tests setup and running #20
Merged pull requests:
- Allow up-to-date dependencies #117 (smortex)
- Update README with upgrade information #115 (alexjfisher)
- Update module dependencies #112 (alexjfisher)
- Fix typos in README.md #94 (nikitasg)
v3.0.0 (2020-09-15)
Breaking changes:
Implemented enhancements:
- Allow management of check_interval config setting #91 (tuxmea)
- Add support for CentOS 8, Debian 10 #87 (dhoppe)
Merged pull requests:
- Fix CI problems #89 (carljohnstone)
- Switch from Ubuntu Trusty to Ubuntu Focal #88 (carljohnstone)
- Use voxpupuli-acceptance #83 (ekohl)
v2.1.0 (2020-04-07)
Implemented enhancements:
Closed issues:
- Release new version #58
v2.0.0 (2020-02-06)
Breaking changes:
- Completely refactor gitlab_ci_runner::runner #74 (baurmatt)
- drop Ubuntu support #60 (bastelfreak)
- modulesync 2.7.0 and drop puppet 4 #39 (bastelfreak)
Implemented enhancements:
- Module should manage build_dir and cache_dir #33
- Add bolt task to register/unregister a runner #73 (baurmatt)
- Add Amazon Linux support (RedHat OS Family) #70 (bFekete)
- Add listen_address parameter #65 (baurmatt)
- Add custom repo #48 (lupintrd)
- Add support for current releases #41 (dhoppe)
- Fix xz dependency on RedHat systems #40 (smortex)
Fixed bugs:
- Multiple tags in tag-list are ignored only last is respected #37
- The package
xz-utils
isxz
on CentOS #25 - Fix bugs which got introduced by to runner.pp refactoring #76 (baurmatt)
- Fix runner name in unregister command #57 (dcasella)
- Use '=' to avoid errors while joining cmd options+values #31 (ajcollett)
Closed issues:
- registration_token containing undescore gets modified #61
- /etc/gitlab-runner/config.toml must exist #35
- Metrics server and Session listen address' #26
Merged pull requests:
- Extract resources out of init.pp #72 (baurmatt)
- Allow puppetlabs/stdlib 6.x #71 (dhoppe)
- Switch to puppet-strings for documentation #64 (baurmatt)
- Use grep with --fixed-strings to avoid issues with some characters in the runner's names #63 (Farfaday)
- Extend documentation in README with example tags #59 (jacksgt)
- add limitations about the runner configurations #56 (thde)
- ensure config exists #53 (thde)
- Added suport for configuring sentry_dsn #44 (schewara)
- Allow ensure => "present" for runners #36 (evhan)
- allow build_dir and cache_dir to be managed #34 (slmagus)
v1.0.0 (2018-11-21)
This is the first release of puppet/gitlab_ci_runner
. The functionality in this module was previously part of puppet/gitlab
Fixed bugs:
- Fix (un-)registering runner with similar names #22 (elkangaroo)
Closed issues:
- Import cirunner code from voxpupuli/puppet-gitlab module #12
- remove
apt
from dependencies #4 - Update license in metadata.json and add LiCENSE file #3
- Update ruby version in Dockerfile #2
Merged pull requests:
- modulesync 2.1.0 and allow puppet 6.x #23 (bastelfreak)
- allow puppetlabs/stdlib 5.x #19 (bastelfreak)
- initial import of puppet code #13 (LongLiveCHIEF)
- remove apt from metadata.json dependencies #10 (LongLiveCHIEF)
- Update ruby version in dockerfile #8 (LongLiveCHIEF)
- fix module name in metadata.json #6 (LongLiveCHIEF)
- update licensing information #5 (LongLiveCHIEF)
- modulesync setup #1 (LongLiveCHIEF)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/concat (>= 6.3.0 < 10.0.0)
- puppetlabs/stdlib (>= 4.25.0 < 10.0.0)
- puppetlabs/apt (>= 6.3.0 < 10.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] 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.