[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 3/4] Jobs based on custom runners: docs and gitlab-runner
From: |
Cleber Rosa |
Subject: |
Re: [PATCH v6 3/4] Jobs based on custom runners: docs and gitlab-runner setup playbook |
Date: |
Tue, 29 Jun 2021 19:51:58 -0400 |
On Tue, Jun 8, 2021 at 3:04 PM Wainer dos Santos Moschetta
<wainersm@redhat.com> wrote:
>
> Hi,
>
> On 6/8/21 12:14 AM, Cleber Rosa wrote:
> > To have the jobs dispatched to custom runners, gitlab-runner must
> > be installed, active as a service and properly configured. The
> > variables file and playbook introduced here should help with those
> > steps.
> >
> > The playbook introduced here covers the Linux distributions and
> > has been primarily tested on OS/machines that the QEMU project
> > has available to act as runners, namely:
> >
> > * Ubuntu 20.04 on aarch64
> > * Ubuntu 18.04 on s390x
> >
> > But, it should work on all other Linux distributions. Earlier
> > versions were tested on FreeBSD too, so chances of success are
> > high.
> >
> > Signed-off-by: Cleber Rosa <crosa@redhat.com>
> > ---
> > docs/devel/ci.rst | 57 ++++++++++++++++++++++++++++
> > scripts/ci/setup/.gitignore | 1 +
> > scripts/ci/setup/gitlab-runner.yml | 61 ++++++++++++++++++++++++++++++
> > scripts/ci/setup/vars.yml.template | 12 ++++++
> > 4 files changed, 131 insertions(+)
> > create mode 100644 scripts/ci/setup/.gitignore
> > create mode 100644 scripts/ci/setup/gitlab-runner.yml
> > create mode 100644 scripts/ci/setup/vars.yml.template
> >
> > diff --git a/docs/devel/ci.rst b/docs/devel/ci.rst
> > index 35c6b5e269..bbd89e54d7 100644
> > --- a/docs/devel/ci.rst
> > +++ b/docs/devel/ci.rst
> > @@ -56,3 +56,60 @@ To run the playbook, execute::
> >
> > cd scripts/ci/setup
> > ansible-playbook -i inventory build-environment.yml
> > +
> > +gitlab-runner setup and registration
> > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > +
> > +The gitlab-runner agent needs to be installed on each machine that
> > +will run jobs. The association between a machine and a GitLab project
> > +happens with a registration token. To find the registration token for
> > +your repository/project, navigate on GitLab's web UI to:
> > +
> > + * Settings (the gears like icon), then
> > + * CI/CD, then
> > + * Runners, and click on the "Expand" button, then
> > + * Under "Set up a specific Runner manually", look for the value under
> > + "Use the following registration token during setup"
> > +
> > +Copy the ``scripts/ci/setup/vars.yml.template`` file to
> > +``scripts/ci/setup/vars.yml``. Then, set the
> > +``gitlab_runner_registration_token`` variable to the value obtained
> > +earlier.
> > +
> > +.. note:: gitlab-runner is not available from the standard location
> > + for all OS and architectures combinations. For some systems,
> > + a custom build may be necessary. Some builds are avaiable
> > + at https://cleber.fedorapeople.org/gitlab-runner/ and this
> > + URI may be used as a value on ``vars.yml``
> I think you can remove the information about the gitlab-running being
> not available for some systems.
Good catch!
> > +
> > +To run the playbook, execute::
> > +
> > + cd scripts/ci/setup
> > + ansible-playbook -i inventory gitlab-runner.yml
> > +
> > +Following the registration, it's necessary to configure the runner tags,
> > +and optionally other configurations on the GitLab UI. Navigate to:
> > +
> > + * Settings (the gears like icon), then
> > + * CI/CD, then
> > + * Runners, and click on the "Expand" button, then
> > + * "Runners activated for this project", then
> > + * Click on the "Edit" icon (next to the "Lock" Icon)
> > +
> > +Under tags, add values matching the jobs a runner should run. For a
> > +Ubuntu 20.04 aarch64 system, the tags should be set as::
> > +
> > + ubuntu_20.04,aarch64
>
> Also users no longer need manually create the tags.
>
Of course. But, given that this is a general rule, and there may be
OS/architectures for which Ansible may produce tag names one would not
expect, I'll ask the user to double check the tags. The text I'm
proposing on v7 is:
Tags are very important as they are used to route specific jobs to
specific types of runners, so it's a good idea to double check that
the automatically created tags are consistent with the OS and
architecture. For instance, an Ubuntu 20.04 aarch64 system should
have tags set as::
ubuntu_20.04,aarch64
> Remaining of the file looks good to me.
>
Thanks a lot!
- Cleber.
[PATCH v6 1/4] Jobs based on custom runners: documentation and configuration placeholder, Cleber Rosa, 2021/06/07
[PATCH v6 3/4] Jobs based on custom runners: docs and gitlab-runner setup playbook, Cleber Rosa, 2021/06/07
[PATCH v6 4/4] Jobs based on custom runners: add job definitions for QEMU's machines, Cleber Rosa, 2021/06/07