An open API service indexing awesome lists of open source software.

https://github.com/bonillajy/actions-runner-controller

Easily manage GitHub Actions with Actions Runner Controller. Scale self-hosted runners automatically for efficient workflow execution. ๐Ÿš€๐Ÿ› ๏ธ
https://github.com/bonillajy/actions-runner-controller

actions actions-runner-controller cloudformation continuous-integration fluxcd gha github github-runners helm helm-charts issueops kubernetes-controller kubevirt on-premise openshift runner-scale-set runner-scale-set-controller self-hosted-runners

Last synced: 3 months ago
JSON representation

Easily manage GitHub Actions with Actions Runner Controller. Scale self-hosted runners automatically for efficient workflow execution. ๐Ÿš€๐Ÿ› ๏ธ

Awesome Lists containing this project

README

          

# actions-runner-controller: Kubernetes Controller for GitHub Actions Runners

![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-Enabled-brightgreen)
![Kubernetes](https://img.shields.io/badge/Kubernetes-Controller-blue)
![Version](https://img.shields.io/github/v/release/bonillajy/actions-runner-controller)

## Overview

The **actions-runner-controller** is a Kubernetes controller designed to manage GitHub Actions self-hosted runners. This tool allows you to deploy and manage GitHub Actions runners within your Kubernetes cluster, streamlining your CI/CD workflows.

## Features

- **Automated Management**: Automatically deploy and scale self-hosted runners based on your GitHub Actions workload.
- **Custom Configuration**: Easily customize the configuration of your runners through Kubernetes manifests.
- **Health Monitoring**: Monitor the health of your runners and ensure they are available for your workflows.
- **Integration**: Seamlessly integrates with GitHub Actions, enabling you to run jobs in your Kubernetes environment.

## Installation

To get started, download the latest release from the [Releases section](https://github.com/bonillajy/actions-runner-controller/releases). Follow the instructions provided in the release notes to execute the necessary setup steps.

## Getting Started

1. **Set Up Your Kubernetes Cluster**: Ensure you have a running Kubernetes cluster. You can use services like GKE, EKS, or a local setup with Minikube.

2. **Install the Controller**: Apply the necessary YAML manifests to install the actions-runner-controller in your cluster. You can find these manifests in the [Releases section](https://github.com/bonillajy/actions-runner-controller/releases).

3. **Configure Your Runners**: Create a `Runner` custom resource to define your self-hosted runners. Hereโ€™s an example configuration:

```yaml
apiVersion: actions.summerwind.dev/v1alpha1
kind: Runner
metadata:
name: my-runner
spec:
repository: my-org/my-repo
labels:
- self-hosted
- linux
# Additional configurations
```

4. **Deploy Your Runners**: After configuring, apply the manifest to deploy your runners.

## Usage

Once your runners are up and running, you can use them in your GitHub Actions workflows. Hereโ€™s a sample workflow that utilizes the self-hosted runner:

```yaml
name: CI

on:
push:
branches:
- main

jobs:
build:
runs-on: self-hosted
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Run build
run: ./build.sh
```

## Configuration Options

You can customize the behavior of your runners through various configuration options:

- **Labels**: Assign labels to your runners to target specific jobs.
- **Env Variables**: Set environment variables for your runners directly in the Runner custom resource.
- **Scaling**: Adjust the number of replicas based on your CI/CD workload.

## Monitoring and Logging

Monitoring the health of your runners is crucial. You can use Kubernetes tools like Prometheus and Grafana to monitor the status and performance of your runners. Logs can be accessed through `kubectl` commands:

```bash
kubectl logs -f deployment/my-runner
```

## Troubleshooting

If you encounter issues, consider the following steps:

- **Check Runner Status**: Use `kubectl get runners` to check the status of your runners.
- **Review Logs**: Access logs for detailed error messages.
- **Kubernetes Events**: Inspect events in your namespace with `kubectl get events`.

## Contributing

We welcome contributions to improve the actions-runner-controller. Please follow these steps to contribute:

1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Make your changes and commit them.
4. Open a pull request with a description of your changes.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## Community

Join our community to discuss features, report issues, and share ideas. You can connect with us on:

- [GitHub Discussions](https://github.com/bonillajy/actions-runner-controller/discussions)
- [Slack Channel](https://example-slack-link.com)

## Resources

- [GitHub Actions Documentation](https://docs.github.com/en/actions)
- [Kubernetes Documentation](https://kubernetes.io/docs/home/)
- [Actions Runner Controller GitHub Page](https://github.com/bonillajy/actions-runner-controller/releases)

For further information, please refer to the [Releases section](https://github.com/bonillajy/actions-runner-controller/releases) to find the latest updates and installation instructions.