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

Argo CD декларативный инструмент непрерывной доставки GitOps, использующий Git-репозитории для определения желаемого состояния приложения.

Argo CD постоянно отслеживает состояние приложений, находящихся в кластере, относительно Git/Helm Repo таким образом, что:

  • производит автоматическую доставку изменений при появлении изменений в приложении в Git/Helm Repo;
  • автоматически приводит приложение в состояние, соответствующее данным в Git/Helm Repo при появлении изменений непосредственно в приложении.

С дополнительной информацией можно ознакомиться на официальном сайте.

Установка и конфигурация

Для настройки ArgoCD в интерфейсе кластера платформы “Штурвал”:

  • в боковом меню откройте раздел Сервисы и репозитории;
  • перейдите на страницу Установленные сервисы;
  • найдите модуль непрерывной доставки приложений.

Если модуль не отображается, перейдите в раздел Сервисы и репозитории и откройте страницу Доступные чарты, найдите чарт “shturval-cd” и нажмите “Установить”.

В случае, если вы устанавливаете чарт “shturval-cd” после создания кластера, убедитесь, что включены и находятся в режиме автообновления:

  • CRD для модуля непрерывной доставки приложений (shturval-cd-crds);
  • Модуль управления внешними подключениями (shturval-ingress-controller).

Обратите внимание! По умолчанию в модуле определены limits, requests на ресурсы (CPU, memory). При необходимости установите требуемые limits/requests ресурсов для ваших приложений.

Пример customvalues
resources:
  limits:
    cpu: <ваше значение параметра>
    memory: <ваше значение параметра>
  requests:
    cpu: <ваше значение параметра>
    memory: <ваше значение параметра>
ПараметрОписаниеТип данныхПример
limits.cpuОграничение CPU. По умолчанию 500mstring600m
limits.memoryОграничение памяти. По умолчанию 512Mistring800Mi
requests.cpuЗапрашиваемые ресурсы CPU Запрос CPU. По умолчанию 250mstring400m
requests.memoryЗапрашиваемые ресурсы памяти. По умолчанию 256Mistring300Mi

Переход в Argo CD

Есть 4 способа перехода в интерфейс Argo CD:

  1. интерфейс Argo CD доступен по префиксу argocd в домене кластера. Например: argocd.apps.ip-XX-XX-XX-XX.shturval.link.

  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

Кастомизация

Для кастомизации интерфейса ARGO CD допишите параметры кастомизации в спецификации (customvalues) модуля непрерывной доставки приложений кластера.

Пример customvalues для выделения продуктивной среды
configs:
  styles: |
        <ваше значение параметра>
  cm:
    ui.bannercontent: <ваше значение параметра> 
    ui.bannerpermanent: <ваше значение параметра>
ПараметрОписаниеТип данныхПример
stylesCCS-стили для настройки элементов интерфейсаstring.ui-banner { background-color: #FF0000; }
cm.ui.bannercontentСодержимое баннера (текст для отображения пользователю)string!!! ПРОДУКТИВ !!!
cm.ui.bannerpermanentПризнак постоянной видимости баннераbooleantrue

Подключение сертификата в 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.