Модуль непрерывной доставки приложений (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Имя создаваемого PatchSSCstringshturval-cd-resource
limits.cpuОграничение CPU. По умолчанию 500mstring600m
limits.memoryОграничение памяти. По умолчанию 512Mistring800Mi
requests.cpuЗапрашиваемые ресурсы CPU Запрос CPU. По умолчанию 250mstring400m
requests.memoryЗапрашиваемые ресурсы памяти. По умолчанию 256Mistring300Mi
  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Имя создаваемого PatchSSCstringshturval-cd-interface
stylesCCS-стили для настройки элементов интерфейсаstring.ui-banner { background-color: #FF0000; }
cm.ui.bannercontentСодержимое баннера (текст для отображения пользователю)string!!! ПРОДУКТИВ !!!
cm.ui.bannerpermanentПризнак постоянной видимости баннераbooleantrue
  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.