Модуль непрерывной доставки приложений (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. По умолчанию 500m | string | 600m |
limits.memory |
Ограничение памяти. По умолчанию 512Mi | string | 800Mi |
requests.cpu |
Запрашиваемые ресурсы CPU Запрос CPU. По умолчанию 250m | string | 400m |
requests.memory |
Запрашиваемые ресурсы памяти. По умолчанию 256Mi | string | 300Mi |
Переход в Argo CD
Есть 4 способа перехода в интерфейс Argo CD:
-
интерфейс Argo CD доступен по префиксу argocd в домене кластера. Например:
argocd.apps.ip-XX-XX-XX-XX.shturval.link. -
из дашборда клиентского кластера по кнопке “Перейти в 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
Кастомизация
Для кастомизации интерфейса ARGO CD допишите параметры кастомизации в спецификации (customvalues) модуля непрерывной доставки приложений кластера.
Пример customvalues для выделения продуктивной среды
configs:
styles: |
<ваше значение параметра>
cm:
ui.bannercontent: <ваше значение параметра>
ui.bannerpermanent: <ваше значение параметра>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
styles |
CCS-стили для настройки элементов интерфейса | string | .ui-banner { background-color: #FF0000; } |
cm.ui.bannercontent |
Содержимое баннера (текст для отображения пользователю) | string | !!! ПРОДУКТИВ !!! |
cm.ui.bannerpermanent |
Признак постоянной видимости баннера | boolean | true |
Подключение сертификата в ARGO CD
При подключении репозитория с использованием самоподписного или корпоративного сертификата, вы можете настроить сертификаты из интерфейса ARGO CD. Для этого:
- Перейдите в раздел Settings/Repository certificates.
- Нажмите Add TLS certificate.
- В открывшемся окне введите адрес репозитория (Repository server name) и TLS сертификат в PEM формате(TLS certificate(PEM format)).
Обратите внимание! Тело сертификата должно включать:
Содержание
----BEGIN CERTIFICATE---- и ----END CERTIFICATE----