Skip to content

Commit bac7f22

Browse files
authored
fix: evaluate clusterEnabled flag for clickhouse env (#255)
1 parent 5359635 commit bac7f22

File tree

4 files changed

+146
-3
lines changed

4 files changed

+146
-3
lines changed

charts/langfuse/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Open source LLM engineering platform - LLM observability, metrics, evaluations,
3535
| clickhouse.auth.existingSecretKey | string | `""` | The key in the existing secret that contains the password. |
3636
| clickhouse.auth.password | string | `""` | Password for the ClickHouse user. |
3737
| clickhouse.auth.username | string | `"default"` | Username for the ClickHouse user. |
38-
| clickhouse.clusterEnabled | bool | `true` | Whether to run ClickHouse commands ON CLUSTER |
38+
| clickhouse.clusterEnabled | bool | `true` | Whether to run ClickHouse commands ON CLUSTER. Controls CLICKHOUSE_CLUSTER_ENABLED setting. |
3939
| clickhouse.deploy | bool | `true` | Enable ClickHouse deployment (via Bitnami Helm Chart). If you want to use an external Clickhouse server (or a managed one), set this to false |
4040
| clickhouse.host | string | `""` | ClickHouse host to connect to. If clickhouse.deploy is true, this will be set automatically based on the release name. |
4141
| clickhouse.httpPort | int | `8123` | ClickHouse HTTP port to connect to. |

charts/langfuse/templates/_helpers.tpl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,12 @@ Return ClickHouse protocol (http or https)
396396
value: {{ required "Configuring an existing secret or clickhouse.auth.password is required" .Values.clickhouse.auth.password | quote }}
397397
{{- end }}
398398
{{- end }}
399-
{{- if and .Values.clickhouse.deploy ($.Values.clickhouse.replicaCount | int | eq 1) }}
399+
{{- if not .Values.clickhouse.clusterEnabled }}
400+
{{/* User explicitly disabled cluster mode */}}
401+
- name: CLICKHOUSE_CLUSTER_ENABLED
402+
value: "false"
403+
{{- else if and .Values.clickhouse.deploy ($.Values.clickhouse.replicaCount | int | eq 1) }}
404+
{{/* Cluster enabled by default, but deploying single-replica ClickHouse */}}
400405
- name: CLICKHOUSE_CLUSTER_ENABLED
401406
value: "false"
402407
{{- end }}
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
suite: test clickhouse cluster configuration
2+
templates:
3+
- web/deployment.yaml
4+
- worker/deployment.yaml
5+
tests:
6+
- it: should set CLICKHOUSE_CLUSTER_ENABLED to false when clusterEnabled is explicitly false with external ClickHouse
7+
values:
8+
- ../values.lint.yaml
9+
set:
10+
clickhouse.deploy: false
11+
clickhouse.clusterEnabled: false
12+
clickhouse.host: "my-clickhouse-cloud.clickhouse.com"
13+
clickhouse.auth.username: "default"
14+
clickhouse.auth.password: "secretPassword"
15+
asserts:
16+
# Web deployment should have CLICKHOUSE_CLUSTER_ENABLED=false
17+
- contains:
18+
path: spec.template.spec.containers[0].env
19+
content:
20+
name: CLICKHOUSE_CLUSTER_ENABLED
21+
value: "false"
22+
template: web/deployment.yaml
23+
# Worker deployment should have CLICKHOUSE_CLUSTER_ENABLED=false
24+
- contains:
25+
path: spec.template.spec.containers[0].env
26+
content:
27+
name: CLICKHOUSE_CLUSTER_ENABLED
28+
value: "false"
29+
template: worker/deployment.yaml
30+
31+
- it: should NOT set CLICKHOUSE_CLUSTER_ENABLED when clusterEnabled is true (default) with external ClickHouse
32+
values:
33+
- ../values.lint.yaml
34+
set:
35+
clickhouse.deploy: false
36+
clickhouse.clusterEnabled: true
37+
clickhouse.host: "my-clickhouse-cluster.clickhouse.com"
38+
clickhouse.auth.username: "default"
39+
clickhouse.auth.password: "secretPassword"
40+
asserts:
41+
# Web deployment should NOT have CLICKHOUSE_CLUSTER_ENABLED env var
42+
- notContains:
43+
path: spec.template.spec.containers[0].env
44+
content:
45+
name: CLICKHOUSE_CLUSTER_ENABLED
46+
template: web/deployment.yaml
47+
# Worker deployment should NOT have CLICKHOUSE_CLUSTER_ENABLED env var
48+
- notContains:
49+
path: spec.template.spec.containers[0].env
50+
content:
51+
name: CLICKHOUSE_CLUSTER_ENABLED
52+
template: worker/deployment.yaml
53+
54+
- it: should set CLICKHOUSE_CLUSTER_ENABLED to false when deploying single replica ClickHouse
55+
values:
56+
- ../values.lint.yaml
57+
set:
58+
clickhouse.deploy: true
59+
clickhouse.replicaCount: 1
60+
asserts:
61+
# Web deployment should have CLICKHOUSE_CLUSTER_ENABLED=false
62+
- contains:
63+
path: spec.template.spec.containers[0].env
64+
content:
65+
name: CLICKHOUSE_CLUSTER_ENABLED
66+
value: "false"
67+
template: web/deployment.yaml
68+
# Worker deployment should have CLICKHOUSE_CLUSTER_ENABLED=false
69+
- contains:
70+
path: spec.template.spec.containers[0].env
71+
content:
72+
name: CLICKHOUSE_CLUSTER_ENABLED
73+
value: "false"
74+
template: worker/deployment.yaml
75+
76+
- it: should NOT set CLICKHOUSE_CLUSTER_ENABLED when deploying multi-replica ClickHouse cluster
77+
values:
78+
- ../values.lint.yaml
79+
set:
80+
clickhouse.deploy: true
81+
clickhouse.replicaCount: 3
82+
asserts:
83+
# Web deployment should NOT have CLICKHOUSE_CLUSTER_ENABLED env var
84+
- notContains:
85+
path: spec.template.spec.containers[0].env
86+
content:
87+
name: CLICKHOUSE_CLUSTER_ENABLED
88+
template: web/deployment.yaml
89+
# Worker deployment should NOT have CLICKHOUSE_CLUSTER_ENABLED env var
90+
- notContains:
91+
path: spec.template.spec.containers[0].env
92+
content:
93+
name: CLICKHOUSE_CLUSTER_ENABLED
94+
template: worker/deployment.yaml
95+
96+
- it: should set CLICKHOUSE_CLUSTER_ENABLED to false when clusterEnabled is false even with multi-replica deployment
97+
values:
98+
- ../values.lint.yaml
99+
set:
100+
clickhouse.deploy: true
101+
clickhouse.replicaCount: 3
102+
clickhouse.clusterEnabled: false
103+
asserts:
104+
# Web deployment should have CLICKHOUSE_CLUSTER_ENABLED=false (override behavior)
105+
- contains:
106+
path: spec.template.spec.containers[0].env
107+
content:
108+
name: CLICKHOUSE_CLUSTER_ENABLED
109+
value: "false"
110+
template: web/deployment.yaml
111+
# Worker deployment should have CLICKHOUSE_CLUSTER_ENABLED=false (override behavior)
112+
- contains:
113+
path: spec.template.spec.containers[0].env
114+
content:
115+
name: CLICKHOUSE_CLUSTER_ENABLED
116+
value: "false"
117+
template: worker/deployment.yaml
118+
119+
- it: should respect default clusterEnabled=true with multi-replica deployment
120+
values:
121+
- ../values.lint.yaml
122+
set:
123+
clickhouse.deploy: true
124+
clickhouse.replicaCount: 3
125+
# clusterEnabled defaults to true in values.yaml
126+
asserts:
127+
# Web deployment should NOT have CLICKHOUSE_CLUSTER_ENABLED env var (cluster mode enabled)
128+
- notContains:
129+
path: spec.template.spec.containers[0].env
130+
content:
131+
name: CLICKHOUSE_CLUSTER_ENABLED
132+
template: web/deployment.yaml
133+
# Worker deployment should NOT have CLICKHOUSE_CLUSTER_ENABLED env var (cluster mode enabled)
134+
- notContains:
135+
path: spec.template.spec.containers[0].env
136+
content:
137+
name: CLICKHOUSE_CLUSTER_ENABLED
138+
template: worker/deployment.yaml

charts/langfuse/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ clickhouse:
534534
# -- Whether to run automatic ClickHouse migrations on startup
535535
autoMigrate: true
536536

537-
# -- Whether to run ClickHouse commands ON CLUSTER
537+
# -- Whether to run ClickHouse commands ON CLUSTER. Controls CLICKHOUSE_CLUSTER_ENABLED setting.
538538
clusterEnabled: true
539539

540540
# -- Subchart specific settings

0 commit comments

Comments
 (0)