← Back
GitHub
GitHub Actions Runner Controller 0.14.0 adds multilabel support, switches to public scaleset client
GitHub ActionsGitHub · releasefeatureapiplatformintegration · github.blog ↗

Multilabel Support for Runner Scale Sets

ARC 0.14.0 introduces multilabel support, eliminating the need to create separate scale sets for every combination of operating system, hardware tier, network configuration, or compliance zone. You can now assign multiple labels to a single runner scale set and use them together in runs-on declarations, simplifying infrastructure management and reducing operational overhead.

Public Scaleset Library Client

The release replaces ARC's internal client with the actions/scaleset library as its sole client for communicating with GitHub Actions service APIs. This standalone, publicly available Go package enables platform teams and infrastructure providers to build custom autoscaling solutions using the same client that powers ARC, fostering ecosystem development around self-hosted runners.

Enhanced Kubernetes Resource Customization

Both the gha-runner-scale-set and gha-runner-scale-set-controller Helm charts now expose a resource configuration interface, allowing you to apply custom Kubernetes labels and annotations to internal resources including roles, role bindings, service accounts, and listener pods. Configure metadata globally via resource.all.metadata or target individual resources for fine-grained control.

Additional Improvements

  • Experimental Helm Charts: Rewritten charts with cleaner template structure and unified configuration for Docker-based runner setups
  • Autoscaling Controls: Stops autoscaling for outdated runner sets when exit code 7 is detected, reducing the risk of stale runners during configuration rollouts
  • Linux Node Scheduling: Listener pods now default to kubernetes.io/os: linux selector in mixed-OS clusters, preventing accidental Windows node scheduling

Getting Started

For detailed information and upgrade instructions, refer to the ARC documentation.