Выбор ответа Senior GitOps и ArgoCD обновлено
Порядок применения ресурсов
Вопрос
Перед обновлением Deployment нужно выполнить Job с миграцией базы. Как сделать это в ArgoCD?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Пометить Job хуком PreSync или поставить ему раннюю sync-wave. ArgoCD применяет ресурсы по фазам (PreSync, Sync, PostSync) и волнам внутри фазы.
Варианты ответа
- Положить Job в файл, имя которого идёт раньше по алфавиту, чем у Deployment
- Добавить
initContainersс миграцией в под самого ArgoCD - Запускать миграцию вручную после каждой синхронизации приложения
- Пометить Job хуком PreSync или поставить ему раннюю sync-waveправильный ответ
Разбор
ArgoCD применяет ресурсы по фазам (PreSync, Sync, PostSync) и волнам внутри фазы. Job с хуком PreSync выполнится до основных ресурсов, и при его падении синхронизация остановится. Алфавитный порядок файлов ничего не гарантирует. Init-контейнеры в поде ArgoCD не имеют отношения к вашему приложению. Ручной запуск теряет смысл GitOps.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.