Collection of hands-off easy to configure github action runner clusters for a variety of project types.
The standard approach to deploying many runners for github actions is using Kubernetes ARC. Unfortunately running docker containers from within CI in order to test some otherwise not available components is hasslefull within kubernetes. Both docker-in-docker and docker socket volume passthrough have inconveniences of their own.
I chose docker socket passthrough as its more reliable.
Thats why some examples require passing through docker engine from the host system, so siblings can be created from within a container.
volumes:
- /usr/bin/docker:/usr/bin/docker
- /var/run/docker.sock:/var/run/docker.sock
Example docker containers required in some workflows:
controlplane/
: Contains the source code of the control plane used to created github runners automatically for you.examples/
: Contains directories for different project scenarios, each with its owndocker-compose.yml
,.env.example
,runner.flake
, and additional configuration files.scripts/
: Contains utility scripts for managing the setup and automation of runner tokens.
- Clone this repository onto the machine intented for running a cluster.
- Navigate to the desired project scenario in the
examples/
directory. - Copy
.env.example
to.env
and fill in the required secrets. - Run
docker-compose up -d
to start the cluster.
Configuration for a Unity CI/CD pipeline.
cd examples/unity-cd-pipeline
cp .env.example .env
# Fill in the .env file with the necessary secrets
docker-compose up -d