/terraform-google-github-actions-runners

[ALPHA] Module to create self-hosted GitHub Actions Runners on GCP

Primary LanguageHCLApache License 2.0Apache-2.0

terraform-google-github-actions-runners

Using these Terraform modules you can quickly deploy Self Hosted Github Runners for jobs in your GitHub Actions workflows

The gh-runner-gke module provisions the resources required to deploy Self Hosted Runners on GCP infrastructure using GKE.

This includes

  • Enabling necessary APIs
  • VPC
  • GKE Cluster
  • Kubernetes Secret

Below are some examples:

This example shows how to deploy Self Hosted Runners on GKE that supports Docker Workflows.

This example shows how to deploy a simple GKE Self Hosted Runner.

More examples of Self Hosted Runners on GKE/Anthos.

The gh-runner-mig-vm module provisions the resources required to deploy Self Hosted Runners on GCP infrastructure using Managed Instance Groups.

This includes

  • Enabling necessary APIs
  • VPC
  • NAT & Cloud Router
  • Service Account for MIG
  • MIG Instance Template
  • MIG Instance Manager
  • FW Rules
  • Secret Manager Secret

Deployment of Managed Instance Groups requires a Google VM image with a startup script that downloads and configures the Runner or a pre-baked image with the runner installed.

Below are some examples:

This example shows how to deploy a MIG Self Hosted Runner with startup scripts.

This example shows how to deploy a MIG Self Hosted Runner with an image pre-baked using Packer.

The gh-runner-mig-container-vm module provisions the resources required to deploy Self Hosted Runners on GCP infrastructure using Managed Instance Groups.

This includes

  • Enabling necessary APIs
  • VPC
  • NAT & Cloud Router
  • MIG Container Instance Template
  • MIG Instance Manager
  • FW Rules

Below are some examples:

This example shows how to deploy a Self Hosted Runner that supports Docker Workflows on MIG Container VMs.

This example shows how to deploy a Self Hosted Runner on MIG Container VMs.

Requirements

These sections describe requirements for using this module.

Software

The following dependencies must be available:

Contributing

Refer to the contribution guidelines for information on contributing to this module.