Skip to content

Advertisement

DevOps Society
DevOpsNews

Actions Runner Controller 0.15.0 Goes Easier on Your Kubernetes API

Actions Runner Controller 0.15.0 cuts Kubernetes API traffic, adds rate and concurrency controls and makes patch upgrades less disruptive for self-hosted runners.

Published your local timeupdated

Actions Runner Controller 0.15.0 Goes Easier on Your Kubernetes API

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 get output 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.

Advertisement

Follow DevOps Society on LinkedIn

Practical infrastructure engineering in your feed.

Follow

Written by

DevOpsSociety Editorial Team

Editorial Team

The DevOpsSociety Editorial Team covers DevOps, cloud infrastructure, Kubernetes, AI infrastructure, platform engineering, cybersecurity, FinOps, and modern engineering practices. We publish practical insights, technical guides, architecture analysis, and research for engineers and technology leaders.

More from DevOpsSociety →
The Infrastructure Briefing

Get the infrastructure briefing.

Practical DevOps, cloud, AI infrastructure and engineering insights, delivered weekly. Read by engineers and engineering leaders.

No spam. Unsubscribe anytime.

Actions Runner Controller 0.15.0 Goes Easier on Your Kubernetes API, DevOps Society