Выбор ответа Senior GitOps и ArgoCD обновлено

Порядок применения ресурсов

Вопрос

Перед обновлением Deployment нужно выполнить Job с миграцией базы. Как сделать это в ArgoCD?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Пометить Job хуком PreSync или поставить ему раннюю sync-wave. ArgoCD применяет ресурсы по фазам (PreSync, Sync, PostSync) и волнам внутри фазы.

Варианты ответа

  1. Положить Job в файл, имя которого идёт раньше по алфавиту, чем у Deployment
  2. Добавить initContainers с миграцией в под самого ArgoCD
  3. Запускать миграцию вручную после каждой синхронизации приложения
  4. Пометить Job хуком PreSync или поставить ему раннюю sync-waveправильный ответ

Разбор

ArgoCD применяет ресурсы по фазам (PreSync, Sync, PostSync) и волнам внутри фазы. Job с хуком PreSync выполнится до основных ресурсов, и при его падении синхронизация остановится. Алфавитный порядок файлов ничего не гарантирует. Init-контейнеры в поде ArgoCD не имеют отношения к вашему приложению. Ручной запуск теряет смысл GitOps.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.