refactor(clickhouse): split server and user config

Split the ClickHouse configuration into separate ConfigMaps for server
and user configurations. This allows more granular management of the
different configuration types and proper mounting to their respective
paths.

- Created separate serverConfig and userConfig under configOverride
- Added user-default.xml under userConfig
- Updated StatefulSet to mount each ConfigMap separately

Signed-off-by: rjshrjndrn <rjshrjndrn@gmail.com>
This commit is contained in:
rjshrjndrn 2025-04-11 17:19:40 +02:00
parent ea4e2ab198
commit 3272f5b9fd
3 changed files with 48 additions and 29 deletions

View file

@ -1,10 +1,20 @@
---
apiVersion: v1
kind: ConfigMap
metadata:
name: clickhouse-override
name: clickhouse-server-override
data:
{{- range $filename, $content := .Values.configOverride }}
{{- range $filename, $content := .Values.configOverride.serverConfig }}
{{ $filename }}: |-
{{ $content | indent 4 }}
{{- end }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: clickhouse-user-override
data:
{{- range $filename, $content := .Values.configOverride.userConfig }}
{{ $filename }}: |-
{{ $content | indent 4 }}
{{- end }}

View file

@ -73,7 +73,9 @@ spec:
volumeMounts:
- name: default-chi-openreplay-clickhouse-replicated-0-0-0
mountPath: /var/lib/clickhouse
- name: clickhouse-override-config
- name: clickhouse-override-server-config
mountPath: /etc/clickhouse-server/config.d
- name: clickhouse-override-user-config
mountPath: /etc/clickhouse-server/config.d
resources:
{{- toYaml .Values.resources | nindent 12 }}
@ -90,9 +92,13 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
volumes:
- name: clickhouse-override-config
- name: clickhouse-override-server-config
configMap:
name: clickhouse-override
name: clickhouse-server-override
optional: true
- name: clickhouse-override-user-config
configMap:
name: clickhouse-user-override
optional: true
volumeClaimTemplates:
- metadata:

View file

@ -85,26 +85,29 @@ affinity: {}
storageSize: 100Gi
configOverride:
zzoverride.xml: |-
<clickhouse>
<logger>
<level>information</level>
<console>true</console>
<log remove="remove"></log>
<errorlog remove="remove"></errorlog>
</logger>
<listen_host>0.0.0.0</listen_host>
<keep_alive_timeout>100</keep_alive_timeout>
<concurrent_threads_soft_limit_num>64</concurrent_threads_soft_limit_num>
<concurrent_threads_soft_limit_ratio_to_cores>2</concurrent_threads_soft_limit_ratio_to_cores>
<concurrent_threads_scheduler>fair_round_robin</concurrent_threads_scheduler>
<max_server_memory_usage>102400000000</max_server_memory_usage>
<max_thread_pool_size>10000</max_thread_pool_size>
<max_server_memory_usage_to_ram_ratio>0.8</max_server_memory_usage_to_ram_ratio>
<uncompressed_cache_size remove="remove"></uncompressed_cache_size>
<mmap_cache_size>26214</mmap_cache_size>
</clickhouse>
# another-config.xml: |-
# <clickhouse>
# <another_setting>value</another_setting>
# </clickhouse>
serverConfig:
zzoverride.xml: |-
# <clickhouse>
# <logger>
# <level>information</level>
# <console>true</console>
# <log remove="remove"></log>
# <errorlog remove="remove"></errorlog>
# </logger>
# <listen_host>0.0.0.0</listen_host>
# <keep_alive_timeout>100</keep_alive_timeout>
# <concurrent_threads_soft_limit_num>64</concurrent_threads_soft_limit_num>
# <concurrent_threads_soft_limit_ratio_to_cores>2</concurrent_threads_soft_limit_ratio_to_cores>
# <concurrent_threads_scheduler>fair_round_robin</concurrent_threads_scheduler>
# <max_server_memory_usage>102400000000</max_server_memory_usage>
# <max_thread_pool_size>10000</max_thread_pool_size>
# <max_server_memory_usage_to_ram_ratio>0.8</max_server_memory_usage_to_ram_ratio>
# <uncompressed_cache_size remove="remove"></uncompressed_cache_size>
# <mmap_cache_size>26214</mmap_cache_size>
# </clickhouse>
# another-config.xml: |-
# <clickhouse>
# <another_setting>value</another_setting>
# </clickhouse>
userConfig:
user-default.xml: |-