Суть
GitOps-оператор для Kubernetes, который автоматически синхронизирует кластер с git.
Каждая ручная команда kubectl apply в продакшене — это риск неконсистентного состояния и хаоса при откате. ArgoCD решает эту проблему, внедряя строгий GitOps-подход: любое изменение инфраструктуры начинается с коммита в git, а не с доступа к кластеру. Это делает деплой воспроизводимым и безопасным. По данным SkillStat, в московском IT-срезе открыто 126 вакансий, где ArgoCD — один из ключевых требуемых навыков.
ArgoCD — это не просто ещё один CD-инструмент, а эталон реализации GitOps для Kubernetes. Его ключевая ценность в том, что он превращает git-репозиторий в единственный источник истины о состоянии кластера, автоматически синхронизируя реальность с желаемой конфигурацией.
В современной экосистеме, где конфигурация отделена от кода приложения, ArgoCD становится мостом между разработчиком, который описал манифесты, и кластером, который их исполняет. Инструмент быстро эволюционировал от простого контроллера синхронизации до платформы с визуальным веб-интерфейсом, управлением жизненным циклом приложений на нескольких кластерах и интеграциями с секрет-менеджерами.
Это навык, который прямо коррелирует с переходом специалиста от ad-hoc операций к построению надежных платформ.
Для этого навыка доступны ограниченные данные (менее 50 вакансий или нет зарплатных данных). Аналитика носит ориентировочный характер.
GitOps-оператор для Kubernetes, который автоматически синхронизирует кластер с git.
DevOps, Platform Engineer, Backend-разработчикам, работающим с K8s.
ApplicationSet, pull-модель, Sync Waves, развитый Web UI.
Представьте, что у вас есть квартира, и вы составили подробную инструкцию: «На кухне — белые стулья, в спальне — синие шторы, температура — 22 градуса». ArgoCD — это робот-домоуправитель, который каждую минуту проверяет, всё ли в квартире соответствует инструкции. Если кто-то передвинул стул или выключил кондиционер, робот возвращает всё как было. Если вы захотели изменить инструкцию — просто правите текстовый файл, и робот сам переставит мебель. Технически ArgoCD — это контроллер, который живет внутри Kubernetes-кластера. Он подписан на изменения в git-репозитории с манифестами (YAML-файлы, описывающие инфраструктуру). Как только вы делаете commit и push, ArgoCD автоматически применяет эти изменения к кластеру. Но главная фишка — обратная синхронизация: если кто-то вручную изменил что-то в кластере через kubectl, ArgoCD заметит расхождение и вернет кластер в состояние, описанное в git.
Архитектура ArgoCD строится вокруг ключевого принципа — pull-модель деплоя. В отличие от Jenkins или GitLab CI, которые «пушат» изменения в кластер (push-модель), ArgoCD работает иначе: 1. Контроллер ArgoCD разворачивается в кластере как набор pod'ов (application-controller, api-server, repo-server, redis). 2. Repo-server постоянно опрашивает git-репозиторий (или получает webhook-уведомления) на предмет изменений. 3. Application-controller сравнивает желаемое состояние (то, что в git) с текущим состоянием кластера (то, что реально запущено). 4. Если есть расхождение, контроллер генерирует diff и применяет изменения через Kubernetes API. 5. Web UI и CLI позволяют отслеживать статус, смотреть diff, запускать ручную синхронизацию и откаты. Ключевой механизм — Sync Waves и Hooks. ArgoCD поддерживает поэтапное развертывание: сначала применяются Namespace, затем CRD (Custom Resource Definitions), потом Deployment — и только после успешного прохождения health-check запускаются следующие этапы.
ArgoCD — не CI-инструмент. Он не собирает Docker-образы, не запускает тесты и не анализирует код. Его задача — только доставка готовых артефактов в кластер. ArgoCD — не замена Helm. Хотя ArgoCD умеет работать с Helm-чартами, это разные уровни абстракции. Helm — это шаблонизатор и пакетный менеджер для Kubernetes. ArgoCD — это GitOps-оператор, который использует Helm как один из способов генерации манифестов. ArgoCD — не панацея от плохих процессов. Если ваша команда не умеет описывать инфраструктуру кодом (IaC), если нет четкого code review и тестирования манифестов, ArgoCD не исправит хаос — он лишь сделает его автоматизированным.
Argo CD проще всего понимать через один путь: репозиторий с манифестами, объект application, желаемое состояние, sync и фактическое состояние в Kubernetes. На этом пути быстро видно, что инструмент отвечает не за сборку, а за управляемую доставку уже подготовленной конфигурации.
Git хранит желаемое состояние
В репозитории лежат манифесты или шаблоны, которые описывают, каким должно быть приложение в среде.
Argo CD читает application и сравнивает состояния
Инструмент смотрит на Git и на кластер одновременно, чтобы увидеть, совпадают ли ожидание и факт.
Sync приводит среду к нужной конфигурации
После синхронизации кластер получает состояние, которое команда зафиксировала как правильное в репозитории.
Drift показывает расхождения
Если кто-то или что-то изменило среду вручную, команда быстрее видит проблему и может вернуть порядок.
ArgoCD переносится между ролями: DevOps-инженер, SRE-инженер, Platform Engineer. В одном треке этот навык может быть основным рабочим инструментом, а в другом - сильным прикладным усилителем основной специализации.
DevOps-инженер — самый заметный профиль в распределении ролей по навыку.
Ещё 7 ролей используют ArgoCD
Текущий срез показывает активные вакансии сейчас. Распределение по ролям рассчитано по расширенной исторической выборке, поэтому значения могут быть выше текущего количества активных вакансий.
ArgoCD ценен не абстрактным знанием инструмента, а повторяющимися рабочими задачами — ниже они разобраны так, как встречаются в реальной работе.
Установить ArgoCD
Создать namespace argocd, применить install.yaml.
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml Получить пароль admin
Извлеките пароль из secret argocd-initial-admin-secret.
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d Залогиниться в CLI
Подключитесь к ArgoCD-серверу через CLI.
argocd login localhost:8080 --username admin --password <password> --insecure Создать Application
Создайте приложение из публичного репозитория.
argocd app create guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default Синхронизировать приложение
Запустите синхронизацию вручную.
argocd app sync guestbook Откатить деплой
Откатите приложение к предыдущей версии.
argocd app rollback guestbook --id 1 Ручные изменения в кластере через kubectl приводят к расхождению. Решение: включить selfHeal или использовать syncPolicy.
Ошибки в YAML-манифестах приводят к сбою синхронизации. Решение: проверять YAML перед коммитом через линтеры.
Неправильные SSH-ключи или токены блокируют доступ к git. Решение: проверить доступ через ArgoCD UI в разделе Repositories.
Превышение лимитов ресурсов в namespace. Решение: настроить resource quotas и requests/limits в манифестах.
Одновременная синхронизация нескольких приложений может вызвать конфликты. Решение: использовать syncWindows.
ArgoCD востребован в компаниях, переходящих на GitOps. Инструмент стал стандартом для управления Kubernetes. По данным SkillStat, 126 вакансий требуют этот навык. Рост спроса связан с переходом от ручных деплоев к автоматизированным платформам.
ArgoCD востребован там, где инструмент реально ускоряет повторяемые задачи команды, а не существует отдельной теорией.
Спрос держится дольше, когда навык нужен не эпизодически, а как часть ежедневного цикла разработки, проверки или доставки.
ArgoCD чаще ищут там, где процесс уже стандартизирован и без этого инструмента команда теряет скорость и предсказуемость.
ArgoCD формирует устойчивый спрос внутри своего рабочего сегмента.
ArgoCD сохраняет устойчивый прикладной спрос на рынке: 126 активных вакансий, #114 по рынку, 1.8% IT-вакансий. Ниже показано число открытых вакансий на конец каждого месяца: это исторический ряд по состоянию на конец месяца, а не текущий срез рынка на сегодня.
#114 по рынку • 1.8% IT-вакансий
-4 вакансий и -3% к предыдущему месяцу.
ArgoCD редко живёт изолированно: чаще всего рынок видит его рядом с Kubernetes, CI/CD, Linux. Самая плотная связка сейчас - Kubernetes: оба навыка встречаются вместе в 98% вакансий.
Главная связка: Kubernetes • 98% вакансий. Показываем общерыночные связки ArgoCD: не junior-минимум из блока выше, а навыки, которые чаще всего встречаются рядом с ним в одной вакансии.
навыки, которые рынок чаще всего видит рядом в одной вакансии
Сейчас на рынке 5 активных junior-вакансий с ArgoCD. Это 4.8% всех вакансий по навыку, поэтому для старта важнее всего смотреть на реальный объём junior-окна и на стек, который рынок ждёт рядом.
4.8% всех вакансий по навыку • Senior / Junior 10.3x
Окно входа узкое: рынок чаще нанимает с опытом.
Медианная вакансия с ArgoCD ожидает около 21 навыков в стеке. Это широкий стартовый набор: рынок обычно ищет не один изолированный инструмент, а рабочую комбинацию соседних навыков.
Владение ArgoCD означает разный уровень ответственности и задач в зависимости от роли. Вот что показывать в резюме для каждой позиции:
Решение зависит от зрелости Kubernetes-среды, количества сервисов и того, насколько команде нужен именно GitOps-подход с прозрачным желаемое состояние.
GitOps-инструмент для управления состоянием приложений в Kubernetes через Git как источник правды.
Подходит там, где команда уже ведёт приложения через репозиторий и хочет видеть drift, sync и историю конфигурации прозрачно.
Не заменяет сборку, тесты и другие части CI, а живёт рядом с ними.
Конвейерные системы для сборки, тестов и служебной автоматизации.
Нужны там, где важно собрать образ, прогнать проверки и выполнить шаги до появления готового релизного артефакта.
Сами по себе не решают задачу постоянного контроля желаемое состояние в кластере.
Инструмент шаблонизации и упаковки Kubernetes-манифестов.
Полезен, если конфигурацию нужно параметризовать и повторно использовать.
Не заменяет GitOps-синхронизацию и контроль drift, а скорее поставляет форму конфигурации для неё.
Самый прямой способ применить изменение в кластер.
Уместен только в очень простых или учебных сценариях, где командная дисциплина и повторяемость пока не критичны.
Быстро становится источником хаоса, если сервисов и изменений много.
ArgoCD применяется в различных сценариях, от управления микросервисами до развертывания тестовых окружений. Вот ключевые варианты использования:
Управление сотнями микросервисов в нескольких кластерах через ApplicationSet с Git Generator.
Разработчик описывает манифесты в git, ArgoCD автоматически применяет их на dev-окружении.
Развертывание и обновление service mesh, ingress-контроллеров, систем мониторинга и логгирования.
Создание изолированных окружений на каждый pull request через Pull Request Generator.
ArgoCD заметен в 3 направлениях рынка с долей выше 5%.
Рынок ценит не слово GitOps, а способность использовать его так, чтобы выкат и конфигурация были прозрачны для всей команды.
Ясно видеть, какое состояние считается правильным и как оно описано в Git.
Не путать сборку и тесты с управлением тем, что реально должно жить в кластере после выкатки.
Понимать, что именно расходится и почему простое нажатие кнопки sync не всегда решает корневую проблему.
Строить схему, в которой рост инфраструктуры не превращает GitOps в хаотичный набор исключений.
Чаще всего путаница начинается потому, что читатель сравнивает инструменты с разными ролями в цепочке поставки. Их нужно разводить по месту в процессе.
Управляет желаемым состоянием приложения в Kubernetes и синхронизирует его с Git-репозиторием.
Чаще отвечает за конвейер сборки, тестов и служебных шагов, которые происходят до фактического управления состоянием кластера.
Помогает шаблонизировать и упаковывать Kubernetes-манифесты, но сам по себе не решает всю задачу GitOps-синхронизации.
Даёт конвейерный слой для автоматизационных задач, но роль управления желаемое состояние в кластере у него не такая же, как у Argo CD.
В реальной среде Argo CD почти всегда связан с Git-репозиторием, Kubernetes-кластером, Helm-шаблонами, образами и общим релизным процессом.
Именно здесь живёт желаемая конфигурация, без которой GitOps-подход теряет основу.
Argo CD постоянно сравнивает ожидание из Git с фактическим состоянием среды и опирается на поведение кластера.
Они помогают сформировать конфигурацию приложения, которую потом нужно синхронизировать и сопровождать.
Хотя Argo CD не собирает артефакты сам, он живёт рядом с конвейером, который готовит версии для дальнейшего выката.
Для быстрого знакомства с ArgoCD можно развернуть его локально в Kubernetes-кластере с помощью Kind. Это не production-конфигурация, но позволяет изучить интерфейс и базовые операции.
Kind (Kubernetes in Docker) создает локальный кластер для тестирования ArgoCD. Можно использовать Minikube или Docker Desktop.
ArgoCD устанавливается в отдельный namespace `argocd`, что упрощает управление и очистку.
ArgoCD устанавливается через `kubectl apply` манифеста install.yaml, который включает api-server, controller, repo-server.
Сервер ArgoCD предоставляет Web UI и gRPC на одном порту 443 (внутри контейнера — 8080, мультиплексируются по content-type). Для локального доступа используется port-forward.
Пароль хранится в secret `argocd-initial-admin-secret` в namespace argocd. Его можно получить через kubectl.
Создать Application с репозиторием, путем и namespace. ArgoCD автоматически синхронизирует кластер с git.
Использовать SSO (OIDC/Dex), настроить TLS, включить audit logging. Для production не использовать --insecure.
Не создавать Application вручную — используйте ApplicationSet с Git Generator. Это автоматизирует управление приложениями для разных окружений и кластеров.
Настройте syncPolicy с `prune: true` и `selfHeal: true`. Prune удаляет лишние ресурсы, selfHeal восстанавливает состояние после ручных изменений.
Настройте syncWindows для prod-кластера, чтобы деплоить только в рабочее время. Избегайте случайных деплоев в нерабочее время.
Не храните секреты в манифестах. Используйте External Secrets Operator или Sealed Secrets, чтобы синхронизировать секреты из Vault или облачных провайдеров.
Ограничьте доступ к кластерам и namespace через Project. Используйте SSO (OIDC/Dex) и настройте `argocd-rbac-cm` для разграничения прав.
Настройте порядок применения ресурсов через Sync Waves. Используйте Hooks для миграций БД и проверок перед деплоем.
Экспортируйте метрики ArgoCD в Prometheus. Настройте дашборды в Grafana и алерты на OutOfSync, Degraded, Sync Failure.
Следите за релизами ArgoCD и обновляйте его. Устаревшая версия может содержать уязвимости и не иметь новых функций.
Не используйте локальных пользователей. Настройте OIDC/Dex и RBAC через `argocd-rbac-cm`. Это позволит централизованно управлять доступом.
Создайте отдельных пользователей с минимально необходимыми правами. Admin-аккаунт используйте только для первоначальной настройки.
Используйте Project Roles, чтобы ограничить, какие команды имеют доступ к prod-кластерам. Запретите прямой доступ к кластеру без ArgoCD.
Не копируйте пароли и токены в манифесты. Используйте External Secrets Operator, Sealed Secrets или ArgoCD Vault Plugin.
Настройте audit logging для API-сервера ArgoCD. Это позволит отслеживать, кто и когда выполнял операции.
Настройте TLS для ArgoCD-сервера. Используйте сертификаты от Let's Encrypt или внутреннего CA.
Ограничьте сетевой доступ к компонентам ArgoCD. Repo-server должен иметь доступ только к git-репозиториям и API-серверу.
Устаревшие версии ArgoCD могут содержать уязвимости. Следите за CVE и обновляйте инструмент.
Параметр `--insecure` отключает проверку сертификата. Используйте только для локального тестирования.
Перспективы ArgoCD завязаны не только на текущем спросе, но и на том, как навык встраивается в новые платформы, инструменты и рабочие контуры.
Развитие ApplicationSet упростит управление сотнями кластеров. Появятся новые генераторы и улучшится производительность.
ArgoCD будет глубже интегрироваться с облачными и managed-решениями (EKS, GKE, AKS), упрощая мультиоблачные деплои.
Появятся встроенные инструменты для сканирования секретов и уязвимостей, улучшится audit logging и compliance-отчеты.
Настройте Application с автосинхронизацией для одного микросервиса. Добейтесь, чтобы изменения в git автоматически применялись в кластере.
Создайте ApplicationSet с Git Generator, который разворачивает приложение в dev и staging кластеры. Проверьте, что при изменении структуры папок создаются новые Application.
Настройте ApplicationSet с Pull Request Generator. Убедитесь, что при создании PR создается временное окружение, а при мерже — удаляется.
Разверните ArgoCD с SSO (Dex/GitHub OAuth), настройте Project Roles и RBAC. Интегрируйте с External Secrets Operator для управления секретами.
Изучение ArgoCD — это путь от понимания основ GitOps до настройки production-кластеров. Начните с теории, затем переходите к практическим задачам.
Понять Kubernetes и GitOps
Освоить основы K8s (Pod, Deployment, Service) и принципы GitOps: git как единственный источник истины, pull-модель.
Развернуть ArgoCD локально
Установить ArgoCD в Kind/Minikube. Освоить CLI: login, app create, sync, rollback. Разобраться с UI.
Настроить ApplicationSet
Изучить генераторы: Git, List, Cluster. Создать мультикластерное приложение. Настроить syncPolicy.
Production и безопасность
Настроить SSO, RBAC, Project Roles. Интегрировать с External Secrets. Включить audit logging.
Прямых курсов по ArgoCD пока нет — показываем смежные: Kubernetes, CI/CD, Linux
Соответствие — доля тем навыка, которые охватывает программа курса
Профессии, где нужен ArgoCD:
Начать лучше с одного приложения в Kubernetes: репозиторий с манифестами, объект application, первый sync и специально созданное расхождение между Git и кластером. Такой путь быстрее всего показывает роль Argo CD и не даёт спутать его с обычным инструментом конвейера. После этого уже легче разбирать Helm, несколько окружений и более сложный GitOps-процесс без иллюзии, что достаточно просто нажать кнопку deploy. Ещё полезно руками увидеть один drift и один откат, чтобы схема перестала быть абстрактной. Тогда разница между GitOps и обычным ручным деплоем становится ощутимой даже на одном сервисе.
Зафиксировать в Git то состояние приложения, которое команда считает правильным и воспроизводимым.
Связать репозиторий и кластер так, чтобы стало видно, как инструмент читает желаемое состояние.
Увидеть, как конфигурация доходит до кластера и чем фактическое состояние отличается от ожидаемого.
Проверить, как система показывает расхождение и почему Git как источник правды важен в ежедневной работе.
ArgoCD — это GitOps-оператор для Kubernetes, который автоматически синхронизирует состояние кластера с конфигурацией в git-репозитории. Если вы изменили YAML-файлы в git, ArgoCD сам применит эти изменения к кластеру. Если кто-то вручную изменил что-то в кластере, ArgoCD вернет всё обратно к состоянию из git.
Jenkins — это CI-инструмент для сборки и тестирования кода. ArgoCD — это CD-инструмент для доставки готовых артефактов в Kubernetes. Jenkins использует push-модель (сам подключается к кластеру и применяет изменения), а ArgoCD — pull-модель (контроллер внутри кластера сам забирает изменения из git). ArgoCD не заменяет Jenkins, а дополняет его.
ArgoCD реализует GitOps через три ключевых принципа: единственный источник истины — git-репозиторий содержит желаемое состояние кластера; pull-модель — ArgoCD сам забирает изменения из git, а не получает команды извне; автоматическая синхронизация — при расхождении между git и кластером ArgoCD автоматически приводит кластер к состоянию из git.
ArgoCD поддерживает любые Kubernetes-ресурсы, которые можно описать YAML-манифестами. Он умеет работать с сырыми YAML-файлами, Helm-чартами, Kustomize-оверлеями, Jsonnet и кастомными форматами через Config Management Plugins.
В pull-модели ArgoCD работает как контроллер внутри кластера. Он постоянно опрашивает git-репозиторий на предмет изменений. Когда в git появляется новый коммит, ArgoCD: скачивает манифесты из репозитория, сравнивает их с текущим состоянием кластера, применяет изменения через Kubernetes API и отслеживает статус развертывания.
Основные отличия: у ArgoCD развитый визуальный интерфейс, у Flux — базовый (через Weave GitOps); у ArgoCD есть мощный генератор приложений ApplicationSet, у Flux — аналог через Kustomization; ArgoCD сложнее в настройке, но дает больше контроля; оба инструмента в CNCF, но ArgoCD популярнее.
Автосинхронизация настраивается через syncPolicy в манифесте Application. Основные параметры: prune: true удаляет ресурсы, которых нет в git; selfHeal: true автоматически исправляет ручные изменения в кластере. Дополнительно можно настроить syncOptions, например Validate и ServerSideApply.
ArgoCD не хранит секреты напрямую. Для управления секретами используются: Sealed Secrets — шифрование секретов в git; External Secrets Operator — синхронизация секретов из Vault, AWS Secrets Manager, GCP Secret Manager; SOPS — шифрование отдельных полей в YAML-файлах; ArgoCD Vault Plugin — интеграция с HashiCorp Vault.
Используйте SSO (OIDC, Dex) вместо локальных пользователей; настройте RBAC через argocd-rbac-cm; ограничьте доступ к проектам через Project Roles; используйте private репозитории с SSH-ключами; включите audit logging; настройте network policies для компонентов ArgoCD; регулярно обновляйте ArgoCD до последней версии.
Откат в ArgoCD выполняется через Web UI: выбрать приложение → History → Rollback; через CLI: argocd app rollback <app-name> --id <revision-id>; или через git revert: откатить коммит в git, ArgoCD автоматически синхронизирует. ArgoCD хранит историю синхронизаций, что позволяет откатиться к любой предыдущей версии.
Да, ArgoCD поддерживает управление несколькими Kubernetes-кластерами из одного экземпляра. Кластеры добавляются через argocd cluster add или через UI. ApplicationSet позволяет создавать приложения для всех кластеров автоматически.
ArgoCD нативно поддерживает Helm и Kustomize: для Helm указываете repo URL и путь к чарту, ArgoCD сам выполняет helm template; для Kustomize указываете путь к kustomization.yaml, ArgoCD применяет оверлеи. Можно комбинировать: Helm-чарт с Kustomize-патчами.
Мониторинг ArgoCD включает метрики Prometheus (количество приложений, статусы синхронизации, latency), Grafana дашборды для визуализации, алерты на OutOfSync, Degraded, Sync Failure, а также встроенную систему уведомлений (Slack, Email, Webhook).
OutOfSync после ручных изменений — отключить selfHeal или настроить syncPolicy правильно; Sync Failure из-за невалидных манифестов — проверять YAML перед коммитом; проблемы с доступом к репозиторию — проверить SSH-ключи или токены; Resource quota exceeded — настроить лимиты для namespace; конфликты при параллельной синхронизации — использовать syncWindows.
ArgoCD — один из самых востребованных навыков для DevOps-инженеров. Средняя зарплата специалиста с опытом работы с ArgoCD в Москве — медиана —. Для начала изучения: освоить основы Kubernetes, изучить GitOps-концепцию, развернуть ArgoCD локально, пройти официальные туториалы, создать pet-проект.
ArgoCD избыточен когда: у вас 1-2 микросервиса без Kubernetes; команда не использует GitOps-практики; проект на стадии MVP с частыми изменениями; нет выделенного DevOps-инженера для поддержки; используются managed-решения (Google Cloud Run, AWS App Runner).
Spinnaker — это push-based CD с развитым pipeline-моделированием (canary, blue-green), но сложной настройкой. ArgoCD — pull-based GitOps, проще в настройке, но с менее гибкими pipeline-стратегиями. Spinnaker лучше подходит для сложных deployment-стратегий, ArgoCD — для GitOps-подхода.
Project — это логическая группа приложений с политиками доступа. Создается через argocd proj create или через манифест AppProject. Позволяет ограничить, какие репозитории, кластеры и типы ресурсов доступны команде.
CMP — это расширения для поддержки кастомных форматов манифестов. Например, Jsonnet или Kustomize с плагинами. CMP позволяет ArgoCD генерировать манифесты из любых источников, которые можно превратить в YAML.
Diff — это сравнение желаемого состояния (git) с текущим состоянием кластера. ArgoCD показывает разницу в виде подсвеченных строк YAML в UI. Diff генерируется в момент Refresh и при синхронизации. Позволяет увидеть, что изменится до применения изменений.
Sync Waves — это механизм поэтапного применения ресурсов. Ресурсы группируются по волнам (wave 0, wave 1, ...). Hooks — это ресурсы, выполняемые до, во время или после синхронизации, например для миграций БД. Hooks и Waves позволяют управлять порядком деплоя.
ArgoCD не требует специальной интеграции с CI. CI-система (GitLab CI, GitHub Actions) собирает образ и пушит изменения в git-репозиторий с манифестами. ArgoCD автоматически или по расписанию синхронизирует кластер. Можно использовать webhook'и для ускорения реакции на коммит.
Refresh — это принудительная перепроверка git-репозитория на наличие изменений. Отличается от Sync: Refresh только обновляет diff, не применяя изменения. После Refresh видно, какие ресурсы OutOfSync. Sync применяет изменения, если они есть.
ApplicationSet Generators — это способы генерации списка приложений. Основные типы: List (явный список), Git (сканирование структуры папок), SCM Provider (по репозиториям), Cluster (по кластерам), Matrix (комбинация), Merge (объединение), Pull Request (создание окружений на PR).
RBAC настраивается через ConfigMap argocd-rbac-cm. Можно определить политики для пользователей и групп (SSO или локальных). Пример: разрешить admin доступ к проекту myproject. RBAC позволяет гибко разграничивать права на создание, чтение, синхронизацию и удаление приложений.
Health Status — это состояние ресурсов внутри приложения: Healthy (работает корректно), Degraded (проблемы, например, Pod в CrashLoop), Progressing (развертывание), Suspended (приостановлено), Missing (ресурс удален из кластера), Unknown (не удалось определить). Health Status помогает понять, работает ли приложение после деплоя.
Создаете YAML-манифест ApplicationSet с генератором типа Git. Указываете репозиторий, путь и шаблон Application. Git Generator сканирует структуру папок в репозитории и создает Application для каждой папки. Позволяет автоматически создавать приложения при добавлении нового сервиса.