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

О сервисе

Параметр Значение
Название в интерфейсе Модуль непрерывной доставки приложений
Системное название (идентификатор) shturval-cd
Назначение в кластере GitOps: декларативная непрерывная доставка приложений из Git/Helm-репозиториев; синхронизация состояния кластера с желаемым состоянием в репозитории. Предназначен для развёртывания пользовательских приложений (в отличие от shturval-services).
Критический Нет
Публичный репозиторий Argo CD
Зависимости shturval-cd-crds, shturval-ingress-controller
Неймспейс shturval-cd

Назначение

shturval-cd — модуль непрерывной доставки на базе Argo CD. Отслеживает состояние приложений относительно Git/Helm Repo, автоматически доставляет изменения и приводит приложение в соответствие с репозиторием.

Где настраивать

Сервисы и репозиторииУстановленные сервисы → shturval-cd → Управлять. Дополнительно: Argo CD.

Если сервис не отображается среди установленных, установите чарт shturval-cd через Сервисы и репозиторииДоступные чарты. При установке после создания кластера убедитесь, что включены и находятся в режиме автообновления shturval-cd-crds и shturval-ingress-controller.

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

По умолчанию для ArgoCD заданы limits и requests на ресурсы (CPU, memory). При необходимости переопределите их через ShturvalServicePatch:

Пример 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 Имя ShturvalServicePatch string shturval-cd-resource
limits.cpu Ограничение CPU (по умолчанию 500m) string 600m
limits.memory Ограничение памяти (по умолчанию 512Mi) string 800Mi
requests.cpu Запрашиваемые ресурсы CPU (по умолчанию 250m) string 400m
requests.memory Запрашиваемые ресурсы памяти (по умолчанию 256Mi) string 300Mi
Скриншот ShturvalServicePatch для ресурсов

ShturvalServicePatch для ресурсов shturval-cd

Переход в Argo CD

Интерфейс Argo CD доступен несколькими способами:

  1. По префиксу argocd в домене кластера. Например: argocd.clustername.ip-XX-XX-XX-XX.shturval.link.
  2. Из дашборда клиентского кластера — кнопка «Argo CD» (SSO-авторизация).
  3. Из неймспейса клиентского кластера — кнопка «Argo CD». Если отображается кнопка «Создать проект в Argo CD», значит проект ещё не создан; кнопка перехода в Argo CD появится после успешного создания проекта.
  4. Из неймспейса shturval-cdСетьIngressesshturval-cd-server.

Для авторизации используйте учётные данные платформы «Штурвал» (SSO) или учётные данные администратора Argo CD:

  • Логин: admin
  • Пароль: в графическом интерфейсе — неймспейс shturval-cdКонфигурацияSecretsargocd-initial-admin-secret.

Или через консоль:

kubectl -n shturval-cd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

Кастомизация интерфейса

Для кастомизации интерфейса Argo CD примените ShturvalServicePatch:

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

ShturvalServicePatch для кастомизации интерфейса Argo CD

Изменение параметров shturval-cd может потребоваться при добавлении или замене сертификата в кластере.

Подключение сертификата в Argo CD

При подключении репозитория с самоподписным или корпоративным сертификатом настройте его из интерфейса Argo CD:

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

Тело сертификата должно содержать строки -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----. Нажмите Create для сохранения.

Ошибка доверия после замены сертификата кластера на ACME

После перевода кластера с самоподписного сертификата на ACME вход в Argo CD через SSO может завершаться ошибкой получения токена:

failed to get token: Post "https://shturval.<имя-кластера>.ip-XX-XX-XX-XX.shturval.link/authn/oauth/token": tls: failed to verify certificate: x509: certificate signed by unknown authority

После обновления сертификата перезапустите Deployment с именем shturval-cd-server:

kubectl -n shturval-cd rollout restart deployment/shturval-cd-server

Если доступа к CLI нет, удалите под shturval-cd-server в неймспейсе shturval-cd через GUI. Deployment создаст новый под с актуальным содержимым ConfigMap.


Как развернуть этот сервис — Как развернуть новый сервис.