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

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

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

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

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

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

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

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

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

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

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

Конфигурация ресурсов (CPU, memory)

По умолчанию определены limits, requests на ресурсы (CPU, memory). При необходимости вы можете установить требуемые limits/requests ресурсов для ArgoCD. Для этого необходимо:

  1. Подготовить ShturvalServicePatch для применения к спецификации (ssc) Модуля непрерывной доставки приложений (shturval-cd), в котором определить параметры limits/requests, как в примере ниже.
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: <имя ресурса>
spec:
  shturvalServiceConfigName: shturval-cd
  customvalues:
    controller:
      resources:
        limits:
          cpu: <ваше значение параметра>
          memory: <ваше значение параметра>
        requests:
          cpu: <ваше значение параметра>
          memory: <ваше значение параметра>

Параметр Описание Тип данных Пример
metadata.name Имя создаваемого PatchSSC string shturval-cd-resource
limits.cpu Ограничение CPU. По умолчанию 500m string 600m
limits.memory Ограничение памяти. По умолчанию 512Mi string 800Mi
requests.cpu Запрашиваемые ресурсы CPU Запрос CPU. По умолчанию 250m string 400m
requests.memory Запрашиваемые ресурсы памяти. По умолчанию 256Mi string 300Mi
  1. В кластере загрузить с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

cdresourcepatch

После загрузки ShturvalServicePatch потребуется время для применения изменений.

Переход в Argo CD

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

  1. интерфейс Argo CD доступен по префиксу argocd в домене кластера. Например: argocd.clustername.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 вы можете использовать свои учетные данные авторизации в платформе “Штурвал” или учетные данные администратора 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:

  1. Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Модуля непрерывной доставки приложений (shturval-cd), где пропишите параметры кастомизации.
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: <имя ресурса>
spec:
  shturvalServiceConfigName: shturval-cd
  customvalues:
    configs:
      styles: |
        <ваше значение параметра>
      cm:
        ui.bannercontent: "<ваше значение параметра>"
        ui.bannerpermanent: <ваше значение параметра>
Параметр Описание Тип данных Пример
metadata.name Имя создаваемого PatchSSC string shturval-cd-interface
styles CCS-стили для настройки элементов интерфейса string .ui-banner { background-color: #FF0000; }
cm.ui.bannercontent Содержимое баннера (текст для отображения пользователю) string !!! ПРОДУКТИВ !!!
cm.ui.bannerpermanent Признак постоянной видимости баннера boolean true
  1. В кластере загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

cdinterfacepatch

После загрузки ShturvalServicePatch потребуется время для применения изменений.

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