This module has seen some use, and noone is more surprised than me. I clearly don't have the bandwidth to maintain it properly anymore. If you're interested in helping, please send me an email: fjvanw at thetadelt.com. I will figure out how to deal with the credentials needed, here and on PuppetForge, at the time.
A module for the installation and use of the Gitlab CI MultiRunner written in Go.
Installation takes place via the instructions found here
- Repo is added, User created and managed, and the Runners are registered.
The version of the gitlab-ci-multi-runner package is restricted to v0.4.2
for RHEL5 and RHEL6
derivatives due to restrictions identified on CentOS systems. RHEL7 and Debian derivatives are set to
use the most current release
available.
class {'gitlab_ci_multi_runner':
nice => '15'
}
gitlab_ci_multi_runner::runner { "This is My Runner":
gitlab_ci_url => 'http://ci.gitlab.examplecorp.com',
tags => ['tag', 'tag2','java', 'php'],
token => 'sometoken',
executor => 'shell',
}
gitlab_ci_multi_runner::runner { "This is My Second Runner":
gitlab_ci_url => 'http://ci.gitlab.examplecorp.com',
tags => ['tag', 'tag2','npm', 'grunt'],
token => 'sometoken'
executor => 'ssh',
ssh_host => 'cirunners.examplecorp.com',
ssh_port => 22,
ssh_user => 'mister-ci',
ssh_password => 'password123'
}
gitlab_ci_multi_runner::runner { "This is My Third Runner using Docker":
gitlab_ci_url => 'http://ci.gitlab.examplecorp.com'
tags => ['tag', 'tag2','docker', 'container'],
token => 'sometoken'
executor => 'docker',
docker_image => 'ruby:2.1',
docker_postgres => '9.5',
docker_allowed_services => ['elasticsearch', 'memcached', 'haproxy'],
docker_allowed_images => ['ruby', 'wordpress'],
docker_volumes => ['/var/run/docker.sock:/var/run/docker.sock', '/src/webapp:/opt/webapp']
}
Control the niceness of the actual process running the CI Jobs. Valid values are from -20 to 19. Leading '+' is optional.
Set the version of the gitlab-ci-multi-runner package. This can be to a specfic version number,
present
(if you don't want Puppet to update it for you) or when undefined it defaults to latest
.
As mentioned above, the version of the package will always be set to v0.4.2
for RHEL5 and RHEL 6
derivatives.
All options are pulled from the Gitlab CI MultiRunner registration command - The name of the runner will be used to Generate the description when registering the Runner.
Used By all Executors.
The GitLab-CI Coordinator URL
This is a list of tags to apply to the runner - it takes an array, which will be joined into a comma separated list of tags.
The GitLab-CI Token for this Runner
The Executor: shell, docker, docker-ssh, ssh?
The Runner is packages with a "Parallels" Executor as well.
Run builds without tag: true, false?
If you want this runner to execute builds without a tag given in .gitlab-ci.yml. When undefined Gitlab defaults to true if no list of tags for this runner is specified otherwise false.
Used by the Docker and Docker SSH executors.
The Docker Image (eg. ruby:2.1)
Run Docker containers in privileged mode
Any truthy value will set this off.
If you want to enable mysql please enter version (X.Y) or enter latest
If you want to enable postgres please enter version (X.Y) or enter latest
If you want to enable redis please enter version (X.Y) or enter latest
If you want to enable mongo please enter version (X.Y) or enter latest
Specify a list of volumes that are being mounted to every docker container spawned by a docker executor. For details see the official documentation about docker volumes.
Used by the "Parallels" executor.
The Parallels VM (eg. my-vm)
Used by the SSH, Docker SSH, and Parllels Executors.
The SSH Server Address (eg. my.server.com)
The SSH Server Port (eg. 22)
The SSH User (eg. root)
The SSH Password (eg. docker.io)
Please maintain sensible spacing between logical blocks of code, and a 4 space indent - no tabs, thank you. Where line breaks are concerned - readability is the key here. Since we're no longer using punch cards to run our code, there's no need for our lines to fit into a specific line length 100% of the time. That being said, this repository likes to wrap between 80 and 100 characters when possible, to facilitate a broad range of coding display styles. If you use puppet-lint, I suggest you also use the flag to disable the 80 character line limit.
Please open pull requests for any features you can, and make sure to update the README for your features.