Перейти к основному содержимому
Версия: 3.19.0

Chart Releaser Action для автоматизации публикации чартов на GitHub Pages

Это руководство описывает, как использовать Chart Releaser Action для автоматической публикации чартов через GitHub Pages. Chart Releaser Action — это GitHub Action, который превращает проект GitHub в собственный репозиторий Helm-чартов с помощью CLI-инструмента helm/chart-releaser.

Изменения в репозитории

Создайте Git-репозиторий в вашей организации GitHub. Вы можете назвать репозиторий helm-charts, хотя допустимы и другие имена. Исходные файлы всех чартов можно разместить в ветке main. Чарты должны находиться в каталоге /charts в корне дерева каталогов.

Также необходима отдельная ветка gh-pages для публикации чартов. Изменения в этой ветке будут автоматически создаваться Chart Releaser Action, описанным здесь. Однако вы можете создать ветку gh-pages и добавить файл README.md, который будет виден пользователям, посещающим страницу.

Вы можете добавить инструкции по установке чартов в README.md следующим образом (замените <alias>, <orgname> и <chart-name>):

## Usage

[Helm](https://helm.sh) must be installed to use the charts. Please refer to
Helm's [documentation](https://helm.sh/docs) to get started.

Once Helm has been set up correctly, add the repo as follows:

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

If you had already added this repo earlier, run `helm repo update` to retrieve
the latest versions of the packages. You can then run `helm search repo
<alias>` to see the charts.

To install the <chart-name> chart:

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

To uninstall the chart:

helm uninstall my-<chart-name>

Чарты будут опубликованы на сайте с URL вида:

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

Рабочий процесс GitHub Actions

Создайте файл рабочего процесса GitHub Actions в ветке main по пути .github/workflows/release.yml

name: Release Charts

on:
push:
branches:
- main

jobs:
release:
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
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.6.0
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

Эта конфигурация использует @helm/chart-releaser-action, чтобы превратить ваш проект GitHub в собственный репозиторий Helm-чартов. При каждом push в ветку main он проверяет все чарты в проекте и при обнаружении новой версии чарта выполняет следующие действия:

  • Создаёт GitHub-релиз с именем, соответствующим версии чарта
  • Добавляет артефакты Helm-чарта к релизу
  • Создаёт или обновляет файл index.yaml с метаданными об этих релизах

Файл index.yaml затем размещается на GitHub Pages.

В примере выше используется Chart Releaser Action версии v1.6.0. Вы можете заменить её на последнюю доступную версию.

Примечание: Chart Releaser Action почти всегда используется совместно с Helm Testing Action и Kind Action.