GitHub Actions (DevZero Kubernetes)
Running Github Actions using a controller on DevZero Kubernetes clusters.
Pre-built recipe templates are available here.
Intended Audience
This page is for platform engineers looking to solve one or multiple of the following:
- Growing costs related to GitHub Actions use (either GitHub-hosted, or self-hosted).
- Challenges around supporting/maintaining self-hosted runners.
- Managing the lifecycle of the runners (ensuring they're up-to-date)
- Scaling runner groups predictably/proportionally with size of job queues
- Supporting various shapes of runner pools/groups (by CPU, memory, preinstalled toolset etc.)
- Cloud infrastructure costs of operating self-hosted runners
- Visibility into individual workflows and jobs.
- Challenges around operating GitHub's action-runner-controller in self-managed Kubernetes clusters (docker-in-docker, low-level infrastructure tooling, toolset complexity, etc).
- Strong security isolation between concurrently running jobs on a given node.
- Shortening test run durations when using GitHub-hosted runners.
Using DevZero's Actions Runner Controller
You can run GitHub actions on ephemeral runners on DevZero using the Actions Runner Controller (ARC). This guide will help you install ARC on DevZero for your organization.
For more background on ARC you can also review GitHub's docs.
You will need a Personal Access Token (PAT). There's a GitHub App-based workflow supported as well.
Create a PAT
Visit Profile > Developer Settings > Personal access tokens > Tokens (classic).
Click on "Generate new token". Then, select "Generate new token (classic)".
In the "scopes" section, select repo
and optionally admin:org
for
organization runners.
Set up the runners
Provision a new DevZero cluster (or use dz cluster create
).
Install kubectl
and helm
in your terminal (or provision a new DevZero workspace with kubectl and helm installed).
Skip to the next step if you're in a workspace since kubeconfig
is already set up.
To configure your kubectl
to point to your DevZero cluster, download the kubeconfig for the DevZero cluster
Verify access by running
Install Actions Runner Controller using helm.
Using the prebuilt chart:
pass the flag --set githubEnterpriseServerURL=https://YOURENTERPRISEURL/
if you're using Github Enterprise Server
Install a runner scale-set using helm.
To verify the installation:
Pick a repository of your choice and cd into it
Ensure that there's a directory for GitHub workflows.
Create a test workflow file
Open the file and paste the following contents and then save it:
devzero-ubuntu-24.04
, runs-on
is set to devzero-ubuntu-24.04
(see previous section).Create a new branch with your changes and push them.
Create the PR in the GitHub console and then see the workflow run.