Skip to content
generated from cybozu-go/neco-template

Kubernetes controller for GitHub actions self-hosted runners

License

Notifications You must be signed in to change notification settings

cybozu-go/meows

Repository files navigation

GitHub release CI PkgGoDev Go Report Card

meows

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

Supported software

  • Kubernetes: 1.28, 1.29, 1.30

Features

  • 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.

Documentation

docs directory contains documents about designs and specifications.

Docker images

Docker images are available on ghcr.io