gitlab-runner

  • Erik Lönroth
Channel Revision Published Runs on
latest/stable 9 06 Mar 2024
Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
latest/beta 4 07 Jul 2021
Ubuntu 20.04
latest/edge 9 26 Feb 2024
Ubuntu 22.04 Ubuntu 20.04 Ubuntu 18.04
juju deploy gitlab-runner
Show information

Platform:

Ubuntu
22.04 20.04 18.04

Example deploy & scaling

This example show a basic deploy scaling to N runners.

Create a file with your configuration: runner-config.yaml:

gitlab-runner:
  gitlab-server: "https://gitlab.example.com"
  gitlab-registration-token: tXwQuDAVmzxzzTtw2-ZL
  tag-list: "juju,docker,master"
  run-untagged: true

Then deploy with your config and some instance constraints.

  juju deploy --constraints="mem=4G cores=2" ./builds/gitlab-runner --config runner-config.yaml

Scale up your deployment with ‘juju add-unit’ and you will get an identical new instance. serving your pipeline:

  juju add-unit gitlab-runner

Scale down with ‘juju remove-unit’ (will also unregister the instance in gitlab)

  juju remove-unit gitlab-runner/0

Example deploy, multiple projects, different sizes

Create two files with your separate configurations.

runner-config-one.yaml

gitlab-runner-one:
  gitlab-server: "https://gitlab.example.com"
  gitlab-registration-token: rXwQugergrzxzz32Fw3-44
  tag-list: "juju,docker,master"
  run-untagged: true

runner-config-two.yaml

gitlab-runner-two:
  gitlab-server: "https://gitlab.example.com"
  gitlab-registration-token: tXwQuDAVmzxzzTtw2-ZL
  tag-list: "juju,docker,daily"
  run-untagged: true

Deploy the same charm, using two differnt configs and different constraints.

  juju deploy --constraints="mem=4G cores=2" ./builds/gitlab-runner gitlab-runner-one --config runner-config-one.yaml
  juju deploy --constraints="mem=2G cores=1" ./builds/gitlab-runner gitlab-runner-two --config runner-config-two.yaml

Example deploy, relate to prometheus for monitoring

With any of the other examples, add in a prometheus instance:

  juju deploy prometheus2 --constraints="mem=4G cores=2"
  juju relate prometheus2 gitlab-runner
  juju expose prometheus2

When ready, the prometheus instance will be available on http://prometheus-instance:9090/

Deploy gitlab-runner with prometheus and grafana

juju deploy --constraints="mem=4G cores=2" ./builds/gitlab-runner --config runner-config.yaml
juju deploy prometheus2 --constraints="mem=4G cores=2"
juju deploy grafana
juju relate prometheus2 gitlab-runner
juju add-relation prometheus2:grafana-source grafana:grafana-source
juju expose prometheus2
juju expose grafana

# Get the admin password to login to grafana.
juju run-action --wait grafana/0 get-admin-password

Browse to http://grafana:3000/

One dashboard known to work with the metrics is: https://grafana.com/grafana/dashboards/8729