Wiki
DevOps

GitOps — что это простыми словами

GitOps — управление инфрой через Git: репо = single source of truth. Оператор (ArgoCD, Flux) следит за репо и синхронизирует Kubernetes. Push → auto-deploy.

GitOps — паттерн deployment, при котором Git-репозиторий — единственный источник истины о состоянии инфраструктуры и приложений. Изменения делаются через PR в репо, специальный оператор (ArgoCD, Flux, Rancher Fleet) сравнивает состояние кластера с репо и автоматически синхронизирует.

Принципы (Weaveworks 2017): (1) декларативно — все манифесты K8s/Terraform в Git, (2) versioned — история изменений в git log, (3) автоматическая доставка — оператор пуллит и применяет, (4) continuous reconciliation — постоянно проверяет и лечит дрейф.

vs классический CI/CD push-model: CI/CD пушит из pipeline в кластер (нужны K8s-credentials в CI, риски утечки). GitOps pull-model — оператор в кластере сам ходит в git (нужен только read-only access). Безопаснее, auditable.

Практика: (1) ArgoCD — популярнее, богатый UI, application-level abstractions. (2) Flux v2 — лёгкий, GitOps toolkit из multiple CRD. Обе работают в нашем k3s из helm-чарта. Готовый recipe в `/docs/gitops`.

Частые вопросы

GitOps работает только с K8s?
Основной use-case — K8s, но принципы применимы к Terraform (Atlantis, Terragrunt) и Ansible (AWX pull-mode).
Секреты в git?
Не открытым текстом. Используйте sealed-secrets (Bitnami), sops+age (Mozilla), external-secrets-operator (Vault/AWS SM).

Смотрите также