0Pricing
DevOps Bootcamp · Урок

Создание и публикация собственных 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 — локальная установка не требуется.

Все уроки этого курса

  1. Введение в чарты Helm
  2. Развёртывание приложений с помощью Helm
  3. Настройка и управление релизами
  4. Создание и публикация собственных Helm-чартов
← Назад к DevOps Bootcamp