Bassem Dghaidi
A deep dive into ARC the Kubernetes operator to scale self-hosted runners
#1about 2 minutes
Introducing the Actions Runner Controller for GitHub Actions
Actions Runner Controller (ARC) is an open-source project, now maintained by GitHub, for managing and scaling self-hosted runners on demand.
#2about 2 minutes
A live demonstration of auto-scaling self-hosted runners
See how a queued GitHub Actions workflow automatically triggers the creation of new runner pods in a Kubernetes cluster.
#3about 3 minutes
Understanding the core concept of Kubernetes control loops
Kubernetes operators use control loops, also known as reconciliation loops, to continuously check and enforce a desired state for resources.
#4about 1 minute
The high-level architecture of ARC and GitHub Actions
The controller runs in your Kubernetes cluster and communicates with GitHub to manage runner scale sets based on workflow demands.
#5about 1 minute
Why you should run ARC in a dedicated Kubernetes cluster
Isolate ARC from production workloads to prevent noisy neighbor problems and security risks from running arbitrary code.
#6about 4 minutes
How ARC controllers and custom resources work together
ARC installs a controller manager with multiple control loops, each responsible for reconciling a specific custom resource like runner scale sets.
#7about 5 minutes
The role of runner scale sets and the listener pod
Runner scale sets are pools of homogeneous runners, and a dedicated listener pod makes scaling decisions based on messages from GitHub.
#8about 6 minutes
A step-by-step workflow for scaling up a new runner
A workflow trigger sends a message to the listener, which patches a resource to increase the runner count, prompting a controller to create a new runner pod.
#9about 5 minutes
Exploring the open-source ARC repository on GitHub
A tour of the Actions Runner Controller codebase highlights its structure and the distinction between legacy community modes and the new GitHub-supported mode.
#10about 5 minutes
Defining custom resources for the ARC controller
The controller uses custom resource definitions (CRDs) to extend the Kubernetes API, creating new resource types like AutoscalingRunnerSet.
#11about 5 minutes
A look inside the controller's reconciliation function
The core logic of the operator resides in the reconciliation function, which compares the current state to the desired state and applies necessary changes.
#12about 3 minutes
How the listener application uses a long-poll connection
The listener runs as a separate application that establishes a long-poll HTTPS connection to the GitHub Actions backend to receive job messages.
#13about 7 minutes
Packaging and publishing ARC with Helm and OCI images
ARC is distributed as OCI-compliant Helm charts and a container image containing the controller manager and listener applications.
#14about 3 minutes
Common challenges when scaling self-hosted runners
Key challenges include scaling quickly to meet demand, scaling down to zero, and managing resource limitations within the Kubernetes cluster.
#15about 4 minutes
Career advice for aspiring self-taught developers
Beyond learning a tech stack, focus on software engineering fundamentals like data structures, algorithms, and writing maintainable code.
Related jobs
Jobs that call for the skills explored in this talk.
Team Lead DevOps (m/w/d)

Rhein-Main-Verkehrsverbund Servicegesellschaft mbH
Frankfurt am Main, Germany
Senior
Matching moments
00:19 MIN
Introduction to GitOps and the talk agenda
Get ready for operations by pull requests
03:44 MIN
Exploring the core components of GitHub Actions
CI/CD with Github Actions
24:47 MIN
Audience Q&A on DevOps, tools, and process
GitOps for the people
00:09 MIN
A DBA's journey to running SQL Server on Kubernetes
Adjusting Pod Eviction Timings in Kubernetes
15:33 MIN
The Kubernetes operator pattern for database automation
Databases on Kubernetes: Why you should care
17:48 MIN
Introducing Argo CD as a GitOps operator
Get ready for operations by pull requests
51:53 MIN
Q&A on shared systems and scaling productivity
Forget Developer Platforms, Think Developer Productivity!
11:38 MIN
Implementing a GitOps workflow with Argo CD
Chaos in Containers - Unleashing Resilience
Featured Partners
Related Videos
Get ready for operations by pull requests
Liviu Costea
Lights, Camera, GitHub Actions!
Ixchel Ruiz
GitOps: The past, present and future
Roberth Strand
CI/CD with Github Actions
Chris Ayers
CD2CF - Continuous Deployment to Cloud Foundry
Dominik Kress
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
Aarno Aukia
Local Development Techniques with Kubernetes
Rob Richardson
Developing locally with Kubernetes - a Guide and Best Practices
Dan Erez
From learning to earning
Jobs that call for the skills explored in this talk.


DevOps Engineer – Kubernetes & Cloud (m/w/d)
epostbox epb GmbH
Berlin, Germany
Intermediate
Senior
DevOps
Kubernetes
Cloud (AWS/Google/Azure)
AI Platform Engineer - OpenShift & Kubernetes F/H
Arkadin Cloud Communications
Canton d'Antony, France
REST
Linux
Nginx
DevOps
Python
+11
Devops Engineer * Kubernetes * Java * ELK * Angular
DC&I
The Hague, Netherlands
Java
DevOps
Gitlab
Angular
Openshift
+3
Platform Lead - Self hosted Kubernetes - Linux - £110k
Opus Recruitment Solutions
Charing Cross, United Kingdom
Remote
€80K
Senior
Linux
DevOps
Ansible
+4
Fullstack DevOps Architect-Openshift
KBC Technologies UK LTD
Charing Cross, United Kingdom
Bash
DevOps
Python
VMware
Ansible
+5

