A Helm chart for hosting your own runner on Kubernetes to run jobs in your GitHub Actions workflows. ☸️ 🚀
Kubeact is a Helm Chart/Package for Kubernetes (K8s) to deploy and host your own runners on the cluster to run jobs in your GitHub Actions workflows. It makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub.
Kubeact sets up a self-hosted runner on the cluster. Self-hosted runners offer more control of hardware, operating system, and software tools than GitHub-hosted runners provide. With self-hosted runners, you can choose to create a custom hardware configuration with more processing power or memory to run larger jobs, install software available on your local network, and choose an operating system not offered by GitHub-hosted runners. You can read more about self-hosted runner here.
Note: Currently kubeact supports machines with Linux X64 architecture.
Helm
Ensure you have Helm installed. It is a package manager for Kubernetes which will be required to install the chart.
Docker
This repository contains a Dockerfile by which you can build your own personal runner image, which will be pulled while installing the helm chart. You can follow the official Docker installation guide here.
Github personal access token
The Dockerfile requires Github personal access token during build for the admin access to the repository and to configure the runner. You can create a personal access token by following this tutorial.
Build your runner image
Login into your docker account, Run:
$ docker login --username=yourUserName [email protected]
Run the following command to build your own runner image:
$ docker build \
-t yourUserName/kubeact:tagname \
--build-arg GITHUB_ACCESS_TOKEN=XXXXXXXXXXXXXX \
--build-arg GITHUB_USERNAME=< Your Github Username > \
--build-arg GITHUB_REPO_NAME=< Your target Github repo name > .
Push the image into your registry:
$ docker push yourUserName/kubeact:tagname
Warning: It is adviced to push the image into a private registry as it contains files that contains your sensitive informations.
Install the Helm chart
Open values.yaml and update the following values :
Chart Values
Key | Type | Default | Description |
---|---|---|---|
image.name | string | "kubeact" |
Name of your image. |
image.username | string | nil |
Your Docker registry username. |
image.password | string | nil |
Your Docker registry password. |
image.pullPolicy | string | "IfNotPresent" |
Image pull policy. |
image.registry | string | "https://index.docker.io/v1/" |
Your registry server. |
image.tag | string | "latest" |
Your Image tag. |
Run the following command to install the chart to your kubernetes cluster:
$ helm install kubeact .
Note: You can also update the values using --set flag.
I welcome pull requests, bug fixes and issue reports. Before proposing a change, please discuss your change by raising an issue.
Apache License 2.0 © Kumar Saurabh