Вес и порядок хуков
Детерминированно задавайте последовательность нескольких хуков
«Вес и порядок хуков» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Порядок имеет значение
Когда несколько хуков используют одно событие, порядок может иметь значение. Возможно, секрет должен существовать до запуска миграции. Helm упорядочивает хуки с помощью веса.
Аннотация веса
Порядок выполнения задаётся аннотацией helm.sh/hook-weight. Её значение представляет собой строку с числом, которое Helm использует для сортировки хуков одного и того же события.
"helm.sh/hook-weight": "5"Сначала выполняется меньший вес
Helm сортирует веса в порядке возрастания, поэтому первым выполняется наименьшее число. Хук с весом -5 срабатывает раньше хука с весом 0, а тот — раньше хука с весом 10.
Допустимы отрицательные значения
Вес может быть отрицательным. Укажите для хука настройки значение вроде минус пять, если хотите, чтобы он выполнился раньше всего, что использует вес по умолчанию — ноль.
"helm.sh/hook-weight": "-5"Заключайте число в кавычки
Значение веса должно быть строкой в кавычках, даже если оно представляет число. Запишите "10" в кавычках, а не просто 10, иначе аннотация будет недействительной.
annotations:
"helm.sh/hook-weight": "10"Значение по умолчанию — ноль
Хук без аннотации веса считается имеющим вес ноль. Поэтому ноль удобно использовать как базовое значение, относительно которого можно запланировать другие хуки до или после него.
Сначала группируются события
Веса упорядочиваются только в пределах одного и того же события. Хук предварительной установки никогда не перемешивается с хуком после установки: сначала выполняются все хуки предварительной установки, а затем происходят последующие события.
При равенстве сортировка идёт по имени
Если два хука имеют одинаковый вес, Helm сортирует их по имени ресурса в алфавитном порядке. Если порядок действительно важен, лучше использовать разные веса.
Каждый вес должен завершиться
Helm выполняет хуки по весам и ждёт готовности каждого из них перед переходом к следующему. Поэтому хук настройки полностью завершается до начала миграции, которую он подготавливает. ⏳
Практическая пара
Представьте хук создания секрета с весом -5 и хук миграции с весом 0. Helm гарантирует, что секрет будет создан первым, поэтому миграция сможет его прочитать.
# secret hook
"helm.sh/hook-weight": "-5"
# migration hook
"helm.sh/hook-weight": "0"Оставляйте промежутки между весами
Оставляйте промежутки между весами — например, используйте 10, 20, 30 вместо 1, 2, 3. Позже вы сможете вставить новый хук между ними, не перенумеровывая остальные. 📐
Быстрая проверка
У двух хуков предварительной установки веса -5 и 10. Вам нужно определить, какой из них выполнится первым.
Повторение
Аннотация hook-weight, содержащая число в кавычках, упорядочивает хуки одного события от наименьшего веса к наибольшему. Значение по умолчанию — ноль, а при равенстве порядок определяется именем. 🔢
Часто задаваемые вопросы
Урок «Вес и порядок хуков» бесплатный?
Да — полный текст урока «Вес и порядок хуков» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Вес и порядок хуков»?
Детерминированно задавайте последовательность нескольких хуков Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Вес и порядок хуков»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что такое хуки и когда они запускаются
- Задание миграции DB перед обновлением
- Вес и порядок хуков
- Политики удаления хуков