GitHub released Actions Runner Controller 0.15.0 on 1 October, and most of the work targets one problem: large self-hosted runner fleets that hammer the Kubernetes API and stumble during upgrades. The controller now sends patches instead of full updates, moves runner status into metrics and lets operators throttle its own clients.
Teams running GitHub Actions runner scale sets on Kubernetes should plan this like any ARC version change, which still means a reinstall rather than a plain helm upgrade, and should check any dashboards that read runner status fields. InfoQ covered the release on 20 October.
What changed in Actions Runner Controller 0.15.0?
According to the GitHub changelog, the release is about reliability, scalability and observability for runner scale sets.
Controllers now send Kubernetes patch requests instead of full object updates, which shrinks payloads. Runner status aggregation for EphemeralRunnerSet and AutoscalingRunnerSet moved out of the status field and into metrics, so the controller writes far fewer status patches. Controllers also filter incoming events and run fewer reconciliations.
Operators get two new tuning controls. The listener's Kubernetes client accepts QPS and burst limits. Reconcile concurrency can be set per controller with max-concurrent-reconciles flags. Both matter on shared clusters, where a busy runner controller competes for API server capacity with everything else running there.
Does it fix runner reliability problems?
Several. A runner scale set can now re-register itself if its record no longer exists in the GitHub Actions service. Ephemeral runners are deleted sooner when their pods exit cleanly, because ARC skips an extra server-side removal check. Scale-up now waits until the listener reports state that accounts for finished runners.
The controller's terminationGracePeriodSeconds is now configurable and matches the controller manager's graceful shutdown timeout. The release notes list dozens of smaller fixes to listener pod drift, cleanup and status contention.
How should you upgrade ARC to 0.15.0?
Start with the docs. GitHub's documentation says Helm cannot upgrade ARC, because Helm does not upgrade or delete CRDs. The documented path is to remove every gha-runner-scale-set installation, uninstall the controller, delete the actions.github.com CRDs if they changed and reinstall.
What 0.15.0 improves is life after that. From this release, patch-version upgrades update existing resources in place and keep a one-to-one mapping between each AutoscalingRunnerSet and its EphemeralRunnerSet. The 0.15.x line should be less disruptive to maintain.
A few changes can break dashboards or scripts that read ARC objects:
Runner status moved from status fields to metrics, and some status fields were renamed to phase.
AutoscalingRunnerSet lost printer columns that referenced removed status fields, so
kubectl getoutput looks different.Helm chart validation is stricter. Label and annotation values render as strings, and unsafe integers are rejected at render time.
The release also ships experimental charts, which GitHub says are not supported for production.
GitHub recommends a high availability setup to avoid runner downtime during the swap, and testing in a staging cluster that mirrors production.
Why it matters at scale
Once a CI platform serves dozens of teams, the runner controller sits on the delivery path. A controller that floods the API server slows every other workload on the cluster. InfoQ's Craig Risi pointed out the trade-off: raising concurrency also raises how hard the controller hits Kubernetes and GitHub. Tune QPS and concurrency with metrics in front of you.
GitHub published no benchmark figures with the release. Expect teams running thousands of jobs a day to publish their own numbers soon.
Quick answers
When was Actions Runner Controller 0.15.0 released?
GitHub released Actions Runner Controller 0.15.0, the gha-runner-scale-set charts and controller, on 1 October 2026.
Can you upgrade ARC to 0.15.0 with helm upgrade?
No. GitHub's documentation says Helm cannot upgrade ARC because it does not manage CRDs. Remove the scale sets, uninstall the controller, delete changed CRDs and reinstall.
What can break after upgrading to ARC 0.15.0?
Dashboards or scripts that read runner status fields. Status moved to metrics, some fields were renamed to phase, and AutoscalingRunnerSet printer columns changed.







