Описание и примеры 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, SecLog | global.secrets.core/gateway/notification/seclog | database_user, database_user_password; для используемой Kafka — kafka_user, kafka_user_password. |
| Gateway с Keycloak / OIDC | global.secrets.gateway | Дополнительно keycloak_client_secret / oidc_client_secret по выбранному провайдеру. |
| Worker | global.secrets.workers.worker0 | database_user, database_password; при включённой Kafka — kafka_user, kafka_user_password. |
| CDN | global.secrets.cdn | cdn_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-seclog — 8180.
Объекты 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 # Тег образа, который может использоваться по умолчанию во всех сервисах,