Ce guide présente les options avancées de déploiement de ClickStack avec Helm. Pour l'installation de base, consultez le guide principal de déploiement avec Helm.
Vue d’ensemble
Le chart Helm de ClickStack prend en charge plusieurs configurations de déploiement :
- Stack complet (par défaut) — Tous les composants sont inclus, gérés par des opérateurs Kubernetes
- ClickHouse externe — Utiliser un cluster ClickHouse existant
- OTel collector externe — Utiliser une infrastructure OTel existante
- Déploiement minimal — HyperDX uniquement, dépendances externes
ClickHouse externe
Si vous disposez déjà d’un cluster ClickHouse (y compris ClickHouse Cloud), vous pouvez désactiver le ClickHouse intégré et vous connecter à votre instance externe.
Option 1 : Configuration inline (développement/tests)
Utilisez cette approche pour des tests rapides ou des environnements non productifs. Renseignez les informations de connexion via hyperdx.config et hyperdx.secrets :
# values-external-clickhouse.yaml
clickhouse:
enabled: false # Disable the operator-managed ClickHouse
hyperdx:
secrets:
CLICKHOUSE_PASSWORD: "your-password"
CLICKHOUSE_APP_PASSWORD: "your-password"
defaultConnections: |
[
{
"name": "External ClickHouse",
"host": "http://your-clickhouse-server:8123",
"port": 8123,
"username": "your-username",
"password": "your-password"
}
]Installez avec cette configuration :
helm install my-clickstack clickstack/clickstack -f values-external-clickhouse.yamlOption 2 : Secret externe (recommandé pour la production)
Pour les déploiements en production, si vous souhaitez conserver les identifiants séparés de votre configuration Helm :
Créez vos fichiers de configuration
# Create connections.json
cat <<EOF > connections.json
[
{
"name": "Production ClickHouse",
"host": "https://your-production-clickhouse.com",
"port": 8123,
"username": "hyperdx_user",
"password": "your-secure-password"
}
]
EOF
# Create sources.json
cat <<EOF > sources.json
[
{
"from": {
"databaseName": "default",
"tableName": "otel_logs"
},
"kind": "log",
"name": "Logs",
"connection": "Production ClickHouse",
"timestampValueExpression": "TimestampTime",
"displayedTimestampValueExpression": "Timestamp",
"implicitColumnExpression": "Body",
"serviceNameExpression": "ServiceName",
"bodyExpression": "Body",
"eventAttributesExpression": "LogAttributes",
"resourceAttributesExpression": "ResourceAttributes",
"severityTextExpression": "SeverityText",
"traceIdExpression": "TraceId",
"spanIdExpression": "SpanId"
},
{
"from": {
"databaseName": "default",
"tableName": "otel_traces"
},
"kind": "trace",
"name": "Traces",
"connection": "Production ClickHouse",
"timestampValueExpression": "Timestamp",
"displayedTimestampValueExpression": "Timestamp",
"implicitColumnExpression": "SpanName",
"serviceNameExpression": "ServiceName",
"traceIdExpression": "TraceId",
"spanIdExpression": "SpanId",
"durationExpression": "Duration"
}
]
EOFCréer le secret Kubernetes
kubectl create secret generic hyperdx-external-config \
--from-file=connections.json=connections.json \
--from-file=sources.json=sources.json
# Clean up local files
rm connections.json sources.jsonConfigurer Helm pour utiliser le secret
# values-external-clickhouse-secret.yaml
clickhouse:
enabled: false
hyperdx:
useExistingConfigSecret: true
existingConfigSecret: "hyperdx-external-config"
existingConfigConnectionsKey: "connections.json"
existingConfigSourcesKey: "sources.json"helm install my-clickstack clickstack/clickstack -f values-external-clickhouse-secret.yamlUtilisation de ClickHouse Cloud
Dans le cas de ClickHouse Cloud :
# 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"OTEL collector externe
Si vous avez déjà une infrastructure de collectors OTEL en place, désactivez le sous-chart :
# values-external-otel.yaml
otel-collector:
enabled: false # Disable the subchart OTEL collector
hyperdx:
otelExporterEndpoint: "http://your-otel-collector:4318"helm install my-clickstack clickstack/clickstack -f values-external-otel.yamlPour savoir comment exposer les points de terminaison de l’OTel collector via un Ingress, consultez Configuration d’Ingress.
Déploiement minimal
Pour les organisations disposant déjà de leur propre infrastructure, déployez uniquement HyperDX :
# values-minimal.yaml
clickhouse:
enabled: false
otel-collector:
enabled: false
hyperdx:
otelExporterEndpoint: "http://your-otel-collector:4318"
# Option 1: Inline (for testing)
defaultConnections: |
[
{
"name": "External ClickHouse",
"host": "http://your-clickhouse-server:8123",
"port": 8123,
"username": "your-username",
"password": "your-password"
}
]
# Option 2: External secret (production)
# useExistingConfigSecret: true
# existingConfigSecret: "my-external-config"
# existingConfigConnectionsKey: "connections.json"
# existingConfigSourcesKey: "sources.json"helm install my-clickstack clickstack/clickstack -f values-minimal.yamlÉtapes suivantes
- Guide de configuration - Clés API, secrets et configuration de l’ingress
- Déploiements Cloud - Configurations spécifiques à GKE, EKS et AKS
- Guide de mise à niveau - Migration de v1.x vers v2.x
- Manifestes supplémentaires - Objets Kubernetes personnalisés
- Guide principal de Helm - Installation de base
- Options de déploiement (v1.x) - Options de déploiement pour v1.x