Привет, я подсяду?

Спасибо! Почему у меня на рюкзаке значок DevOps? Ну, мне просто понравился значок в форме бесконечности. Поддерживаю ли я GitOps в Prom? Да.

Являюсь ли я частью сообщества? Да. А почему ты спрашиваешь?

В смысле, навязываю тебе что-то? Так ты же сам спросил.

Ладно. Хочу ли я рассказать тебе про ArgoCD? Боже, конечно!



ArgoCD - скромный, но одновременно мощный инструмент Continious Delievery в GitOps. Быстрый и простой вариант организации декларативной доставки приложений в Kubernetes/Openshift. Хороший поинт еще и в том что другой продукт от авторов концепта GitOps - Waeve Flux, так же использует движок ArgoCD



🍩Как это выглядит?

Берется один git, туда кладутся YAML манифесты для приложения с описанием deployment, service, route и всего что нужно для вашего приложения. Затем ArgoCD к подключается к этому репозиторию кода и вуа-ля!

ArgoCD способен постоянно мониторить изменения в манифестах в git, выполнять деплой в указанный кластер или группу кластеров, а так же следить за состоянием приложения. Если в приложении в кластере произошли изменения отличные от описанного в git, ArgoCD просигнализирует об этом и в зависимости от параметров настройки позволит вернуть исходную конфигурацию, либо сделает это автоматически.



🍩 В чем плюсы?

Декларативно описав единожды конфигурацию приложения в манифестах в Git, теперь можно быть увренным что состояние приложения всегда будет соответствовать эталонному. Нужно изменить конфигурацию с автоматическим deploy в кластер? Не проблема, изменение в коде в git приведет к триггеру деплоя новой версии приложения в кластер.

Удобный, простой и абсолютно понятный GUI.



🍩 Что с безопасностью?

ArgoCD сам может быть развернут как внутрикластерное приложение. Для развертывания приложений из git, ему потребуются права кластерного администратора, либо тонкая настройка прав в конкретном namespace для приложения, которое он будет деплоить.

То есть возможно грамотно настроить доступ, а если незачем, то можно оставить как есть.



🍩 Зачем мне это может понадобится?

Как насчет задеплоить приложение в 10 - 20 разных кластеров за один клик мышки? А не переживать за состояние приложения и его конфигурации в дальнейшем?

А управлять конфигурацией самого кластера? Machineconfig, RBAC и прочее? Звучит заманчиво? 😊



ArgoCD - безусловно, не серебряная пуля. Вряд ли будет справедливо гордо рассказывать друзьям как сделал у себя"труЪ GitOps" при одном его использовании. Однако внедрить ArgoCD, как минимум будет первым шагом в большой GitOps.



И конечно же, это весело!



https://argoproj.github.io/argo-cd/