GitHub runner

  • By Canonical IS DevOps
Channel Revision Published Runs on
latest/stable 256 11 Sep 2024
Ubuntu 22.04 Ubuntu 20.04
latest/stable 244 27 Aug 2024
Ubuntu 22.04 Ubuntu 20.04
latest/stable 1 09 Feb 2022
Ubuntu 22.04 Ubuntu 20.04
latest/beta 257 12 Sep 2024
Ubuntu 22.04
latest/beta 234 05 Aug 2024
Ubuntu 22.04
latest/edge 263 Today
Ubuntu 22.04 Ubuntu 20.04
latest/edge 262 13 Sep 2024
Ubuntu 22.04 Ubuntu 20.04
latest/edge 4 26 Apr 2022
Ubuntu 22.04 Ubuntu 20.04
1/stable 177 05 Jun 2024
Ubuntu 22.04
1/edge 177 05 Jun 2024
Ubuntu 22.04
juju deploy github-runner --channel 1/edge
Show information

Platform:

Ubuntu
22.04 20.04

How to spawn OpenStack runner

The charm can be configured to use OpenStack cloud for creating runners. The charm must be deployed with the correct configuration and once the OpenStack integration is enabled the charm cannot be changed to use other virtualization methods.

Configuration

There are three configuration that the charm needs to be deployed with to enable OpenStack integration: openstack-clouds-yaml, openstack-flavor, and openstack-network.

Integration

The image will take about 10-15 minutes to build and be fully integrated. Deploy the github-runner-image-builder charm and wait for the image to be successfully provided via the relation data.

juju deploy github-runner-image-builder
juju integrate github-runner-image-builder github-runner
juju status github-runner

The image will take about 10-15 minutes to build and be ready via the relation.

OpenStack clouds.yaml

The openstack-clouds-yaml configuration contains the authorization information needed for the charm to log in to the openstack cloud. The first cloud in the clouds.yaml is used by the charm.

Here is a sample of the clouds.yaml:

clouds:
  cloud:
    auth:
      auth_url: https://keystone.cloud.com:5000/v3
      project_name: github-runner
      username: github-runner
      password: PASSWORD
      user_domain_name: Default
      project_domain_name: Default
    region_name: cloud

The clouds.yaml documentation is here.

OpenStack Flavor

The openstack-flavor configuration sets the flavor used to create the OpenStack virtual machine when spawning new runners. The flavor is tied with the vCPU, memory, and storage. The flavors documentation is here.

OpenStack Network

The openstack-network configuration sets the network used to create the OpenStack virtual machine when spawning new runners.

Note that the network should be configured to allow traffic from the charm deployment (juju machine) to the OpenStack virtual machine, and traffic from the OpenStack virtual machine to GitHub.

The network documentation is here.