Вступить в клуб →
сложнаявопросCI/CD и инфраструктура как код

ArgoCD показывает Synced, но новая версия не выкатывается

CI на каждый merge в main собирает образ и пушит его как registry.internal/api:latest. В репозитории манифестов, за которым следит ArgoCD с включённой автосинхронизацией, зафиксировано:

    spec:
      containers:
        - name: api
          image: registry.internal/api:latest
          imagePullPolicy: IfNotPresent

Разработчики жалуются: изменения не приезжают в стенд. ArgoCD показывает статус Synced и Healthy, поды работают уже неделю без рестартов, в реестре при этом лежит свежий образ.

Почему GitOps-процесс не выкатывает новую версию?

  • Достаточно включить самовосстановление: без него ArgoCD не сверяет образ в реестре с запущенным и не замечает, что в registry появилась новая сборка
  • Манифест в Git не изменился, поэтому расхождения нет и перевыкатки не происходит: в манифест из пайплайна нужно проставлять уникальный тег или digest образа
  • Проблема только в политике загрузки образа: со значением `Always` kubelet будет ходить в реестр и подтянет свежую версию образа без всяких изменений в манифесте
  • Нужно включить удаление лишних ресурсов при синхронизации: без него старые поды не заменяются новыми, и ArgoCD оставляет предыдущую версию работать

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела