Модуль непрерывной доставки приложений
Argo CD декларативный инструмент непрерывной доставки GitOps, использующий Git-репозитории для определения желаемого состояния приложения.
Argo CD постоянно отслеживает состояние приложений, находящихся в кластере, относительно Git/Helm Repo таким образом, что:
- производит автоматическую доставку изменений при появлении изменений в приложении в Git/Helm Repo;
- автоматически приводит приложение в состояние, соответствующее данным в Git/Helm Repo при появлении изменений непосредственно в приложении.
С дополнительной информацией можно ознакомиться на официальном сайте. В текущем релизе используется Argo CD версии 2.10.9.
Установка и конфигурация
Для настройки ArgoCD в интерфейсе кластера управления платформы “Штурвал” перейдите в раздел Кластеры/Кластер управления/Сервисы и репозитории/Установленные сервисы.
Для настройки ArgoCD в интерфейсе клиентского кластера платформы “Штурвал” перейдите в раздел Кластер/Название кластера/Сервисы и репозитории/Установленные сервисы.
Найдите модуль непрерывной доставки приложений. Если модуль не отображается, перейдите в доступные чарты, найдите чарт “shturval-cd” и нажмите “Установить”.
В случае, если вы устанавливаете чарт “shturval-cd” после создания кластера, убедитесь, что включены и находятся в режиме автообновления:
- CRD для модуля непрерывной доставки приложений (shturval-cd-crds);
- Модуль управления внешними подключениями (shturval-ingress-controller).
Переход в Argo CD
Есть 4 способа перехода в интерфейс Argo CD:
-
по адресу: argocd.apps.clustername.domain.ltd где clustername - название кластера, domain.ltd - ваш домен.
-
из дашборда клиентского кластера по кнопке “Перейти в Argo CD” (SSO авторизация).
-
из неймспейса клиентского кластера по кнопке “Перейти в Argo CD”. Если в неймспейсе вы видите кнопку “Создать проект в Argo CD”, значит в этом неймспейсе еще не создан проект. Кнопка перехода в интерфейс Argo CD станет доступна после успешного создания проекта (SSO авторизация).
-
из неймспейса shturval-cd/Сеть/Ingresses/shturval-cd-server.
Для авторизации в интерфейсе Argo CD используйте:
- логин: admin
- пароль можно получить в графическом интерфейсе платформы или консоли.
В графическом интерфейсе пароль можно найти в неймспейсе shturval-cd в секрете argocd-initial-admin-secret.
В консоли для получения пароля подключитесь к кластеру и пропишите команду:
kubectl -n shturval-cd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Пример списка параметров сервиса
server:
ingress:
enabled: true
hosts:
- host: argocd.admin-manual.shturval.tech
paths:
- "/"
pathType: Prefix
Кастомизация
Для кастомизации интерфейса ARGO CD допишите параметры кастомизации в custom values спецификации модуля непрерывной доставки приложений кластера. Например, для выделения продуктивной среды можно прописать следующие настройки:
configs:
styles: |
.ui-banner { background-color: #FF0000; }
cm:
ui.bannercontent: "!!! ПРОДУКТИВ !!!"
ui.bannerpermanent: "true"
Настройка ролей в ARGO CD
Настроить доступы пользователей в интерфейсе ArgoCD можно по инструкции инструкции.
Для настройки доступов из интерфейса платформы Штурвал перейдите в Сервисы и репозитории/Установленные сервисы. Найдите “Модуль непрерывной доставки приложений”. В блоке “Спецификация” для добавления пользователя с правами ReadOnly пропишите:
configs:
cm:
create: true
admin.enabled: true
accounts.deployment: apiKey,login
accounts.deployment.enabled: 'true'
rbac:
policy.csv: |
g, deployment, role:readonly
policy.default: role:readonly
scopes: '[groups]'
secret:
createSecret: true
extra:
accounts.deployment.password: "ПАРОЛЬ"
admin.password: "ПАРОЛЬ2"
Где ПАРОЛЬ - bcrypt хэш от пароля создаваемой роли, ПАРОЛЬ2 - bcrypt хэш от пароля администратора
Эта настройка создаст пользователя deployment с ролью readonly.
Подключение сертификата в ARGO CD
При подключении репозитория с использованием самоподписного или корпоративного сертификата, вы можете настроить сертификаты из интерфейса ARGO CD. Для этого:
- Перейдите в раздел Settings/Repository certificates.
- Нажмите Add TLS certificate.
- В открывшемся окне введите адрес репозитория (Repository server name) и TLS сертификат в PEM формате(TLS certificate(PEM format)).
Обратите внимание! Тело сертификата должно включать строки:
----BEGIN CERTIFICATE---- и ----END CERTIFICATE----
Для сохранения сертификата нажмите Create.