С момента выхода Helm 3, официальный Хелм/диаграммы Репозиторий устарел в пользу Helm Hub. . Хотя он отлично подходит для децентрализации и долгосрочной устойчивости проекта, я думаю, что есть намного больше, которое потеряно. Где лучшее место, чтобы пойти на экспертные советы сейчас? Установка HELM теперь требует от вас вручную добавить каждый репозиторий, который вы используете. И сейчас есть некоторые добавленные трения для размещения ваших хелм-диаграмм.
К счастью, GitHub имеет все необходимые инструменты в форме Страницы GitHub и Действия GitHub , чтобы провести полностью автоматизированный сборщик сборки и провести репозиторий для ваших хелм-графиков. Кроме того, мы можем использовать некоторые из инструментов из сообщества, чтобы гарантировать, что наши диаграммы высокого качества.
Github Pages.
Сначала вам нужно идти вперед и создать GH-Pages
ветвь в вашем репозитории. Как я пишу это там проблема Открыть, чтобы сделать это автоматически, но делать это вручную, вы можете выполнить следующее:
git checkout --orphan gh-pages git rm -rf . git commit -m "Initial commit" --allow-empty git push
Как только вы сделали это, вам нужно включить страницы GitHub в вашем хранилище. Перейдите на страницу настроек на своем репозитории и установите источник ветви к GH-Pages
ветвь, которую вы только что создали.
Теперь вы настроили страницы GitHub, оно будет действовать как репозиторий Helm. Далее вам нужно настроить действия GitHub для публикации туда.
Действия GitHub
Вы собираетесь использовать действия GitHub для создания двух рабочих процессов: один для запросов на потяну, и один для обязывания для мастера. Ваш рабочий процесс запроса на тягу будет заниматься льминальным и тестированием таблицы с помощью коллекции автоматизированной оснастки. Хотя это не прямая замена для экспертных советов, предлагаемых сообществом HELM, лучше ничего. Ваш Master Fiving Workflow снимает спусковые графики с помощью страниц GitHub, что означает, что вам никогда не нужно делать это вручную.
Во-первых, давайте посмотрим на рабочий процесс запроса повлечения.
Потянуть запросы
Для каждого запроса на тягу в вашем репозитории графиков вы хотите запускать серию различных инструментов проверки и льминирования, чтобы уловить любые ошибки в своих хелмах. Чтобы сделать это, продолжайте и создайте рабочий процесс в своем репозитории, создав файл в .Github/Workflows/Ci.yaml
И добавьте следующий YAML к нему:
Это запускает рабочий процесс в любой запросе на тягу, который изменяет файлы в каталоге Charts.
Это скелет рабочего процесса сортируется, затем на инструменты, которые вы собираетесь использовать.
Тестирование диаграммы
Проект HELM создал тестирование диаграммы, Ака CT
, как всеобъемлющий подвижный инструмент для хелм-графиков. Чтобы использовать его в вашем запросе на рейс, вы пойдете вперед и добавьте следующее задание:
Где CT.YAML
является:
Для полного списка параметров конфигурации Просмотрите этот Пример файла Отказ
Lint
Действие для тестирования диаграммы — это немного улов — все, что помогает вам предотвратить много потенциальных ошибок или ошибок в ваших графиках. Это включает:
- Версия проверки
- Валидация схемы YAML на
Chart.yaml.
- YAML Linting на
Chart.yaml.
иValues.yaml.
- Валидация сопровождающего на измененных диаграммах
Helm-Docs.
HELM-DOCS не строго подвижный инструмент, но он гарантирует, что ваша документация оставалась актуальностью с текущим состоянием вашей графика. Это требует, чтобы вы создали Readme.md.gotmpl
В каждом репозитории диаграммы с использованием Доступные шаблоны , В противном случае это создаст Readme.md
Для вас с помощью шаблона по умолчанию.
Чтобы использовать его как часть вашего запроса на тягу, вам нужно добавить следующее задание:
Где helm-docs.sh
является:
Это запускает Helm-Docs на каждую таблицу в вашем хранилище и генерирует Readme.md
для каждого. Затем, используя Git, вы потерпите неудачу, если есть какие-либо различия. Это гарантирует, что вы не можете проверить какие-либо изменения в свои графики, не обновляя документацию.
Кубуваль
Следующий ubeval. Он подтверждает вывод из руля против схем, генерируемых из спецификации Kubernetes Openapi. Вы собираетесь добавить его в ваш запрос на тягу и использовать его для проверки нескольких разных версий Kubernetes. Добавьте следующее задание:
Где Кубеваль.ш
является:
Этот скрипт немного дольше, но если вы сломаете его пошаговый, он по существу:
- Получите список диаграмм, которые были изменены между этим PR и основным филиалом
- Установить Kubeval
- Для каждого графика:
- Создайте конфигурацию Kubernetes с помощью Helm
- Проверьте конфигурацию с помощью Kubeval
Вы делаете это для каждой версии Kubernetes, которые вы определены на работе, поэтому, если вы используете API, который не доступен во всех версиях, Kubeval не пройдет сборку. Это помогает поддерживать обратную совместимость для всех ваших графиков, и гарантирует, что вы не освобождаете изменения обломки случайно.
Это не гарантирует, что график на самом деле будет успешно установить на Kubernetes — но вот где входит Кубернаны в докере.
Кубернаны в Докере (вид)
Наконец, вы собираетесь использовать тестирование диаграммы снова, чтобы установить ваши диаграммы HELM на кластере Kubernetes, работающие в Github Actions Runner, используя Kubernetes в Docker (Rout). Как Kubeval, вы можете создавать кластеры для разных версий Кубебени.
Вроде не публикует документы Docker для каждой версии Kubernetes, поэтому вам нужно посмотреть на Docker Теги изображения Отказ Вот почему версии Kubernetes в этой работе не обязательно будут соответствовать версиях, используемыми для кубивальной работы.
Таким образом, у вас есть временные кластеры Kubernetes, установили свои диаграммы на нем и (Что вы определенно написали 🙄). Это окончательное испытание вашего элемента управления Helm и запущена его. Если это проходит, и вы объединяете ваш запрос на тягу, вы готовы выпустить!
Выпуск
Помните, что GH-Pages
ветвь, которую вы создали ранее? Теперь вы можете использовать его, чтобы опубликовать свою полностью проверенную хелм-диаграмму.
Вы собираетесь создать еще один рабочий процесс GitHub, на этот раз в .Github/Workflows/Release.yaml
. Этот будет значительно проще:
Он проверит репозиторий, устанавливает конфигурацию GIT пользователю, который выгнал на рабочий процесс и запустить диаграмму Releaser Action. Диаграмма Releaser Action упадет на карту, создать отсюда от него и обновить index.yaml
Файл в GH-Pages
филиал. Простой!
Но одна вещь, которую вы все еще должны делать, это создать секрет в вашем хранилище, CR_Token
, который содержит Github Личный токен доступа с репо
сфера. Это связано с Github Действия Bug , где страницы GitHub не развернуты при нажатии от действий GitHub.
После того, как это все настроено, в любое время изменение в каталоге диаграмм проверяется, например, из запроса на тягу, ваш рабочий процесс GitHub будет работать, и ваши диаграммы будут доступны почти мгновенно!
Следующие шаги
Отсюда вы захотите добавить свой репозиторий в Helm, чтобы вы могли использовать его и поделиться этим Helm Hub. Так что другие могут тоже. Для первого, вам нужно будет запустить:
helm repo add renovate https://.github.io/ / helm repo update
А для последнего проекта Helm написали Всестороннее руководство что я не мог, возможно, топ.
Если вы хотите увидеть все эти фигуры, работающие вместе, оформить заказ RENOVATEBOT/HELM-CHARTS Репозиторий или наша страница на Helm Hub. . И если вы хотите помочь, пожалуйста, обратитесь к мне в Twitter на @Jamie_magee Отказ
Оригинал: «https://dev.to/jamiemagee/how-to-host-your-helm-chart-repository-on-github-3kd»