gha-scale-set-helm

GitHub Action Runner Scale Sets and Scale Set Controller

GitHub has introduced the Action Runner Scale Set Controller, a valuable addition to self-hosting GitHub Action Runners. However, it’s worth noting that this release is exclusively in the form of an OCI Helm artifact. Consequently, certain tools such as Kustomize, Jenkins-X, Spinnaker, and to some extent, ArgoCD, cannot seamlessly integrate with it. This particular project has been created to address this limitation by providing the Helm charts as conventional tarballs.

For additional insights into the GitHub Action Runner Scale Set Controller, you can refer to this link.

Details

This repository contains a GitHub Action that triggers when pull requests (PRs) are merged from the Renovate tool. The Action employs two main tools, helm/chart-releaser and containers/skopeo, to perform a sequence of tasks. It retrieves an OCI artifact, extracts a Helm Chart from it, repackages the chart, and then pushes it to GitHub Releases. This process also utilizes GitHub Pages to manage the Helm index.

The overarching objective is to ensure transparency in this procedure, thereby establishing trust that the artifacts remain unaltered. Contributions to enhance this project or the GitHub Action workflow are welcomed through issue submissions or pull requests.

Usage

# Add the Helm Registry
helm repo add danmanners https://danmanners.github.io/gha-scale-set-helm

# Update your local Helm repositories
helm repo update

# Search and list all of the helm chart versions in the danmanners Helm Registry
helm search repo danmanners -l

Example Usage with Kustomize

For examples on how to use this repo with Kustomize, see the example Kustomization file. You can test this by running the following command:

kustomize build --enable-helm \
https://github.com/danmanners/gha-scale-set-helm/kubernetes

Values Files

For details on the values for each of the Helm Chart, please refer to the official value files provided by GitHub.

How long will this be supported?

The support for this project will continue until GitHub releases the same chart as a traditional tarball. The ultimate goal is for this repository to become obsolete as GitHub makes the chart available in a manner that can be effectively utilized by tools like Kustomize, ArgoCD, Jenkins-X, Spinnaker, and similar tooling.

As of August 2023 however, that is not the case.

Questions/Concerns

Please feel free to create an issue if you have any questions or concerns.

Thanks

Thanks to the following people for helping me make this possible:

Licensing

This project is licensed as GPL-3.0.