Руководство по обновлению Helm
В этом руководстве описан переход с Helm-чарта ClickStack с inline-template (v1.x) на архитектуру на основе субчартов (v2.x). Это критическое изменение: самописные ресурсы Kubernetes заменяются пользовательскими ресурсами под управлением операторов для MongoDB и ClickHouse, а также используется официальный Helm-чарт OpenTelemetry Collector.
Чарт v2.x не обратно совместим с v1.x. Обновление на месте с помощью helm upgrade не поддерживается. Рекомендуем выполнить чистую установку параллельно с существующим развертыванием и перенести данные, а не пытаться обновить текущую установку на месте.
Предварительные требования
- Перед обновлением создайте резервную копию данных (MongoDB, ClickHouse PVC)
- Проверьте текущие переопределения в
values.yaml— большинство ключей было перемещено или переименовано
Двухэтапная установка
В чарте v2.x используется двухэтапная установка. Операторы (которые регистрируют CRD) необходимо установить до основного чарта (который создает CR):
Удаляйте в обратном порядке:
Сохранение данных
Объекты PersistentVolumeClaim, созданные операторами MongoDB и ClickHouse, не удаляются командой helm uninstall. Это сделано намеренно, чтобы предотвратить случайную потерю данных. Чтобы удалить PVC после деинсталляции, см.:
Класс хранилища
global.storageClassName и global.keepPVC были удалены. Теперь класс хранилища настраивается напрямую в спецификации CR каждого оператора:
Что изменилось
| Компонент | До (v1.x) | После (v2.x) |
|---|---|---|
| MongoDB | Встроенное развертывание + Service + PVC | MongoDB Kubernetes Operator (MCK), управляющий CR MongoDBCommunity |
| ClickHouse | Встроенное развертывание + Service + ConfigMaps + PVC | ClickHouse Operator, управляющий CR ClickHouseCluster + KeeperCluster |
| OTel collector | Встроенное развертывание + Service (блок otel.*) | Официальный Helm-чарт OpenTelemetry collector (субчарт otel-collector:) |
| Параметры HyperDX | Плоские ключи в hyperdx.* плюс tasks: и appUrl на верхнем уровне | Перегруппированы по типам ресурсов K8s в hyperdx.* (см. ниже) |
| hdx-oss-v2 | Устаревший legacy-чарт | Полностью удалён |
Реорганизация значений HyperDX
Блок hyperdx: теперь структурирован по типам ресурсов Kubernetes:
Ключевые изменения
| До (v1.x) | После (v2.x) |
|---|---|
appUrl | Удалено. Используйте hyperdx.frontendUrl (по умолчанию: http://localhost:3000) |
tasks.* (верхний уровень) | hyperdx.tasks.* |
mongodb.password | hyperdx.secrets.MONGODB_PASSWORD |
clickhouse.config.users.appUserPassword | hyperdx.secrets.CLICKHOUSE_APP_PASSWORD |
clickhouse.config.users.otelUserPassword | hyperdx.secrets.CLICKHOUSE_PASSWORD |
otel.* переопределения переменных окружения | hyperdx.config.* (несекретные) и hyperdx.secrets.* (секретные) |
Единые ConfigMap и Secret
Теперь все переменные окружения передаются через два ресурса со статическими именами, общие для Развертывания HyperDX и OTel collector, с помощью envFrom:
clickstack-configConfigMap — заполняется изhyperdx.configclickstack-secretSecret — заполняется изhyperdx.secrets
Отдельного ConfigMap специально для OTel collector больше нет. Обе рабочие нагрузки используют одни и те же источники.
Миграция MongoDB
Удалённые значения
Следующих значений mongodb.* больше нет:
Новые значения
Теперь MongoDB управляется оператором MCK через пользовательский ресурс MongoDBCommunity. Спецификация CR формируется напрямую из mongodb.spec:
Пароль MongoDB задаётся в hyperdx.secrets.MONGODB_PASSWORD (а не в mongodb.password). Это значение автоматически используется в Secret с паролем и в шаблоне mongoUri.
Чтобы добавить постоянное хранилище, добавьте блок statefulSet в mongodb.spec:
Субчарт оператора MCK настраивается в разделе mongodb-operator: (а не mongodb-kubernetes:). Полный список доступных полей CRD см. в документации MCK.
Миграция ClickHouse
Удалённые значения
Следующие значения clickhouse.* были удалены:
Новые значения
Теперь ClickHouse управляется оператором ClickHouse через пользовательские ресурсы ClickHouseCluster и KeeperCluster. Спецификации обоих CR формируются напрямую из значений:
Учетные данные пользователя ClickHouse теперь берутся из hyperdx.secrets (а не из clickhouse.config.users). Спецификация кластера ссылается на них с помощью шаблонных выражений.
Субчарт ClickHouse Operator настраивается в разделе clickhouse-operator:. Вебхуки и cert-manager по умолчанию отключены. Все доступные поля CRD см. в руководстве по настройке оператора.
Миграция OTel collector
Удалённые значения
Блок otel: полностью удалён:
Новые значения
OTel collector теперь развёртывается через официальный Helm-чарт OpenTelemetry Collector как субчарт otel-collector:. Обёртки родительского чарта otel: нет — настраивайте субчарт напрямую.
Переменные окружения (конечная точка ClickHouse, URL-адрес OpAMP и т. д.) используются совместно через унифицированные ConfigMap clickstack-config и Secret clickstack-secret. Параметр субчарта extraEnvsFrom уже преднастроен:
Чтобы настроить ресурсы (ранее otel.resources):
Чтобы настроить реплики (ранее otel.replicas):
Чтобы задать nodeSelector/tolerations (ранее otel.nodeSelector/otel.tolerations):
См. Helm-чарт OpenTelemetry Collector, чтобы ознакомиться со всеми доступными значениями субчарта.
Неизменённые значения
Следующие разделы не затрагиваются этой миграцией:
global.*(imageRegistry, imagePullSecrets)
Чистая установка или обновление на месте
Для чистой установки никаких специальных действий не требуется. Параметры по умолчанию работают сразу.
При обновлении на месте существующего релиза обратите внимание на следующее:
- Операторы (MCK, ClickHouse Operator) будут установлены как новые развертывания в вашем пространстве имен
- Helm удалит существующие развертывания MongoDB и ClickHouse (они больше не входят в шаблоны чарта)
- Операторы создадут новые StatefulSet для управления MongoDB и ClickHouse
- PVC из старого чарта не переиспользуются автоматически в StatefulSet, управляемых операторами
Мы рекомендуем выполнить чистую установку параллельно с существующим развертыванием и перенести данные вместо обновления на месте.
Следующие шаги
- Основное руководство по Helm - Базовая установка для v2.x
- Руководство по настройке - API-ключи, секреты и входной шлюз
- Дополнительные манифесты - Пользовательские объекты Kubernetes
- Репозиторий Helm-чартов ClickStack - Исходный код чартов и справочник по values