Overview
What Is Argo CD?
Argo CD это декларативная, GitOps CD утилита для Kubernetes
Why Argo CD?
Описания приложений, конфигурации и окружения должны быть декларативными и находиться под версионным контролем. Деплой приложений и управление их жизненным циклом должны быть автоматизированны, проверяемы и легкими для понимания
Getting Started
Quick Start
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Следуй getting started guide'у
В дополнение есть user guide
Для обновления есть upgrade guide
И документация для разработчиков, если захочешь сделать какие-то интергации
How it works
Argo CD следует принципам GitOps используя Git как источник истины для определения желаемого состояния приложений. Kubernetes манифесты могут быть описаны следующими образами:
- kustomize applications
- helm chart
- jsonnet files
- Просто директория с yaml/json манифестами
- Любая другая кастомная утилита для управления конфигами настроенная как config management plugin
Argo CD автоматизирует деплой до желаемого состояния приложения в указанном окружении. Деплойменты могут отслеживать обновления манифестов в ветках, тэгах или в конкретных коммитах (см. tracking strategies для подробностей)
Architecture
Argo CD выполнен как Kubernetes контроллер который постоянно отслеживает приложения и сравнивает их текущее состояние с желаемым (которое описано в Git repo). Задеплоенное приложение, состояние которого отличается от желаемого, помечается как OutOfSync
. Argo CD показывает различия в состояниях и предоставляет средства для автоматической и ручной синхронизации. Любые изменения в желаемом состоянии (в Git) могут быть автоматически применены
Дополнительные детали можно узнать из architecture overview
Features
- Автоматический деплой приложений в указанные окружения
- Поддержка множества config management/templating утилит (Kustomize, Helm, Jsonnet, plain-YAML)
- Возможность управления и деплоя в множество кластеров
- SSO интеграция (OIDCC, OAuth2, LDAP, SAML 2.0, GitHub, GitLab, Microsoft, LinkedIn)
- Мультитенантность и RBAC политики для авторизации
- Rollback/Roll-anywhere до любой закоммиченной конфигурации в Git
- Анализ health status'ов ресурсов приложения
- Автоматическое обнаружение configuration drift'a и его визуализация
- Автоматическая или ручная синхронизация приложений с их желаемым состоянием
- Web UI который отображает в реальном времени application activity
- CLI для автоматизации и интеграции с CI
- Webhook integration (GitHub, BitBucket, GitLab)
- Access tokens для автоматизации
- PreSync, Sync, PostSync hooks для поддержки комплексных ролаутов (e.g.blue/green & canary upgrades)
- Журналирование application events и API calls
- Prometheus metrics
- Оверрайды параметров Helm
No Comments