Esta guía explica cómo migrar del gráfico de Helm inline-template de ClickStack (v1.x) a la arquitectura basada en subgráficos (v2.x). Se trata de un cambio incompatible que sustituye los recursos de Kubernetes creados manualmente por recursos personalizados administrados por operadores para MongoDB y ClickHouse, y utiliza el gráfico de Helm oficial de OpenTelemetry Collector.
Cambio incompatibleEl gráfico v2.x no es retrocompatible con v1.x. No se admite una helm upgrade in situ. Recomendamos realizar una instalación limpia junto con la implementación existente y migrar los datos, en lugar de intentar una actualización in situ.
- Haz una copia de seguridad de tus datos antes de actualizar (MongoDB, PVC de ClickHouse)
- Revisa tus personalizaciones actuales de
values.yaml: la mayoría de las claves se han movido o se han renombrado
El gráfico v2.x se instala en dos fases. Los operadores (que registran CRD) deben instalarse antes que el gráfico principal (que crea CR):
Desinstala en orden inverso:
Las PersistentVolumeClaims creadas por los operadores de MongoDB y de ClickHouse no se eliminan con helm uninstall. Esto es intencional para evitar la pérdida accidental de datos. Para eliminar los PVC después de la desinstalación, consulta:
Se han eliminado global.storageClassName y global.keepPVC. La clase de almacenamiento ahora se configura directamente en la sección spec del recurso personalizado de cada operador:
| Componente | Antes (v1.x) | Después (v2.x) |
|---|
| MongoDB | Implementación integrada + Servicio + PVC | MongoDB Kubernetes Operator (MCK) que gestiona un CR MongoDBCommunity |
| ClickHouse | Implementación integrada + Servicio + ConfigMaps + PVC | ClickHouse Operator que gestiona los CR ClickHouseCluster + KeeperCluster |
| OTel collector | Implementación integrada + Servicio (bloque otel.*) | gráfico de Helm oficial de OpenTelemetry Collector (subgráfico otel-collector:) |
| Valores de HyperDX | Claves planas en hyperdx.*, además de tasks: y appUrl en el nivel superior | Reorganizados por tipo de recurso de K8s en hyperdx.* (ver abajo) |
| hdx-oss-v2 | gráfico heredado obsoleto | Eliminado por completo |
Reorganización de los valores de HyperDX
El bloque hyperdx: ahora se organiza por tipo de recurso de Kubernetes:
| Antes (v1.x) | Después (v2.x) |
|---|
appUrl | Eliminado. Use hyperdx.frontendUrl (el valor predeterminado es http://localhost:3000) |
tasks.* (nivel superior) | 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.* anulaciones de variables de entorno | hyperdx.config.* (no sensibles) y hyperdx.secrets.* (sensibles) |
ConfigMap y secreto unificados
Todas las variables de entorno ahora se canalizan a través de dos recursos con nombres estáticos que comparten la Implementación de HyperDX y el OTel collector mediante envFrom:
clickstack-config ConfigMap — se completa a partir de hyperdx.config
clickstack-secret secreto — se completa a partir de hyperdx.secrets
Ya no existe un ConfigMap independiente específico de OTel. Ambas cargas de trabajo leen de las mismas fuentes.
Los siguientes valores de mongodb.* ya no existen:
MongoDB ahora está gestionado por el operador MCK mediante un recurso personalizado MongoDBCommunity. La especificación del CR se genera literalmente a partir de mongodb.spec:
La contraseña de MongoDB se configura en hyperdx.secrets.MONGODB_PASSWORD (no en mongodb.password). El secreto de la contraseña y la plantilla mongoUri la usan automáticamente.
Para añadir persistencia, agregue un bloque statefulSet dentro de mongodb.spec:
El subgráfico del operador de MCK se configura en mongodb-operator: (no en mongodb-kubernetes:). Consulta la documentación de MCK para ver todos los campos disponibles de la CRD.
Los siguientes valores de clickhouse.* ya no existen:
ClickHouse ahora se administra mediante el ClickHouse Operator a través de los recursos personalizados ClickHouseCluster y KeeperCluster. Ambas especificaciones de los CR se generan literalmente a partir de los valores:
Las credenciales de usuario de ClickHouse ahora provienen de hyperdx.secrets (no de clickhouse.config.users). La especificación del clúster hace referencia a ellas mediante expresiones de plantilla.
El subgráfico de ClickHouse Operator se configura en clickhouse-operator:. Los webhooks y cert-manager están deshabilitados de forma predeterminada. Consulta la guía de configuración de ClickHouse Operator para ver todos los campos de CRD disponibles.
Migración del OTel collector
El bloque otel: completo ya no existe:
El OTel collector ahora se despliega mediante el gráfico de Helm oficial de OpenTelemetry Collector como subgráfico otel-collector:. No existe ningún contenedor otel: en el gráfico principal; configure el subgráfico directamente.
Las variables de entorno (endpoint de ClickHouse, URL de OpAMP, etc.) se comparten mediante el ConfigMap unificado clickstack-config y el secreto clickstack-secret. extraEnvsFrom del subgráfico ya viene preconfigurado:
Para configurar los recursos (anteriormente otel.resources):
Para configurar las réplicas (anteriormente otel.replicas):
Para configurar nodeSelector/tolerations (anteriormente otel.nodeSelector/otel.tolerations):
Consulte el gráfico de Helm de OpenTelemetry Collector para conocer todos los valores disponibles del subgráfico.
Las siguientes secciones no se ven afectadas por esta migración:
global.* (imageRegistry, imagePullSecrets)
Instalación limpia vs. actualización in situ
Para una instalación limpia, no se requieren pasos especiales. Los valores predeterminados funcionan desde el primer momento.
Para una actualización in situ de una versión existente, ten en cuenta lo siguiente:
- Los operadores (MCK, ClickHouse Operator) se instalarán como nuevas implementaciones en tu espacio de nombres
- Helm eliminará la Implementación existente de MongoDB y la Implementación de ClickHouse (ya no están en las plantillas del gráfico)
- Los operadores crearán nuevos StatefulSets para gestionar MongoDB y ClickHouse
- Los PVC del gráfico anterior no se reutilizan automáticamente en los StatefulSets gestionados por el operador
Recomendamos realizar una instalación limpia junto con la implementación existente y migrar los datos, en lugar de hacer una actualización in situ.