Actions Runner Controller (ARC): do you need it?

Actions Runner Controller (ARC) is GitHub's tool to run self-hosted runners on Kubernetes. It fits big teams that already use Kubernetes. For one Mac or one Linux box, it is more than you need.

What is ARC?

ARC runs GitHub Actions runners on Kubernetes. A runner is the computer that runs your job. Kubernetes is a system that runs many small app boxes, called containers, across many computers.

  • GitHub makes ARC. The code is at actions/actions-runner-controller.
  • You install it with Helm charts, an app installer for Kubernetes.
  • Runner scale sets add runners when jobs wait. They take them away when there is no work.
  • Each runner is a pod, one small box that runs one job and is then removed.

When is ARC a good fit?

ARC is a good fit when you already run Kubernetes.

  • Your team runs a Kubernetes cluster, a group of computers that work as one.
  • You need lots of Linux runners at once.
  • Someone can run and fix the cluster.

For teams like this, the GitHub Actions Runner Controller is a good tool.

When is ARC too much?

ARC is too much when you have just a few machines.

  • You have one Mac mini or one Linux box.
  • You are a small team with no one to run Kubernetes.
  • You build iOS or Mac apps. Kubernetes can't run macOS, so ARC can't run Mac jobs.

Then a plain self-hosted runner, a computer you own, is simpler.

ARC vs Codemany

The big difference: ARC needs Kubernetes, and Codemany does not.

WhatARCCodemany
Needs KubernetesYesNo
Mac jobsNoYes, on Apple silicon
SetupHelm charts on a clusterAn app on a Mac, or one command on Linux
Fresh runner per jobYes, one pod per jobYes, wiped after each job
CostFree; you pay for the cluster$20/month for 2 machines, 14 days free

With Codemany, you change one workflow line: runs-on: [self-hosted, codemany]. Keep self-hosted runners off public repos. Runner security says why.

Questions

What is Actions Runner Controller?

It is GitHub's Kubernetes tool for self-hosted runners. It adds and removes runners as jobs come and go.

Does ARC support macOS runners?

No. ARC runs Linux containers, and Kubernetes can't run macOS. For Mac jobs, use a Mac as your runner.

Do I need Kubernetes for self-hosted runners?

No. Any Mac or Linux computer you own can be a runner. You need Kubernetes only for ARC.

Is Actions Runner Controller free?

Yes, the software is free. You still pay for the cluster it runs on.

Read next: self-hosted runners, a self-hosted runner on Linux and single-use runners.