Info
Content

Overview

What Is Argo CD?

Argo CD это декларативная, GitOps CD утилита для Kubernetes

argocd-ui.gif

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

argocd_architecture.png

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
Back to top