Почему ArgoCD стал единственным источником истины в нашей инфраструктуре


Когда кластеров несколько, а деплоят в них по SSH и kubectl apply из головы, рано или поздно наступает момент, когда «кто-то что-то накатил» — и никто не может сказать что именно. В этой статье расскажу, как мы пришли к ArgoCD и почему он стал единственным источником истины для всех Kubernetes-сред.

Проблема

До GitOps деплой выглядел так: инженер выполняет команды на сервере, правки применяются точечно, манифесты живут в репозиториях у каждого в голове. Любой инцидент превращался в расследование «кто и что менял». Дрейф конфигурации между кластерами был нормой, а не исключением.

Решение: GitOps на ArgoCD

Мы внедрили ArgoCD как единую точку управления: все манифесты хранятся в git-репозиториях, кластеры синхронизируются из них автоматически. Откат — это просто git revert и sync.

argocd app sync production
argocd app diff production --revision v1.2.3

Подготовка кластера

Чтобы новый кластер поднимался быстро, я написал кастомные Ansible-роли для post-setup:

  • Настройка Docker insecure registry для внутренних образов;
  • Установка и конфигурация containerd;
  • Автоматическая регистрация GitLab Runner;
  • Установка ArgoCD и начальных application-манифестов.

Благодаря этому развёртывание нового окружения сократилось с нескольких дней до часов.

Итог

ArgoCD стал единственным источником истины. Мы получили воспроизводимые среды, быстрые откаты и прозрачность: любое изменение можно отследить по коммиту. GitOps — это не просто инструмент, это дисциплина, которая окупается при каждом инциденте.