Actions Runner Controller (ARC)
This guide explains how to set up GitHub Actions Runner Controller (ARC) in a Kubernetes cluster.
Create GitHub PAT
Go to GitHub → Settings → Developer Settings → Personal Access Tokens
Create new token with repo and workflow permissions
Save the token securely
Install Runner Set
# Set your GitHub details
export GITHUB_CONFIG_URL="https://github.com/YOUR_USERNAME/YOUR_REPO"
export GITHUB_PAT="your_pat_here"
# Install runner set
helm install arc-runner-set \
--namespace arc-runners \
--create-namespace \
--set githubConfigUrl="${GITHUB_CONFIG_URL}" \
--set githubConfigSecret.github_token="${GITHUB_PAT}" \
oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-
scale-set
Using in GitHub Actions
In your workflow file (.github/workflows/example.yml)
name: My Workflow
on: [push]
jobs:
build:
runs-on: arc-runner-set
steps:
- uses: actions/checkout@v2
- run: echo "Hello from self-hosted runner!"
Verification
Check if everything is running:
kubectl get pods -n arc-systems
kubectl get pods -n arc-runners
Your runner should appear online in your GitHub repository under Settings → Actions → Runners.
Troubleshooting
If runners show as offline:
Check runner pods: kubectl get pods -n arc-runners
View logs: kubectl logs -n arc-runners <pod-name>
Verify PAT permissions and expiration
Ensure correct repository URL in configuration
Cleanup
To remove ARC:
helm uninstall arc-runner-set -n arc-runners
helm uninstall arc -n arc-systems

SOCIAL SHARE CARD GENERATOR