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.
##Usage
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']
}
##Installation Options
control the niceness of the actual process running the CI Jobs. Valid values are from -20 to 19.
Leading '+' is optional.
##Runner Options
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.
###Standard Options Used By all Executors.
####gitlab_ci_url
The GitLab-CI Coordinator URL
####tags 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.
####token
The GitLab-CI Token for this Runner
####executor
The Executor: shell, docker, docker-ssh, ssh?
The Runner is packages with a "Parallels" Executor as well.
Used by the Docker and Docker SSH executors.
####docker_image
The Docker Image (eg. ruby:2.1)
####docker_privileged
Run Docker containers in privileged mode
Any truthy value will set this off.
####docker_mysql
If you want to enable mysql please enter version (X.Y) or enter latest
####docker_postgres
If you want to enable postgres please enter version (X.Y) or enter latest
####docker_redis
If you want to enable redis please enter version (X.Y) or enter latest
####docker_mongo
If you want to enable mongo please enter version (X.Y) or enter latest
####docker_volumes
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.
###Parallels Options Used by the "Parallels" executor.
####parallels_vm
The Parallels VM (eg. my-vm)
###SSH Options Used by the SSH, Docker SSH, and Parllels Executors.
####ssh_host
The SSH Server Address (eg. my.server.com)
####ssh_port
The SSH Server Port (eg. 22)
####ssh_user
The SSH User (eg. root)
####ssh_password
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.