Helm configuration (v1.x)

- This creates a separate ingress resource for the OTEL collector endpoints
- You can use a different domain, configure specific TLS settings, and apply custom annotations
- The regex path rule allows you to route all OTLP signals (traces, metrics, logs) through a single rule

Note

If you don't need to expose the OTEL collector externally, you can skip this configuration. For most users, the general ingress setup is sufficient.

## Troubleshooting ingress[​](#troubleshooting-ingress "Direct link to Troubleshooting ingress")

**Check ingress resource:**

```
kubectl get ingress -A
kubectl describe ingress <ingress-name>
```

**Check ingress controller logs:**

```
kubectl logs -l app.kubernetes.io/name=ingress-nginx -n ingress-nginx
```

**Test asset URLs:**

Use `curl` to verify static assets are served as JS, not HTML:

```
curl -I https://hyperdx.yourdomain.com/_next/static/chunks/main-xxxx.js
# Should return Content-Type: application/javascript
```

**Browser DevTools:**

- Check the Network tab for 404s or assets returning HTML instead of JS
- Look for errors like `Unexpected token <` in the console (indicates HTML returned for JS)

**Check for path rewrites:**

- Ensure the ingress isn't stripping or incorrectly rewriting asset paths

**Clear browser and CDN cache:**

- After changes, clear your browser cache and any CDN/proxy cache to avoid stale assets

## Customizing values[​](#customizing-values "Direct link to Customizing values")

You can customize settings by using `--set` flags:

```
helm install my-clickstack clickstack/clickstack --set key=value
```

Alternatively, create a custom `values.yaml`. To retrieve the default values:

```
helm show values clickstack/clickstack > values.yaml
```

Example configuration:

```
replicaCount: 2

resources:
  limits:
    cpu: 500m
    memory: 512Mi
  requests:
    cpu: 250m
    memory: 256Mi

hyperdx:
  ingress:
    enabled: true
    host: hyperdx.example.com
```

Apply your custom values:

```
helm install my-clickstack clickstack/clickstack -f values.yaml
```

## Next steps[​](#next-steps "Direct link to Next steps")

- [Deployment options (v1.x)](/docs/use-cases/observability/clickstack/deployment/helm-deployment-options-v1) - External systems and minimal deployments
- [Cloud deployments (v1.x)](/docs/use-cases/observability/clickstack/deployment/helm-cloud-v1) - GKE, EKS, and AKS configurations
- [Main Helm guide (v1.x)](/docs/use-cases/observability/clickstack/deployment/helm-v1) - Basic installation
- [Helm configuration (v2.x)](/docs/use-cases/observability/clickstack/deployment/helm-configuration) - v2.x configuration guide
- [Upgrade guide](/docs/use-cases/observability/clickstack/deployment/helm-upgrade) - Migrating from v1.x to v2.x

- [API key setup](#api-key-setup)
  - [Method 1: Update via Helm upgrade with values file](#api-key-values-file)- [Method 2: Update via Helm upgrade with --set flag](#api-key-set-flag)- [Restart pods to apply changes](#restart-pods)- [Secret management](#secret-management)
    - [Using pre-configured secrets](#using-pre-configured-secrets)- [Creating a custom secret](#creating-a-custom-secret)- [Referencing a secret in values.yaml](#referencing-a-secret)- [Ingress setup](#ingress-setup)
      - [General ingress configuration](#general-ingress-configuration)- [Enabling TLS (HTTPS)](#enabling-tls)- [Example ingress configuration](#example-ingress-configuration)- [Common ingress pitfalls](#common-ingress-pitfalls)- [OTEL collector ingress](#otel-collector-ingress)- [Troubleshooting ingress](#troubleshooting-ingress)- [Customizing values](#customizing-values)- [Next steps](#next-steps)

Was this page helpful?