Условные блоки с if и else
Формируйте ресурсы только при наличии соответствующей настройки
«Условные блоки с if и else» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 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) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Условные блоки с if и else»?
Формируйте ресурсы только при наличии соответствующей настройки Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Условные блоки с if и else»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Условные блоки с if и else
- Истинность и операторы в условиях
- Циклы по спискам и отображениям с range
- Ограничение области видимости блока с with