Blog Engineering Provision group runners with Google Cloud Platform and GitLab CI
Published on: November 19, 2024
3 min read

Provision group runners with Google Cloud Platform and GitLab CI

This tutorial will teach you how to set up a new group runner on GitLab.com using Google Cloud Platform in less than 10 minutes.

coding-cover

Are you interested in hosting your own servers to run your GitLab CI/CD pipelines but don’t know where to begin? Setting up a GitLab Runner to run your pipelines on your own infrastructure can seem like a daunting task as it requires infrastructure knowledge and the know-how to maintain that infrastructure. Typically this process requires the provision of infrastructure, the installing of dependency, and testing that it works with your GitLab instance.

This article highlights how easy it is to easily spin up a GitLab Runner of your own utilizing GitLab’s Google Cloud Integration. Follow this tutorial and it will teach you how to set up a new group runner on GitLab.com using Google Cloud Platform in less than 10 minutes!

You will learn how to:

  • Create a new group runner.
  • Configure the new group runner’s tags and description.
  • Register the new group runner by adding in configurations.
  • Provision the GitLab Runner utilizing gcloud cli and Terraform.
  • Have your GitLab Runner pick up its first GitLab CI job.

Prerequisites

  • A terminal with Bash installed
  • Owner access on a Google Cloud Platform project
  • Terraform (or OpenTofu) Version 1.5 or greater
  • gcloud CLI
  • 10 minutes

Tutorial

  1. Create a new group runner under Build > Runners > New Group Runner.

Note: Navigate to the group level.

GitLab Runner setup screen

  1. Configure the new group runner's tags, description, and any additional configurations.

New Group Runner setup

  1. Select Google Cloud.

Select Google Cloud screen

  1. Copy your project ID from Google Cloud Platform.

Copy project ID from GCP screen

  1. Fill out your Google Cloud project ID and choose a region, zone, and type of machine you want to use.

Screen to fill out Google Cloud information

6. Once this information is filled out, click Setup instructions.

Run the bash script provided in Step 1 above.

Note: This script was saved to a file called setup.sh for ease of use. You may copy this right into your terminal if you are confident in debugging.

Setup instructions screen

Script for GitLab Runner

7. Create a main.tf file and follow the instructions in GitLab.

Note: If you want to use OpenTofu instead of Terraform, you can still copy the code and only have to adjust the Terraform commands for applying the configuration.

Install and register GitLab Runner screen

Once successfully provisioned, you should be see the following:

GitLab Runner code

8. If you close the instructions and click the View runners button, you will now have a newly provisioned runner present with "Never contacted" as its status.

Newly provisioned runner on screen

9. In any project, add the following .gitlab-ci.yml.

stages:  
  - greet

hello_job:  
  stage: greet  
  tags:  
    - gcp-runner  
  script:  
    - echo "hello"  

Volia! You have set up your first GitLab Runner utilizing Google Cloud Platform.

Next steps

Now that you have provisioned your very own GitLab Runner, consider optimizing it for your specific use case. Some things to consider with your runner moving forward:

  • Is the runner I provisioned the right size? Does it need additional resources for my use case?
  • Does the GitLab Runner contain all the dependency my builds need?
  • How can I store the GitLab Runner as infrastructure as code?

Make sure to bookmark the Provisioning runners in Google Cloud documentation for easy reference.

We want to hear from you

Enjoyed reading this blog post or have questions or feedback? Share your thoughts by creating a new topic in the GitLab community forum. Share your feedback

Ready to get started?

See what your team could do with a unified DevSecOps Platform.

Get free trial

Find out which plan works best for your team

Learn about pricing

Learn about what GitLab can do for your team

Talk to an expert