> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Helm

> Despliegue de ClickStack con Helm - La pila de observabilidad de ClickHouse

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

<Warning>
  **Versión 2.x del gráfico**

  Esta página documenta el gráfico de Helm **v2.x** basado en subgráficos. Si todavía usas el gráfico v1.x con plantillas en línea, consulta la [guía de Helm v1.x](/es/clickstack/deployment/helm-v1). Para ver los pasos de migración, consulta la [guía de actualización](/es/clickstack/deployment/helm-upgrade).
</Warning>

El gráfico de Helm de ClickStack está disponible [aquí](https://github.com/ClickHouse/ClickStack-helm-charts) y es el método **recomendado** para despliegues en producción.

El gráfico v2.x utiliza una **instalación en dos fases**. Primero se instalan los operadores y las CRD mediante el gráfico `clickstack-operators`, y después el gráfico principal `clickstack`, que crea recursos personalizados gestionados por operadores para ClickHouse, MongoDB y el OpenTelemetry Collector.

De forma predeterminada, el gráfico de Helm aprovisiona todos los componentes principales, incluidos:

* **ClickHouse** — gestionado por el [ClickHouse Operator](/es/products/kubernetes-operator/overview) mediante los recursos personalizados `ClickHouseCluster` y `KeeperCluster`
* **HyperDX** — la UI y la API de observabilidad
* **collector de OpenTelemetry (OTel)** — desplegado mediante el [gráfico oficial de Helm del OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-helm-charts) como subgráfico
* **MongoDB** — gestionado por el [MongoDB Kubernetes Operator (MCK)](https://github.com/mongodb/mongodb-kubernetes) mediante un recurso personalizado `MongoDBCommunity`

Sin embargo, puede personalizarse fácilmente para integrarse con una implementación existente de ClickHouse; por ejemplo, una alojada en **ClickHouse Cloud**.

El gráfico admite las buenas prácticas estándar de Kubernetes, entre ellas:

* Configuración específica del entorno mediante `values.yaml`
* Límites de recursos y escalado a nivel de pod
* Configuración de TLS y de Ingreso
* Gestión de secretos y configuración de la autenticación
* [Manifiestos adicionales](/es/clickstack/deployment/helm-additional-manifests) para desplegar objetos arbitrarios de Kubernetes (NetworkPolicy, HPA, ALB Ingress, etc.) junto con el gráfico

<div id="suitable-for">
  ### Apto para
</div>

* Pruebas de concepto
* Producción

<div id="deployment-steps">
  ## Pasos de implementación
</div>

<br />

<Steps>
  <Step>
    ### Requisitos previos

    * [Helm](https://helm.sh/) v3+
    * Clúster de Kubernetes (se recomienda la versión 1.20 o superior)
    * `kubectl` configurado para interactuar con su clúster
  </Step>

  <Step>
    ### Agrega el repositorio de Helm de ClickStack

    Agrega el repositorio de Helm de ClickStack:

    ```shell theme={null}
    helm repo add clickstack https://clickhouse.github.io/ClickStack-helm-charts
    helm repo update
    ```
  </Step>

  <Step>
    ### Instala los operadores

    Instala primero el chart del operador. Esto registra los CRD necesarios para el chart principal:

    ```shell theme={null}
    helm install clickstack-operators clickstack/clickstack-operators
    ```

    Espere a que los pods del operador estén listos antes de continuar:

    ```shell theme={null}
    kubectl get pods -l app.kubernetes.io/instance=clickstack-operators
    ```
  </Step>

  <Step>
    ### Instalar ClickStack

    Una vez que los operadores estén en funcionamiento, instale el chart principal:

    ```shell theme={null}
    helm install my-clickstack clickstack/clickstack
    ```
  </Step>

  <Step>
    ### Verifique la instalación

    Verifique la instalación:

    ```shell theme={null}
    kubectl get pods -l "app.kubernetes.io/name=clickstack"
    ```

    Cuando todos los pods estén listos, continúe.
  </Step>

  <Step>
    ### Reenvío de puertos

    El reenvío de puertos nos permite acceder a HyperDX y configurarlo. En los despliegues en producción, en su lugar, se debe exponer el servicio mediante un Ingreso o un balanceador de carga para garantizar un acceso de red adecuado, la terminación de TLS y la escalabilidad. El reenvío de puertos es más adecuado para el desarrollo local o para tareas administrativas puntuales, no para entornos de larga duración ni de alta disponibilidad.

    ```shell theme={null}
    kubectl port-forward \
      pod/$(kubectl get pod -l app.kubernetes.io/name=clickstack -o jsonpath='{.items[0].metadata.name}') \
      8080:3000
    ```

    <Tip>
      **Configuración del Ingreso en producción**

      Para despliegues en producción, configure el Ingreso con TLS en lugar de usar el reenvío de puertos. Consulte la [guía de configuración de Ingreso](/es/clickstack/deployment/helm-configuration#ingress-setup) para obtener instrucciones detalladas.
    </Tip>
  </Step>

  <Step>
    ### Accede a la UI

    Visita [http://localhost:8080](http://localhost:8080) para acceder a la UI de HyperDX.

    Crea un usuario con un nombre de usuario y una contraseña que cumplan los requisitos.

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/Wpmp4N2VLv_V8ziJ/images/use-cases/observability/hyperdx-login.png?fit=max&auto=format&n=Wpmp4N2VLv_V8ziJ&q=85&s=a4a7f0f11f4ba3b35b9a6c6613b62f5e" alt="UI de HyperDX" size="lg" width="3600" height="1900" data-path="images/use-cases/observability/hyperdx-login.png" />

    Al hacer clic en `Create`, se crearán fuentes de datos para la instancia de ClickHouse desplegada con el gráfico de Helm.

    <Info>
      **Cambiar la conexión predeterminada**

      Puedes cambiar la conexión predeterminada a la instancia integrada de ClickHouse. Para obtener más información, consulta ["Uso de ClickHouse Cloud"](#using-clickhouse-cloud).
    </Info>
  </Step>

  <Step>
    ### Personalización de valores (opcional)

    Puede personalizar la configuración con las opciones `--set`. Por ejemplo:

    ```shell theme={null}
    helm install my-clickstack clickstack/clickstack --set key=value
    ```

    Como alternativa, edita el `values.yaml`. Para obtener los valores predeterminados:

    ```shell theme={null}
    helm show values clickstack/clickstack > values.yaml
    ```

    Ejemplo de configuración:

    ```yaml theme={null}
    hyperdx:
      frontendUrl: "https://hyperdx.example.com"

      deployment:
        replicas: 2
        resources:
          limits:
            cpu: "2"
            memory: 4Gi
          requests:
            cpu: 500m
            memory: 1Gi

      ingress:
        enabled: true
        host: hyperdx.example.com
        tls:
          enabled: true
          tlsSecretName: "hyperdx-tls"
    ```

    ```shell theme={null}
    helm install my-clickstack clickstack/clickstack -f values.yaml
    ```
  </Step>

  <Step>
    ### Uso de secretos (opcional)

    El chart v2.x utiliza un secreto unificado (`clickstack-secret`) que se rellena a partir de `hyperdx.secrets` en tus values. Todas las variables de entorno sensibles —incluidas las contraseñas de ClickHouse, las contraseñas de MongoDB y la API key de HyperDX— se gestionan a través de este único secreto.

    Para sobrescribir los valores del secreto:

    ```yaml theme={null}
    hyperdx:
      secrets:
        HYPERDX_API_KEY: "your-api-key"
        CLICKHOUSE_PASSWORD: "your-clickhouse-password"
        CLICKHOUSE_APP_PASSWORD: "your-app-password"
        MONGODB_PASSWORD: "your-mongodb-password"
    ```

    Para la gestión externa de secretos (p. ej., con un operador de secretos), puedes hacer referencia a un secreto de Kubernetes preexistente:

    ```yaml theme={null}
    hyperdx:
      useExistingConfigSecret: true
      existingConfigSecret: "my-external-secret"
      existingConfigConnectionsKey: "connections.json"
      existingConfigSourcesKey: "sources.json"
    ```

    <Tip>
      **Gestión de claves de API**

      Para obtener instrucciones detalladas sobre la configuración de claves de API, incluidos varios métodos de configuración y procedimientos para reiniciar pods de Kubernetes, consulta la [guía de configuración de claves de API](/es/clickstack/deployment/helm-configuration#api-key-setup).
    </Tip>
  </Step>
</Steps>

<div id="using-clickhouse-cloud">
  ## Uso de ClickHouse Cloud
</div>

Si utiliza ClickHouse Cloud, desactive la instancia de ClickHouse integrada y proporcione sus credenciales de Cloud:

```yaml theme={null}
# values-clickhouse-cloud.yaml
clickhouse:
  enabled: false

hyperdx:
  secrets:
    CLICKHOUSE_PASSWORD: "your-cloud-password"
    CLICKHOUSE_APP_PASSWORD: "your-cloud-password"

  useExistingConfigSecret: true
  existingConfigSecret: "clickhouse-cloud-config"
  existingConfigConnectionsKey: "connections.json"
  existingConfigSourcesKey: "sources.json"
```

Cree por separado el secret de conexión:

```bash theme={null}
cat <<EOF > connections.json
[
  {
    "name": "ClickHouse Cloud",
    "host": "https://your-cloud-instance.clickhouse.cloud",
    "port": 8443,
    "username": "default",
    "password": "your-cloud-password"
  }
]
EOF

kubectl create secret generic clickhouse-cloud-config \
  --from-file=connections.json=connections.json

rm connections.json
```

```shell theme={null}
helm install my-clickstack clickstack/clickstack -f values-clickhouse-cloud.yaml
```

<Tip>
  **Configuraciones externas avanzadas**

  Para implementaciones de producción con configuración basada en secretos, OTel collectors externos o configuraciones mínimas, consulta la [guía de opciones de implementación](/es/clickstack/deployment/helm-deployment-options).
</Tip>

<div id="production-notes">
  ## Notas sobre producción
</div>

De forma predeterminada, este gráfico instala ClickHouse, MongoDB y el OTel collector. Para un entorno de producción, se recomienda administrar ClickHouse y el OTel collector por separado.

Para deshabilitar ClickHouse y el OTel collector:

```yaml theme={null}
clickhouse:
  enabled: false

otel-collector:
  enabled: false
```

<Tip>
  **Buenas prácticas para producción**

  Para despliegues en producción, incluidos la configuración de alta disponibilidad, la gestión de recursos, la configuración de Ingreso/TLS y las configuraciones específicas de Cloud (GKE, EKS, AKS), consulta:

  * [Guía de configuración](/es/clickstack/deployment/helm-configuration) - Gestión de Ingreso, TLS y secretos
  * [Implementaciones en Cloud](/es/clickstack/deployment/helm-cloud) - Configuraciones específicas de Cloud y lista de comprobación para producción
</Tip>

<div id="task-configuration">
  ## Configuración de tareas
</div>

De forma predeterminada, la configuración del gráfico incluye una tarea como cronjob, encargada de comprobar si deben dispararse alertas. En la versión 2.x, la configuración de tareas se ha movido a `hyperdx.tasks`:

| Parámetro                             | Descripción                                                                                                                                                                                                                     | Predeterminado         |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
| `hyperdx.tasks.enabled`               | Activa/desactiva las tareas cron en el clúster. De forma predeterminada, la imagen de HyperDX ejecutará las tareas cron dentro del propio proceso. Cámbielo a true si prefiere usar una tarea cron independiente en el clúster. | `false`                |
| `hyperdx.tasks.checkAlerts.schedule`  | Programación cron de la tarea check-alerts                                                                                                                                                                                      | `*/1 * * * *`          |
| `hyperdx.tasks.checkAlerts.resources` | Solicitudes y límites de recursos para la tarea check-alerts                                                                                                                                                                    | Consulte `values.yaml` |

<div id="upgrading-the-chart">
  ## Actualizar el gráfico
</div>

Para actualizar a una versión más reciente:

```shell theme={null}
helm upgrade my-clickstack clickstack/clickstack -f values.yaml
```

Para ver las versiones disponibles del gráfico:

```shell theme={null}
helm search repo clickstack
```

<Info>
  **Actualización desde v1.x**

  Si está actualizando desde el gráfico inline-template de v1.x, consulte la [guía de actualización](/es/clickstack/deployment/helm-upgrade) para ver las instrucciones de migración. Este es un cambio incompatible: no se admite ejecutar `helm upgrade` sobre la instalación existente.
</Info>

<div id="uninstalling-clickstack">
  ## Desinstalar ClickStack
</div>

Desinstálelo en orden inverso:

```shell theme={null}
helm uninstall my-clickstack            # Eliminar la app + CRs primero
helm uninstall clickstack-operators     # Eliminar los operadores + CRDs
```

**Nota:** 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 limpiar los PVC, consulta:

* [documentación del operador de Kubernetes de MongoDB](https://github.com/mongodb/mongodb-kubernetes/tree/master/docs/mongodbcommunity)

<div id="troubleshooting">
  ## Solución de problemas
</div>

<div id="checking-logs">
  ### Revisión de los logs
</div>

```shell theme={null}
kubectl logs -l app.kubernetes.io/name=clickstack
```

<div id="debugging-a-failed-install">
  ### Depurar una instalación fallida
</div>

```shell theme={null}
helm install my-clickstack clickstack/clickstack --debug --dry-run
```

<div id="verifying-deployment">
  ### Verificar la implementación
</div>

```shell theme={null}
kubectl get pods -l app.kubernetes.io/name=clickstack
```

<Tip>
  **Recursos adicionales de troubleshooting**

  Para problemas específicos de Ingreso, problemas de TLS o troubleshooting de implementaciones en Cloud, consulta:

  * [Troubleshooting de Ingreso](/es/clickstack/deployment/helm-configuration#troubleshooting-ingress) - Entrega de recursos, reescritura de rutas, problemas del navegador
  * [Implementaciones en Cloud](/es/clickstack/deployment/helm-cloud#loadbalancer-dns-resolution-issue) - Problemas de GKE OpAMP y problemas específicos de Cloud
</Tip>

<div id="schema-choice-map-vs-json">
  ## Elección del esquema: Map vs JSON
</div>

ClickStack almacena los atributos como columnas `Map(LowCardinality(String), String)` de forma predeterminada. Este es el esquema recomendado para las cargas de trabajo de observabilidad. En combinación con la [serialización de mapas por buckets](/es/reference/data-types/map#bucketed-map-serialization) y los índices de texto sobre las claves y los valores del mapa, ofrece lookups selectivos sin la sobrecarga de ingesta por clave de las subcolumnas JSON dinámicas.

También hay disponible, en fase beta, un esquema de tipo `JSON` para evaluarlo en cargas de trabajo con un conjunto pequeño y estable de claves de atributos. **No se recomienda** como opción predeterminada. Consulta [Map vs tipo JSON](/es/clickstack/ingesting-data/schema/map-vs-json) para ver la comparación completa y las variables de entorno necesarias para habilitar la compatibilidad con JSON.

<div id="related-documentation">
  ## Documentación relacionada
</div>

<div id="deployment-guides">
  ### Guías de implementación
</div>

* [Opciones de implementación](/es/clickstack/deployment/helm-deployment-options) - ClickHouse externo, OTel collector e implementaciones mínimas
* [Guía de configuración](/es/clickstack/deployment/helm-configuration) - claves de API, secretos y configuración del Ingreso
* [Implementaciones en Cloud](/es/clickstack/deployment/helm-cloud) - configuraciones de GKE, EKS y AKS, y buenas prácticas de producción
* [Guía de actualización](/es/clickstack/deployment/helm-upgrade) - Migración de v1.x a v2.x
* [Manifiestos adicionales](/es/clickstack/deployment/helm-additional-manifests) - Implementación de objetos personalizados de Kubernetes junto con el gráfico

<div id="v1x-documentation">
  ### documentación de la versión 1.x
</div>

* [Helm (v1.x)](/es/clickstack/deployment/helm-v1) - guía de implementación para v1.x
* [Configuración (v1.x)](/es/clickstack/deployment/helm-configuration-v1) - configuración de v1.x
* [Opciones de implementación (v1.x)](/es/clickstack/deployment/helm-deployment-options-v1) - opciones de implementación de v1.x
* [Implementaciones en Cloud (v1.x)](/es/clickstack/deployment/helm-cloud-v1) - configuraciones de Cloud de v1.x

<div id="additional-resources">
  ### Recursos adicionales
</div>

* [Guía de inicio de ClickStack](/es/clickstack/getting-started) - Introducción a ClickStack
* [Repositorio de gráficos de Helm de ClickStack](https://github.com/ClickHouse/ClickStack-helm-charts) - Código fuente del gráfico y referencia de valores
* [Documentación de Kubernetes](https://kubernetes.io/docs/) - Referencia de Kubernetes
* [Documentación de Helm](https://helm.sh/docs/) - Referencia de Helm
