GitHub runner

  • Canonical IS DevOps
Channel Revision Published Runs on
latest/stable 290 11 Nov 2024
Ubuntu 22.04 Ubuntu 20.04
latest/stable 279 21 Oct 2024
Ubuntu 22.04 Ubuntu 20.04
latest/stable 1 09 Feb 2022
Ubuntu 22.04 Ubuntu 20.04
latest/beta 290 11 Nov 2024
Ubuntu 22.04
latest/beta 234 05 Aug 2024
Ubuntu 22.04
latest/edge 300 Today
Ubuntu 22.04 Ubuntu 20.04
latest/edge 299 Yesterday
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
Show information

Platform:

Ubuntu
22.04 20.04

Learn about configurations >

  • base-image | string

    Default: jammy

    The base ubuntu OS image to use for the runners. Codename (e.g. "jammy") or version tag (e.g. 22.04) is supported as input. Currently only supports LTS versions of jammy and higher, i.e. jammy, noble. Only applicable for LXD mode.

  • denylist | string

    A comma separated list of IPv4 networks in CIDR notation that runners can not access. The runner will always have access to essential services such as DHCP and DNS regardless of the denylist configuration.

  • dockerhub-mirror | string

    The URL to the private docker registry configured as the dockerhub mirror to be used by the runners. If set a message will be displayed prior to job execution on self-hosted runner informing users to use the provided registry. You must use https:// as the protocol.

  • experimental-use-aproxy | boolean

    (Experimental, may be removed) When set to true, aproxy (https://github.com/canonical/aproxy) will be installed within the runners. It will forward all HTTP(S) traffic to standard ports (80, 443) to a proxy server configured by the juju model config 'juju-http-proxy' (or, if this is not set, 'juju-https-proxy' will be used). This is useful when the charm is deployed in a network that requires a proxy to access the internet. Note that you should not specify a proxy server listening on port 80 or 443, as all traffic to these ports is relayed to aproxy, which would cause an infinite loop.

  • group | string

    Default: default

    The organization runner group to register the self-hosted runner under. This has no effect on runners under a repository.

  • labels | string

    Additional comma separated labels to attach to self-hosted runners. By default, the labels "self-hosted", architecture (i.e. "x64", "arm64"), os (i.e. "linux"), os-flavor (i.e. "jammy") are set. Any labels provided via this configuration will be appended to the default values.

  • openstack-clouds-yaml | string

    Providing a valid clouds.yaml will enable OpenStack integration. Setting the openstack-clouds-yaml would enable spawning runners on OpenStack, and disable usage of local LXD for runners. The format for the clouds.yaml is described in the docs: (https://docs.openstack.org/python-openstackclient/pike/configuration/index.html#clouds-yaml).

  • openstack-flavor | string

    The openstack flavor to use to spawn virtual machines. This controls the hardware resource of the virtual machines. See docs for details: (https://docs.openstack.org/nova/rocky/user/flavors.html).

  • openstack-network | string

    The openstack network for virtual machines hosting the runners. The network must allow this application to be able to access the virtual machine though the IP assigned by the openstack network. See docs for details: (https://docs.openstack.org/neutron/latest/admin/intro-os-networking.html).

  • path | string

    The organization or the repository to register the self-hosted runners. For organization the path would be the name of the organization. For repository the path should be in the "{owner}/{repo}" format.

  • reconcile-interval | int

    Default: 10

    Minutes between each reconciliation of the current runners state and their targeted state. On reconciliation, the charm polls the state of runners and see if actions are needed. A random delay of 25% is added. Changes to this time interval will apply when next interval is triggered. Prior to reconciliation, any packages, and services used by the software will be updated.

  • repo-policy-compliance-token | string

    The token to authenticate with the repository-policy-compliance service in order to generate one-time-tokens. This option requires the repo-policy-compliance-url to be set. If not set, the repository-policy-compliance service will not be used.

  • repo-policy-compliance-url | string

    The URL to the repository-policy-compliance service. This option requires the repo-policy-compliance-token to be set. If not set, the repository-policy-compliance service will not be used. This option is only supported when using OpenStack Cloud.

  • runner-storage | string

    Default: juju-storage

    The storage for runner LXD instance to mount as disk. Can be "memory" or "juju-storage". If set to "memory", memory-based storage created with tmpfs will be used as disk for LXD instances. If set to "juju-storage", storage provided by juju will be used as disk for LXD instances. This configuration cannot be changed after deployment. The charm needs to be redeployed to change the storage option.

  • test-mode | string

    When set to 'insecure', the charm test mode is activated, which may deactivate some security hardening measures.

  • token | string

    The GitHub Personal Access Token for registering the self-hosted runners. The token requires 'repo' scope for repository runners and 'repo' + 'admin:org' scope for organization runners. For fine grained token scopes, see https://charmhub.io/github-runner/docs/how-to-change-token.

  • virtual-machines | int

    Default: 1

    The number of virtual machine runners. This charm will spawn or destroy virtual machines runners to match this setting.

  • vm-cpu | int

    Default: 2

    The number of CPUs used per virtual machine runner.

  • vm-disk | string

    Default: 10GiB

    Amount of disk space to allocate to root disk for virtual machine runner. Positive integers with KiB, MiB, GiB, TiB, PiB, EiB suffix.

  • vm-memory | string

    Default: 7GiB

    Amount of memory to allocate per virtual machine runner. Positive integers with KiB, MiB, GiB, TiB, PiB, EiB suffix.