Модуль непрерывной доставки приложений (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Имя ShturvalServicePatchstringshturval-cd-resource
limits.cpuОграничение CPU (по умолчанию 500m)string600m
limits.memoryОграничение памяти (по умолчанию 512Mi)string800Mi
requests.cpuЗапрашиваемые ресурсы CPU (по умолчанию 250m)string400m
requests.memoryЗапрашиваемые ресурсы памяти (по умолчанию 256Mi)string300Mi
Скриншот 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 → Сеть → Ingresses → shturval-cd-server.

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

  • Логин: admin
  • Пароль: в графическом интерфейсе — неймспейс shturval-cd → Конфигурация → Secrets → argocd-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Имя ShturvalServicePatchstringshturval-cd-interface
stylesCSS-стили для настройки элементов интерфейсаstring.ui-banner { background-color: #FF0000; }
cm.ui.bannercontentТекст баннера (отображается пользователю)string!!! ПРОДУКТИВ !!!
cm.ui.bannerpermanentПостоянная видимость баннераbooleantrue
Скриншот ShturvalServicePatch для интерфейса

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

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

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

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

  1. Перейдите в Settings → Repository 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.


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