Да, API ArgoCD соблюдает идемпотентность. Например, если создать приложение с помощью API запроса и затем повторно сделать тот же запрос, состояние приложения останется неизменным (если все параметры запроса не изменялись).
Согласен, что использование Ansible для работы с ArgoCD может добавить сложности. Этот метод больше подходит для случаев, когда часть инфраструктуры находится вне Kubernetes и, как вариант, можно использовать ansible как единую систему конфигурирования. Если вся инфраструктура находится в k8s, стандартный gitops подход действительно удобнее.
Спасибо за отзыв! Рад, что понравилось решение. Да, через API создается тот же самый application манифест, но его не нужно класть в репозиторий в виде yaml файлика для создания ArgoCD-приложения. Это может быть полезно, когда часть инфраструктуры вне k8s. Например, можно с помощью Ansible настроить БД и через API добавить приложение в ArgoCD. Это может быть удобно для автоматизации создания временных стендов, которые требуются для краткосрочных задач.
Если есть АД, то почему сразу там не заводить сервера и пользователей в нем?
Мы так делаем для пользователей. У нас настроен one way trust между FreeIPA и Windows AD, который позволяет пользователям логиниться на linux хосты с доменными учетными записями. FreeIPA, в свою очередь, позволяет настроить ограничения на sudo, разрешенные хосты для разных групп пользователей. Плюс мы используем FreeIPA в качестве мастера dns зоны linux серверов.
Держать в этой задаче terraform для создания dns записей кажется избыточным.
Спасибо за вариант с item.vms.ipaddress. Я согласен, что использовать terraform только для создания DNS записей - это избыточно. Я не указал этого в статье, но виртуалки в частном облаке мы разворачиваем через terraform и мы добавили создание dns записи в уже существующий модуль как дополнительный шаг.
FreeIPA показалось нам подходящим решением для управления linux пользователями, интеграции с AD и контролем прав доступа. Большую роль сыграло наличие хорошей документации на сайте RedHat.
Да, API ArgoCD соблюдает идемпотентность. Например, если создать приложение с помощью API запроса и затем повторно сделать тот же запрос, состояние приложения останется неизменным (если все параметры запроса не изменялись).
Согласен, что использование Ansible для работы с ArgoCD может добавить сложности. Этот метод больше подходит для случаев, когда часть инфраструктуры находится вне Kubernetes и, как вариант, можно использовать ansible как единую систему конфигурирования.
Если вся инфраструктура находится в k8s, стандартный gitops подход действительно удобнее.
Спасибо за отзыв! Рад, что понравилось решение. Да, через API создается тот же самый application манифест, но его не нужно класть в репозиторий в виде yaml файлика для создания ArgoCD-приложения. Это может быть полезно, когда часть инфраструктуры вне k8s. Например, можно с помощью Ansible настроить БД и через API добавить приложение в ArgoCD. Это может быть удобно для автоматизации создания временных стендов, которые требуются для краткосрочных задач.
Мы так делаем для пользователей. У нас настроен one way trust между FreeIPA и Windows AD, который позволяет пользователям логиниться на linux хосты с доменными учетными записями. FreeIPA, в свою очередь, позволяет настроить ограничения на sudo, разрешенные хосты для разных групп пользователей. Плюс мы используем FreeIPA в качестве мастера dns зоны linux серверов.
Спасибо за вариант с item.vms.ipaddress. Я согласен, что использовать terraform только для создания DNS записей - это избыточно. Я не указал этого в статье, но виртуалки в частном облаке мы разворачиваем через terraform и мы добавили создание dns записи в уже существующий модуль как дополнительный шаг.
Честно говоря мы не рассматривали Samba AD.
FreeIPA показалось нам подходящим решением для управления linux пользователями, интеграции с AD и контролем прав доступа. Большую роль сыграло наличие хорошей документации на сайте RedHat.
Роль брали из официального репозитория freeipa.org. Вот ссылка:
https://github.com/freeipa/ansible-freeipa/tree/master/roles/ipaclient