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

Закрома.Хранение — управляющий слой, обеспечивающий работу с 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.1.1 поддерживает Закрома.Хранение 2.10.1; в примере ниже указан образ 2.10.1.

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

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

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

  • Образ Закрома.Хранение 2.10.1.
  • Удалён параметр global.config.post_object_temp_dir: Gateway больше не монтирует временный каталог /tmp и всегда запускается с readOnlyRootFilesystem: true. Удалите параметр из собственных values.yaml.
  • Для новых инсталляций задайте собственные ключи шифрования данных в БД: zakroma-storage-gateway.config.credentials, zakroma-storage-core.config.scrambler и zakroma-storage-notification.config.scrambler. Подробнее — в инструкции базового кластера.

Изменения, появившиеся в 6.1.0 (блок global.config.wait_group, списки global.volumes/global.volumeMounts, выключенное по умолчанию auto_creation.enabled, ключи clusters_other_N_kafka_user/clusters_other_N_kafka_password в секрете gateway), сохраняются.

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

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

КомпонентПараметрКлючи
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 метрики Закрома.Хранение доступны на пути /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 # Тег образа, который может использоваться по умолчанию во всех сервисах,
Развернутьarrow