Chart Releaser Action para automatizar página GitHub de Charts

Esta guía describe cómo utilizar Chart Releaser Action para automatizar el releasing charts a través de las páginas GitHub. Chart Releaser Action es una GitHub Action workflow para converitrun proyecto GitHub en un repositorio de chart de Helm autoalojados, utilizando la herramienta helm/chart-releaser CLI.

Cambios en el repositorio

Crear un repositorio Git en tu organización GitHub. Puedes dar el nombre del repositorio como helm-charts, aunque también son aceptables otros nombres. Las fuentes de todos los Charts pueden colocarse en la rama main. Los charts deben colocarse en el directorio /charts en el nivel superior del árbol de directorios.

Debe haber otra rama llamada gh-pages para publicar los charts. Los cambios en esa rama serán creados automáticamente por Chart Releaser Action como se describe a continuación. Sin embargo, puede crear esa gh-branch y añadir el fichero README.md, que será visible para los usuarios que visiten la página.

Puedes añadir instrucciones en el README.md para la instalación de charts de la siguiente manera (sustituye <alias>, <orgname>, y <chart-name>):

Uso

Helm debe estar instalado para usar los charts. Por favor, consulte la documentación de Helm para emprezar.

Una vez que Helm ha sido configurado correctamente, añada el repo como sigue:

helm repo add <alias> https://<orgname>.github.io/helm-charts

Si ya ha añadido este repositorio anteriormente, ejecute helm repo update para recuperar las últimas versiones de los paquetes. A continuación, puede ejecutar helm search repo <alias> para ver los gráficos.

Para instalar el chart :

helm install my-<chart-name> <alias>/<chart-name>

Para desinstalar el chart:

helm delete my-<chart-name>

Los charts se publicarán en un sitio web con una URL como esta:

https://<orgname>.github.io/helm-charts

GitHub Actions Workflow

Crear fichero de GitHub Actions workflow en la rama main en .github/workflows/release.yml

name: Release Charts

on:
  push:
    branches:
      - main

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Configure Git
        run: |
          git config user.name "$GITHUB_ACTOR"
          git config user.email "$GITHUB_ACTOR@users.noreply.github.com"

      - name: Run chart-releaser
        uses: helm/chart-releaser-action@v1.1.0
        env:
          CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

La configuración anterior utiliza @helm/chart-releaser-action para converitr su proyecto GitHub en un repositorio de Helm chart autoalojado. Lo hace - durante cada push a main - comprobando cada chart en su proyecto, y siempre que la nueva versión de chart, crea una versión correspondiente en GitHub con el nombre de la versión del chart, añade artefactos de Helm chart al release, y crea o actualiza un fichero index.yaml con metadatos sobre esas releases, que luego se alojan en la páginas de GitHub.

El número de versión de la Chart Releaser Action utilizado en el ejemplo anterior es v1.1.0. Puedes cambiarlo por la última versión disponible.

Nota: El Chart Releaser Action se utiliza casi siempre junto con Helm Testing Action y Kind Action.