meows
is a Kubernetes controller for GitHub Actions self-hosted runners.
You can run jobs in your GitHub Actions workflows on your Kubernetes cluster with meows.
Project Status: Initial development
- Kubernetes: 1.28, 1.29, 1.30
- Run a self-hosted runner on a pod
- meows runs the GitHub Actions Runner on a pod. It allows you to use a pod as a self-hosted runner.
- The pod spec is customizable. E.g., labels, annotations, environment variables, volumes, and other specs are customizable. So you can prepare any environment you want.
- We call the pod
runner pod
:)
- Pool and maintain some runners and runner pods
- meows prepares multiple runner pods as you specified. It allows you to pool various runners and reduce Actions job clagging.
- Run GitHub Actions jobs in the clean environment
- meows only runs one job on a single runner pod. When a job in a runner pod gets finished, meows will delete the pod and create a new one. So you can always run a job on a clean runner pod.
- Extend the lifetimes of runner pods
- When a job has finished, meows will delete the assigned runner pod after a while. But if necessary, you can extend the lifetime of the runner pod. For example, it enables you to investigate a failed job.
- Currently, you can only extend it if a job has failed.
docs directory contains documents about designs and specifications.
Docker images are available on ghcr.io