Создание и публикация собственных Helm-чартов
Пройдите путь от пользователя чарта до его автора: создайте заготовку чарта, сформируйте манифесты с помощью значений, упакуйте его и опубликуйте в репозитории.
«Создание и публикация собственных Helm-чартов» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
От потребителя к автору
Вы уже развёртывали и настраивали готовые диаграммы. Теперь Вы создадите собственную, упакуете приложение и позволите другим устанавливать его одной командой.
Создание каркаса диаграммы
helm create создаёт каркас диаграммы с разумными значениями по умолчанию, которые можно изменить.
helm create mychart
# creates mychart/ with Chart.yaml, values.yaml, templates/Chart.yaml: метаданные
Chart.yaml описывает диаграмму: её имя, версию и версию приложения, которое она разворачивает.
apiVersion: v2
name: mychart
description: A web app chart
type: application
version: 0.1.0
appVersion: '1.0.0'Шаблоны и механизм шаблонизации Go
Файлы в templates/ являются манифестами Kubernetes с заполнителями. Helm подставляет значения с помощью синтаксиса шаблонов Go с двойными фигурными скобками.
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-web
spec:
replicas: {{ .Values.replicaCount }}
template:
spec:
containers:
- name: web
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}values.yaml: значения по умолчанию
values.yaml содержит конфигурацию по умолчанию, на которую шаблоны ссылаются через .Values. Пользователи переопределяют эти значения во время установки.
replicaCount: 2
image:
repository: myapp
tag: '1.0.0'Вспомогательные шаблоны в _helpers.tpl
Повторно используемые фрагменты хранятся в _helpers.tpl как именованные шаблоны, благодаря чему манифесты остаются DRY для таких элементов, как метки и имена.
{{- define "mychart.labels" -}}
app.kubernetes.io/name: {{ .Chart.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}Проверка и рендеринг
Перед установкой проверьте диаграмму и просмотрите отрендеренные манифесты, не изменяя кластер.
helm lint mychart
helm template mychart --set replicaCount=3Установка собственной диаграммы
Установите диаграмму непосредственно из локального каталога, чтобы протестировать её от начала до конца.
helm install demo ./mychart --set image.tag=2.0.0
helm listУпаковка
helm package упаковывает диаграмму в архив .tgz с номером версии, готовый к распространению.
helm package mychart
# produces mychart-0.1.0.tgzПубликация в репозитории
Диаграммы можно размещать в репозитории HTTP или, что становится всё более распространённым, в виде артефактов OCI в реестре контейнеров.
helm push mychart-0.1.0.tgz oci://registry.example.com/charts
helm install demo oci://registry.example.com/charts/mychart --version 0.1.0Дисциплина версионирования
- Увеличивайте
versionпри любом изменении диаграммы - Увеличивайте
appVersion, когда изменяется упакованное приложение - Следуйте семантическому версионированию, чтобы пользователи понимали, чего ожидать
Быстрая проверка
Проверьте свои знания о создании диаграмм.
Итоги
Вы научились создавать диаграммы: формировать каркас с помощью helm create, описывать метаданные в Chart.yaml, создавать шаблоны манифестов с помощью .Values и вспомогательных шаблонов, выполнять проверку и рендеринг, а затем упаковывать и публиковать диаграммы, в том числе в реестрах OCI. Дисциплинированное версионирование защищает пользователей.
Часто задаваемые вопросы
Урок «Создание и публикация собственных Helm-чартов» бесплатный?
Да — полный текст урока «Создание и публикация собственных Helm-чартов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Создание и публикация собственных Helm-чартов»?
Пройдите путь от пользователя чарта до его автора: создайте заготовку чарта, сформируйте манифесты с помощью значений, упакуйте его и опубликуйте в репозитории. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Создание и публикация собственных Helm-чартов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Введение в чарты Helm
- Развёртывание приложений с помощью Helm
- Настройка и управление релизами
- Создание и публикация собственных Helm-чартов