Модуль непрерывной доставки приложений

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:

  1. по адресу: argocd.apps.clustername.domain.ltd где clustername - название кластера, domain.ltd - ваш домен.

  2. из дашборда клиентского кластера по кнопке “Перейти в Argo CD” (SSO авторизация).

  3. из неймспейса клиентского кластера по кнопке “Перейти в Argo CD”. Если в неймспейсе вы видите кнопку “Создать проект в Argo CD”, значит в этом неймспейсе еще не создан проект. Кнопка перехода в интерфейс Argo CD станет доступна после успешного создания проекта (SSO авторизация).

  4. из неймспейса 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. Для этого:

  1. Перейдите в раздел Settings/Repository certificates.
  2. Нажмите Add TLS certificate.
  3. В открывшемся окне введите адрес репозитория (Repository server name) и TLS сертификат в PEM формате(TLS certificate(PEM format)).

Обратите внимание! Тело сертификата должно включать строки:

----BEGIN CERTIFICATE---- и ----END CERTIFICATE----

Для сохранения сертификата нажмите Create.