GitHub has released Actions Runner Controller (ARC) version 0.15.0, introducing targeted performance, scalability, and observability updates for managing self-hosted runner fleets on Kubernetes. The release focuses on reducing API churn, accelerating runner cleanup, and providing administrators with detailed operational controls.
Reduced Kubernetes API Overhead
To lower payload size and network resource consumption across cluster control planes, ARC 0.15.0 switches controller updates from full update requests to patch requests. Additionally, runner status aggregation for EphemeralRunnerSet and AutoscalingRunnerSet has shifted to metrics, which decreases the frequency of status patch requests sent to the Kubernetes API.
The controller now filters incoming events to perform fewer reconciliations overall. For faster lifecycle cleanup, ephemeral runner pods skip the server-side removal check once the runner pod successfully exits, enabling quicker pod deletion.
In-Place Updates and Lifecycle Controls
Patch version upgrades now update resources in place, minimizing operational disruptions between autoscaling runner sets and ephemeral runner sets. The update also allows runner scale sets to reregister automatically when a recorded scale set no longer exists within the GitHub Actions service.
For fleet stability, controller shutdown behavior has been refined. The terminationGracePeriodSeconds parameter is now configurable to align directly with the controller manager's graceful shutdown timeout.
Configurable Concurrency and Rate Limits
ARC 0.15.0 gives operators explicit control over concurrency and network requests. Teams can configure global and per-controller concurrency levels using max-concurrent-reconciles flags. Listener Kubernetes client rate limits can also be adjusted by setting specific QPS and burst parameters.
AI-generated editorial illustration; not a documentary photograph.
Source: Actions Runner Controller release 0.15.0

Leave a Reply