Описание и примеры values.yaml

Zakroma-Storage — управляющий слой, обеспечивающий работу с S3 и с управляющим API.

Helm‑чарт создаёт stateless-сервисы (Core, Gateway, Admin-UI, Worker, Composer, Notification*, SecLog*, CDN*) и их конфигурацию для запуска в Kubernetes.

Звёздочкой отмечены опциональные сервисы, отключаемые во время установки через values.yaml.

1. Поддерживаемые сценарии установки

  • Базовая установка: Core, Gateway, Admin‑UI, Worker, Composer.
  • Базовая + SecLog + Webhooks: Core, Gateway, Admin‑UI, Worker, Composer, Notification, SecLog. Включает аудит событий и вебхуки.
  • Мультикластер: Core, Gateway, Admin‑UI, Worker, Composer, Notification, SecLog, CDN. Два независимых кластера с репликацией данных.

2. Подготовка Kubernetes‑пространства

Создайте namespace:

1kubectl create namespace zakroma-storage

3. Подготовка лицензии и сертификатов

Создайте необходимый Secret с лицензией и смонтируйте его в Pod zakroma-storage-gateway:

1kubectl -n zakroma-storage create secret generic licence --from-file=licence=./licence
1 volumes: 2 - name: licence 3 secret: 4 secretName: licence 5 volumeMounts: 6 - name: licence 7 mountPath: /opt/application/licence 8 subPath: licence

Опционально: добавьте корневой CA в ConfigMap и смонтируйте в Pod.

1 volumes: 2 - name: ca-certificates 3 configMap: 4 name: ca-certificates 5 volumeMounts: 6 - name: ca-certificates 7 mountPath: /etc/ssl/certs/ca-certificates.crt 8 subPath: ca-certificates.crt

4. Подготовка values.yaml для Helm-чарта

Чарт версии 6.0.4 поддерживает Закрома.Хранение 2.9.1–2.9.4; в примере ниже указан образ 2.9.4.

Пошаговая установка с локальными пользователями, LDAP и внешним Keycloak описана в Вариантах установки Helm-поставки 6.0.4.

Подготовьте файл конфигурации values.yaml, включая пароли и ключи. В пошаговой инструкции этот файл называется storage/values-storage.yaml. Для дополнительных сценариев измените соответствующие параметры в этом файле, остальные настройки оставьте без изменений.

Изменения конфигурации в 6.0.4

  • Для подключения заранее созданных секретов используйте global.secrets или existingSecret соответствующего подчарта. Значение existingSecret имеет приоритет; для компонента worker поддерживается отдельный секрет на каждый элемент global.config.workers.
  • Вместо global.config.gateway.tls.key/crt используется список global.config.gateway.tls.certs. Добавлена возможность использовать TLS-параметры и флаги для профилирования компонентов.
  • Добавлены мониторинг фоновых задач и трассировка. Если вы переопределяли эти настройки, сверяйте конфигурацию конкретных подчартов с тегом 6.0.4.
  • Автоматическое создание топиков в Kafka через общий параметр global.config.kafka.auto_creation теперь по умолчанию выключено. Для сценариев с Kafka заранее подготовьте топики.

Работа с существующими секретами

Секреты должны находиться в неймспейсе релиза. Список ключей зависит от компонента:

КомпонентПараметрКлючи
Core, Gateway, Notification, SecLogglobal.secrets.core/gateway/notification/seclogdatabase_user, database_user_password; для используемой Kafka — kafka_user, kafka_user_password.
Gateway с Keycloak / OIDCglobal.secrets.gatewayДополнительно keycloak_client_secret / oidc_client_secret по выбранному провайдеру.
Workerglobal.secrets.workers.worker0database_user, database_password; при включённой Kafka — kafka_user, kafka_user_password.
CDNglobal.secrets.cdncdn_this_api_key, kafka_user, kafka_user_password; для удалённых кластеров с индексом N — cdn_other_N_kafka_user, cdn_other_N_kafka_password, cdn_other_N_api_key.
Чувствительные данные

Значения в values.yaml хранятся открытым текстом. Данные могут сохраняться в Helm release, Secret и ConfigMap. Поддержка функционала existingSecret не означает, что все пароли и ключи исчезают из конфигурационных объектов. Ограничьте права доступа к файлу до 600, а к объектам Kubernetes — средствами RBAC. Не сохраняйте файл в Git и не публикуйте рендер с реальными значениями. Перед установкой замените демонстрационные ключи JWT из подчарта собственными: порядок описан в базовой инструкции.

Ниже приведён справочный пример параметров. Он не является заполненной конфигурацией: задайте адреса, учётные данные, лицензию, Ingress и ключи JWT в соответствии с базовой инструкцией. Блоки опциональных компонентов сохраняются для настройки дополнительных сценариев.

5. Установка

1helm upgrade --install zakroma-storage <chart-ref> -n zakroma-storage -f values.yaml

Где <chart-ref> — путь к локальному чарту или <repo>/<chart> из добавленного Helm‑репозитория.

6. Метрики и ServiceMonitor

В Kubernetes метрики Zakroma-Storage доступны на пути /metrics.

Актуальный порт для сервисов zakroma-storage-composer, zakroma-storage-core, zakroma-storage-worker, zakroma-storage-cdn, zakroma-storage-gateway, zakroma-storage-notification и zakroma-storage-seclog8180.

Объекты ServiceMonitor создаются Helm-чартом. Для использования ServiceMonitor в кластере должен быть установлен Prometheus Operator.

Для включения ServiceMonitor измените блок global.serviceMonitor в подготовленном values-файле. Остальные параметры global сохраните без изменений:

1global: 2 serviceMonitor: 3 enabled: true 4 # Метки должны совпадать со spec.serviceMonitorSelector у Prometheus. 5 labels: 6 release: prometheus 7 interval: 5s 8 path: /metrics 9 # namespace: monitoring 10 # targetNamespace: zakroma-storage

Если требуется настроить ServiceMonitor для отдельного сервиса, измените блок serviceMonitor соответствующего подчарта в том же файле. Остальные параметры компонента сохраните без изменений:

1zakroma-storage-gateway: 2 serviceMonitor: 3 enabled: true 4 namespace: monitoring 5 targetNamespace: zakroma-storage 6 port: management

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

1# Глобальные параметры для всех сервисов 2global: 3 4 image: 5 # Тег образа, который может использоваться по умолчанию во всех сервисах,
Развернутьarrow