Поиск по сайту:

Как использовать новый репозиторий Helm Chart от GitLab


GitLab 14.1 добавил диаграммы Helm в растущий список поддерживаемых программным обеспечением форматов репозиториев пакетов. Теперь вы можете хранить и делиться своими диаграммами с помощью проектов GitLab без отдельного реестра Helm.

Диаграммы Helm — это набор манифестов Kubernetes YAML, распространяемых в виде единого пакета. Они ускоряют и упрощают развертывание сложных приложений в вашем кластере. Использование GitLab в качестве реестра позволяет вашей команде хранить диаграммы вместе с вашим кодом в репозитории, управляемом организацией.

Использование репозитория GitLab Helm

Убедитесь, что ваш экземпляр GitLab обновлен до версии 14.1. Если вы используете размещение на GitLab.com, у вас уже есть все необходимое.

Подготовьте простую диаграмму Helm для отправки в ваш репозиторий. Запуск helm create example создаст новую стандартную диаграмму с именем example, если у вас ее нет. Сгенерированная диаграмма будет готова к отправке прямо в GitLab без каких-либо изменений.

Переключитесь на свой экземпляр GitLab. Либо создайте новый проект, либо найдите существующий. Используя левую боковую панель, перейдите к Packages & Registries > Package Registry в вашем проекте. Если вы не видите эти меню, перейдите в «Настройки»> «Основные», разверните заголовок «Видимость, функции проекта, разрешения» и включите переключатель «Пакеты».

Добавление репозитория в Helm

Теперь вы готовы начать использовать свой репозиторий пакетов. Для начала вам необходимо зарегистрировать его в клиенте Helm.

helm repo add 
    --username <username> 
    --password <token> 
    example-repo 
    https://gitlab.example.com/api/v4/projects/<project>/packages/helm/stable

Локальный репозиторий будет называться example-repo. Замените <username> своим именем пользователя GitLab. Значение <token> должно быть токеном личного доступа, у которого есть разрешение на отправку пакетов.

Вы можете сгенерировать новый токен, щелкнув значок своего профиля в правом верхнем углу интерфейса GitLab. Выберите «Настройки» в меню, затем «Токены доступа» на левой боковой панели. Добавьте новый токен доступа с областью действия api. Область write_repository может выглядеть правильно, но на самом деле не будет работать; он упрощает доступ только с помощью Git через HTTP, тогда как Helm требует интеграции API.

Замените <project> в URL вашего репозитория идентификатором проекта GitLab, в который вы хотите отправить. Вы можете найти это на его домашней странице под его названием.

Отправка в репозиторий

После добавления репозитория вы можете отправить любой каталог с действующей диаграммой Helm в свой экземпляр GitLab. Обычно проще всего установить плагин helm-push, который добавляет нативную команду helm push.

Упакуйте свою диаграмму, если вы еще этого не сделали:

helm package example-chart

Это создаст сжатый gzip-архив tar, example-chart.tgz, содержащий вашу диаграмму.

Добавьте плагин helm-push:

helm plugin install https://github.com/chartmuseum/helm-push.git

Наконец, используйте плагин, чтобы отправить диаграмму в репозиторий GitLab:

helm push example-chart.tgz example-repo

Вернувшись в веб-интерфейс GitLab, перейдите к экрану Packages & Registries > Package Registry вашего проекта. Вы должны увидеть свою диаграмму.

Щелкните имя диаграммы, чтобы просмотреть сведения о ней. Этот экран позволяет отслеживать историю графика, загружать файлы пакетов и просматривать более ранние выпуски. Вы можете удалить диаграмму с помощью кнопки «Удалить», расположенной в правом верхнем углу.

Использование диаграмм в репозитории

Имея диаграмму в своем репозитории, вы можете развернуть ее в своем кластере Kubernetes. Команды helm install должны работать сразу:

# load the contents of repositories
helm repo update

# install the chart
helm install example-repo/example-chart

Это запустит новое развертывание диаграммы в вашем активном кластере. При необходимости используйте флаги Helm --kubeconfig и --namespace, чтобы выбрать соответствующий файл конфигурации Kubernetes и указать пространство имен для развертывания.

Доступ к репозиторию GitLab в конвейере непрерывной интеграции

Как и в случае с другими форматами пакетов, репозиторий GitLab Helm имеет встроенную интеграцию с системой CI/CD программного обеспечения. Ваши пайплайны получат предустановленные переменные окружения, которые упростят процесс публикации диаграммы. Вам не нужно устанавливать какие-либо пользовательские переменные CI для настройки аутентификации.

Вот пример конвейера, который создает диаграмму и публикует ее в вашем репозитории:

stages:
  - helm-publish

helm-publish:
  stage: helm-publish
  image:
    name: alpine/helm:latest
    entrypoint: [""]
  script:
    - helm repo add --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD my-repo $CI_REGISTRY
    - helm package my-chart
    - helm push my-chart.tgz my-repo

Переменные $CI_REGISTRY настроены так, чтобы вы могли добавлять новые пакеты в реестр. Вы можете повторно использовать их при аутентификации в других репозиториях GitLab, таких как npm, Composer, NuGet и Maven.

Краткое содержание

GitLab теперь имеет интегрированный репозиторий диаграмм Helm, который позволяет хранить манифесты Kubernetes вместе с кодом. Любой, у кого есть доступ для чтения к репозиторию проекта, сможет добавить его в свой клиент Helm и развернуть диаграммы в кластерах Kubernetes.

Когда будет опубликована новая версия диаграммы, запустите Обновление репозитория Helm, а затем используйте Обновление Helm, чтобы перенести развернутые установки на новую версию. Вы можете управлять версиями диаграммы из GitLab и удалять старые версии, которые занимают место на диске.




Все права защищены. © Linux-Console.net • 2019-2024