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: linuxselector in mixed-OS clusters, preventing accidental Windows node scheduling
Getting Started
For detailed information and upgrade instructions, refer to the ARC documentation.