[GitHubActions] GitHub Actions Runners & ARC Helm Chart - eeeemune/Infra-Notes GitHub Wiki

💚 GitHub Actions Runners & ARC Helm Chart

💛 What are GitHub Actions runners?

GitHub Actions runners are the machines that run your CI/CD jobs (like building, testing, or deploying code).

  • Hosted runners: Provided by GitHub (like Ubuntu or Windows VMs).
  • Self-hosted runners: You can run them on your own machines, cloud VMs, or Kubernetes.

💛 Why self-host runners?

  • Faster builds (especially for large projects)
  • Full control over environment (pre-installed tools)
  • Lower cost at scale
  • Needed for private code or air-gapped environments

💛 What is ARC (Actions Runner Controller)?

ARC = Actions Runner Controller, a Kubernetes controller that:

  • Deploys and manages self-hosted GitHub runners on Kubernetes
  • Automatically scales runners up and down based on the jobs
  • Uses custom Kubernetes resources to manage runners per repo/org

💛 What is the ARC Helm chart?

Helm chart = a package of Kubernetes YAMLs

The ARC Helm chart:

  • Installs the whole ARC system (controller + runners)
  • Lets you configure scaling, GitHub access tokens, namespaces, etc.
  • Makes setup easier with values.yaml

🤍 Example

# Add the Helm repo
helm repo add actions-runner-controller <https://actions-runner-controller.github.io/actions-runner-controller>

# Install ARC into Kubernetes
helm install arc actions-runner-controller/actions-runner-controller \\
  -n actions-runner-system --create-namespace \\
  -f values.yaml

You then create a custom resource like this to spin up runners:

apiVersion: actions.summerwind.dev/v1alpha1
kind: RunnerDeployment
metadata:
  name: my-runners
spec:
  replicas: 2
  template:
    spec:
      repository: your-org/your-repo

💛 Summary

  • GitHub runners = machines that run Actions
  • ARC = way to run GitHub runners inside Kubernetes
  • ARC Helm chart = easy way to install ARC into your cluster

💛 References