0Pricing
Helm Academy · Урок

Условные блоки с if и else

Формируйте ресурсы только при наличии соответствующей настройки

«Условные блоки с if и else» — бесплатный урок Helm Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Helm Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Helm Academy содержит 4 уроков всего.

Выполняйте рендеринг только при необходимости

Иногда ресурс должен появляться только по запросу пользователя. Helm позволяет обернуть этот YAML в условие, чтобы выводить его по требованию.

Действие if

Блок if начинается с {{ if SOMETHING }} и завершается {{ end }}. Всё между ними выводится только тогда, когда условие истинно.

{{ if .Values.ingress.enabled }}
# ingress yaml here
{{ end }}

Управление через значения

Обычно условием служит значение, заданное пользователем. Установите ingress.enabled в true в values.yaml — и обёрнутый манифест сразу появится.

ingress:
  enabled: true

Всегда закрывайте блок с помощью end

Каждый if должен иметь соответствующий {{ end }}. Если его забыть, при попытке отрендерить диаграмму Helm выдаст ошибку незавершённого блока.

Добавление else

Нужен запасной вариант? Добавьте ветвь {{ else }}. Если условие истинно, Helm выводит первый блок, а в противном случае — ветвь else.

{{ if .Values.tls }}
protocol: HTTPS
{{ else }}
protocol: HTTP
{{ end }}

Цепочка с else if

Для нескольких случаев объединяйте условия с помощью {{ else if }}. Helm проверяет их по порядку и выводит первую ветвь с истинным условием.

{{ if eq .Values.tier "gold" }}
replicas: 5
{{ else if eq .Values.tier "silver" }}
replicas: 3
{{ else }}
replicas: 1
{{ end }}

Что считается истинным

Условие if считается истинным, если значение не является пустым: false, ноль, пустая строка и пустой список в условии считаются ложными.

Защита необязательных полей

Распространённый шаблон оборачивает одно необязательное поле, а не весь ресурс. Здесь аннотация выводится только тогда, когда пользователь указал для неё значение.

{{ if .Values.email }}
contact: {{ .Values.email }}
{{ end }}

Следите за пустыми строками

Блок if оставляет пустые строки там, где раньше находилось действие. Эти пробельные символы могут нарушить YAML, поэтому скоро Вы научитесь их удалять. 🧹

Просмотрите ветви заранее

Выполните рендеринг с разными значениями и посмотрите, какая ветвь сработает. Используйте helm template с параметром --set, чтобы проверить каждое условие ещё до развёртывания.

helm template ./mychart --set ingress.enabled=true

Задайте значение по умолчанию для отсутствующего флага

Если пользователь никогда не задаёт флаг, он считается пустым, и условие if остаётся ложным. Поэтому диаграммы содержат разумное значение по умолчанию для него в values.yaml.

ingress:
  enabled: false

Быстрая проверка

Вы пишете {{ if .Values.cache }}, но диаграмма не удаётся отрендерить.

Итоги

Теперь Вы умеете управлять выводом YAML с помощью if, добавлять ветви else и else if и не забывать закрывающий {{ end }}. Условный рендеринг освоен! 🎯

Часто задаваемые вопросы

Урок «Условные блоки с if и else» бесплатный?

Да — полный текст урока «Условные блоки с if и else» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Helm Academy, подпишись на CoddyKit PRO. Курс Helm Academy содержит 4 уроков всего.

Чему я научусь в уроке «Условные блоки с if и else»?

Формируйте ресурсы только при наличии соответствующей настройки Ты практикуешь Helm Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Helm Academy?

Предыдущий опыт не требуется. Helm Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Условные блоки с if и else»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Helm Academy?

Да. Каждый урок Helm Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

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

  1. Условные блоки с if и else
  2. Истинность и операторы в условиях
  3. Циклы по спискам и отображениям с range
  4. Ограничение области видимости блока с with
← Назад к Helm Academy