fail и пользовательские проверки
Остановка рендеринга с понятными ошибками, подсказывающими дальнейшие действия
«fail и пользовательские проверки» — бесплатный урок Helm Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Helm Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Helm Academy содержит 4 уроков всего.
Проверка некорректных входных данных
Чарты должны заранее отклонять бессмысленную конфигурацию. Хороший шаблон может остановить визуализацию и точно сообщить пользователю, что пошло не так.
Остановка с помощью fail
Функция fail немедленно останавливает визуализацию шаблона и выводит переданное Вами сообщение как ошибку.
{{ fail "service.port must be set" }}Проверка с помощью if
Оберните fail в if, чтобы он срабатывал только при отсутствии или некорректности значения, не затрагивая правильные установки.
{{ if not .Values.image }}{{ fail "image is required" }}{{ end }}required для отдельных значений
Для одного обязательного значения проще использовать required: функция возвращает значение или завершается с ошибкой и Вашим сообщением, если оно пусто.
{{ required "image.tag is required" .Values.image.tag }}fail и required
Используйте required, чтобы встроенно требовать одно значение, а fail — когда проверка охватывает несколько условий или требует особой логики.
Проверка перечисления
Вы можете проверить, что значение входит в разрешённый набор, и ясно сообщить об ошибке, если пользователь выбрал неподдерживаемый вариант.
{{ if not (has .Values.tier (list "free" "pro")) }}{{ fail "tier must be free or pro" }}{{ end }}Понятные сообщения
Сформулируйте сообщение об ошибке как совет: укажите значение и способ исправления, чтобы пользователю не пришлось гадать, почему установка остановилась.
Проверка сочетаний
Некоторые правила затрагивают два поля. Проверка может завершиться с ошибкой, если включённой возможности не хватает дополнительного значения, от которого она зависит.
{{ if and .Values.tls.enabled (not .Values.tls.secret) }}{{ fail "tls.secret needed when tls.enabled" }}{{ end }}Централизация проверок
Размещение проверки в именованном шаблоне в _helpers.tpl позволяет хранить все проверки в одном месте, а не в каждом файле ресурса.
{{- include "mychart.validate" . -}}Проверка защитных условий
Запустите helm template с некорректными значениями, чтобы убедиться, что каждая проверка срабатывает с понятным сообщением, прежде чем что-либо попадёт в кластер.
Проверки схемы тоже важны
Для правил типов и диапазонов файл values.schema.json дополняет fail и отклоняет некорректные входные данные ещё до запуска любого шаблона.
Быстрая проверка
Быстрая проверка вспомогательных средств валидации.
Итоги
Вы научились заранее останавливать некорректные установки: использовать fail для пользовательских проверок с несколькими условиями, а required — для обязательных отдельных значений. 🎉
Часто задаваемые вопросы
Урок «fail и пользовательские проверки» бесплатный?
Да — полный текст урока «fail и пользовательские проверки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Helm Academy, подпишись на CoddyKit PRO. Курс Helm Academy содержит 4 уроков всего.
Чему я научусь в уроке «fail и пользовательские проверки»?
Остановка рендеринга с понятными ошибками, подсказывающими дальнейшие действия Ты практикуешь Helm Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Helm Academy?
Предыдущий опыт не требуется. Helm Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «fail и пользовательские проверки»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Helm Academy?
Да. Каждый урок Helm Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Глубокое объединение с mergeOverwrite и dict
- tpl: рендеринг строк из значений
- Циклический перебор файлов с помощью range и .Files.Glob
- fail и пользовательские проверки