values.yaml 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231
  1. # Copyright Broadcom, Inc. All Rights Reserved.
  2. # SPDX-License-Identifier: APACHE-2.0
  3. ## @section Global parameters
  4. ## Global Docker image parameters
  5. ## Please, note that this will override the image parameters, including dependencies, configured to use the global value
  6. ## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
  7. ##
  8. ## @param global.imageRegistry Global Docker image registry
  9. ## @param global.imagePullSecrets Global Docker registry secret names as an array
  10. ## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
  11. ## @param global.storageClass DEPRECATED: use global.defaultStorageClass instead
  12. ##
  13. global:
  14. imageRegistry: ""
  15. ## E.g.
  16. ## imagePullSecrets:
  17. ## - myRegistryKeySecretName
  18. ##
  19. imagePullSecrets: []
  20. defaultStorageClass: "openebs-hostpath"
  21. storageClass: "openebs-hostpath"
  22. ## Compatibility adaptations for Kubernetes platforms
  23. ##
  24. compatibility:
  25. ## Compatibility adaptations for Openshift
  26. ##
  27. openshift:
  28. ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
  29. ##
  30. adaptSecurityContext: auto
  31. ## @section Common parameters
  32. ##
  33. ## @param kubeVersion Override Kubernetes version
  34. ##
  35. kubeVersion: ""
  36. ## @param nameOverride String to partially override common.names.name
  37. ##
  38. nameOverride: ""
  39. ## @param fullnameOverride String to fully override common.names.fullname
  40. ##
  41. fullnameOverride: ""
  42. ## @param namespaceOverride String to fully override common.names.namespace
  43. ##
  44. namespaceOverride: ""
  45. ## @param commonLabels Labels to add to all deployed objects
  46. ##
  47. commonLabels: {}
  48. ## @param commonAnnotations Annotations to add to all deployed objects
  49. ##
  50. commonAnnotations: {}
  51. ## @param clusterDomain Kubernetes cluster domain name
  52. ##
  53. clusterDomain: cluster.local
  54. ## @param extraDeploy Array of extra objects to deploy with the release
  55. ##
  56. extraDeploy: []
  57. ## Enable diagnostic mode in the deployment
  58. ##
  59. diagnosticMode:
  60. ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
  61. ##
  62. enabled: false
  63. ## @param diagnosticMode.command Command to override all containers in the deployment
  64. ##
  65. command:
  66. - sleep
  67. ## @param diagnosticMode.args Args to override all containers in the deployment
  68. ##
  69. args:
  70. - infinity
  71. ## @section ClickHouse Parameters
  72. ##
  73. ## Bitnami ClickHouse image
  74. ## ref: https://hub.docker.com/r/bitnami/clickhouse/tags/
  75. ## @param image.registry [default: REGISTRY_NAME] ClickHouse image registry
  76. ## @param image.repository [default: REPOSITORY_NAME/clickhouse] ClickHouse image repository
  77. ## @skip image.tag ClickHouse image tag (immutable tags are recommended)
  78. ## @param image.digest ClickHouse image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
  79. ## @param image.pullPolicy ClickHouse image pull policy
  80. ## @param image.pullSecrets ClickHouse image pull secrets
  81. ## @param image.debug Enable ClickHouse image debug mode
  82. ##
  83. image:
  84. registry: reg.cestong.com.cn
  85. repository: bitnami/clickhouse
  86. tag: 24.10.1-debian-12-r0
  87. digest: ""
  88. ## Specify a imagePullPolicy
  89. ## ref: http://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
  90. ##
  91. pullPolicy: IfNotPresent
  92. ## Optionally specify an array of imagePullSecrets.
  93. ## Secrets must be manually created in the namespace.
  94. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  95. ## e.g:
  96. ## pullSecrets:
  97. ## - myRegistryKeySecretName
  98. ##
  99. pullSecrets: []
  100. ## Enable debug mode
  101. ##
  102. debug: false
  103. ## @param clusterName ClickHouse cluster name
  104. ##
  105. clusterName: default
  106. ## @param shards Number of ClickHouse shards to deploy
  107. ##
  108. shards: 2
  109. ## @param replicaCount Number of ClickHouse replicas per shard to deploy
  110. ## if keeper enable, same as keeper count, keeper cluster by shards.
  111. ##
  112. replicaCount: 1
  113. ## @param distributeReplicasByZone Schedules replicas of the same shard to different availability zones
  114. ##
  115. distributeReplicasByZone: false
  116. ## @param containerPorts.http ClickHouse HTTP container port
  117. ## @param containerPorts.https ClickHouse HTTPS container port
  118. ## @param containerPorts.tcp ClickHouse TCP container port
  119. ## @param containerPorts.tcpSecure ClickHouse TCP (secure) container port
  120. ## @param containerPorts.keeper ClickHouse keeper TCP container port
  121. ## @param containerPorts.keeperSecure ClickHouse keeper TCP (secure) container port
  122. ## @param containerPorts.keeperInter ClickHouse keeper interserver TCP container port
  123. ## @param containerPorts.mysql ClickHouse MySQL container port
  124. ## @param containerPorts.postgresql ClickHouse PostgreSQL container port
  125. ## @param containerPorts.interserver ClickHouse Interserver container port
  126. ## @param containerPorts.metrics ClickHouse metrics container port
  127. ##
  128. containerPorts:
  129. http: 8123
  130. https: 8443
  131. tcp: 9000
  132. tcpSecure: 9440
  133. keeper: 2181
  134. keeperSecure: 3181
  135. keeperInter: 9444
  136. mysql: 9004
  137. postgresql: 9005
  138. interserver: 9009
  139. metrics: 8001
  140. ## Configure extra options for ClickHouse containers' liveness and readiness probes
  141. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  142. ## @param livenessProbe.enabled Enable livenessProbe on ClickHouse containers
  143. ## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
  144. ## @param livenessProbe.periodSeconds Period seconds for livenessProbe
  145. ## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
  146. ## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
  147. ## @param livenessProbe.successThreshold Success threshold for livenessProbe
  148. ##
  149. livenessProbe:
  150. enabled: true
  151. failureThreshold: 3
  152. initialDelaySeconds: 10
  153. periodSeconds: 10
  154. successThreshold: 1
  155. timeoutSeconds: 1
  156. ## @param readinessProbe.enabled Enable readinessProbe on ClickHouse containers
  157. ## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
  158. ## @param readinessProbe.periodSeconds Period seconds for readinessProbe
  159. ## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
  160. ## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
  161. ## @param readinessProbe.successThreshold Success threshold for readinessProbe
  162. ##
  163. readinessProbe:
  164. enabled: true
  165. failureThreshold: 3
  166. initialDelaySeconds: 10
  167. periodSeconds: 10
  168. successThreshold: 1
  169. timeoutSeconds: 1
  170. ## @param startupProbe.enabled Enable startupProbe on ClickHouse containers
  171. ## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
  172. ## @param startupProbe.periodSeconds Period seconds for startupProbe
  173. ## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
  174. ## @param startupProbe.failureThreshold Failure threshold for startupProbe
  175. ## @param startupProbe.successThreshold Success threshold for startupProbe
  176. ##
  177. startupProbe:
  178. enabled: false
  179. failureThreshold: 3
  180. initialDelaySeconds: 10
  181. periodSeconds: 10
  182. successThreshold: 1
  183. timeoutSeconds: 1
  184. ## @param customLivenessProbe Custom livenessProbe that overrides the default one
  185. ##
  186. customLivenessProbe: {}
  187. ## @param customReadinessProbe Custom readinessProbe that overrides the default one
  188. ##
  189. customReadinessProbe: {}
  190. ## @param customStartupProbe Custom startupProbe that overrides the default one
  191. ##
  192. customStartupProbe: {}
  193. ## ClickHouse resource requests and limits
  194. ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
  195. ## @param resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
  196. ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
  197. ##
  198. resourcesPreset: "xlarge"
  199. ## @param resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
  200. ## Example:
  201. ## resources:
  202. ## requests:
  203. ## cpu: 2
  204. ## memory: 512Mi
  205. ## limits:
  206. ## cpu: 3
  207. ## memory: 1024Mi
  208. ##
  209. resources: {}
  210. ## Configure Pods Security Context
  211. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  212. ## @param podSecurityContext.enabled Enabled ClickHouse pods' Security Context
  213. ## @param podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
  214. ## @param podSecurityContext.sysctls Set kernel settings using the sysctl interface
  215. ## @param podSecurityContext.supplementalGroups Set filesystem extra groups
  216. ## @param podSecurityContext.fsGroup Set ClickHouse pod's Security Context fsGroup
  217. ## If you are using Kubernetes 1.18, the following code needs to be commented out.
  218. ##
  219. podSecurityContext:
  220. enabled: true
  221. fsGroupChangePolicy: Always
  222. sysctls: []
  223. supplementalGroups: []
  224. fsGroup: 1001
  225. ## Configure Container Security Context
  226. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
  227. ## @param containerSecurityContext.enabled Enable containers' Security Context
  228. ## @param containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
  229. ## @param containerSecurityContext.runAsUser Set containers' Security Context runAsUser
  230. ## @param containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
  231. ## @param containerSecurityContext.runAsNonRoot Set containers' Security Context runAsNonRoot
  232. ## @param containerSecurityContext.readOnlyRootFilesystem Set read only root file system pod's
  233. ## @param containerSecurityContext.privileged Set contraller container's Security Context privileged
  234. ## @param containerSecurityContext.allowPrivilegeEscalation Set contraller container's Security Context allowPrivilegeEscalation
  235. ## @param containerSecurityContext.capabilities.drop List of capabilities to be droppedn
  236. ## @param containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
  237. ##
  238. containerSecurityContext:
  239. enabled: true
  240. seLinuxOptions: {}
  241. runAsUser: 1001
  242. runAsGroup: 1001
  243. runAsNonRoot: true
  244. privileged: false
  245. allowPrivilegeEscalation: false
  246. readOnlyRootFilesystem: true
  247. capabilities:
  248. drop: ["ALL"]
  249. seccompProfile:
  250. type: "RuntimeDefault"
  251. ## Authentication
  252. ## @param auth.username ClickHouse Admin username
  253. ## @param auth.password ClickHouse Admin password
  254. ## @param auth.existingSecret Name of a secret containing the Admin password
  255. ## @param auth.existingSecretKey Name of the key inside the existing secret
  256. ##
  257. auth:
  258. username: default
  259. password: "cecf@cestong.com"
  260. existingSecret: ""
  261. existingSecretKey: ""
  262. ## @param logLevel Logging level
  263. ##
  264. logLevel: information
  265. ## @section ClickHouse keeper configuration parameters
  266. ## @param keeper.enabled Deploy ClickHouse keeper. Support is experimental.
  267. ##
  268. keeper:
  269. enabled: true
  270. ## @param defaultConfigurationOverrides [string] Default configuration overrides (evaluated as a template)
  271. ##
  272. defaultConfigurationOverrides: |
  273. <clickhouse>
  274. <!-- Macros -->
  275. <macros>
  276. <shard from_env="CLICKHOUSE_SHARD_ID"></shard>
  277. <replica from_env="CLICKHOUSE_REPLICA_ID"></replica>
  278. <layer>{{ include "common.names.fullname" . }}</layer>
  279. </macros>
  280. <!-- Log Level -->
  281. <logger>
  282. <level>{{ .Values.logLevel }}</level>
  283. </logger>
  284. {{- if or (ne (int .Values.shards) 1) (ne (int .Values.replicaCount) 1)}}
  285. <!-- Cluster configuration - Any update of the shards and replicas requires helm upgrade -->
  286. <remote_servers>
  287. <{{ .Values.clusterName }}>
  288. {{- $shards := $.Values.shards | int }}
  289. {{- range $shard, $e := until $shards }}
  290. <shard>
  291. {{- $replicas := $.Values.replicaCount | int }}
  292. {{- range $i, $_e := until $replicas }}
  293. <replica>
  294. <host>{{ printf "%s-shard%d-%d.%s.%s.svc.%s" (include "common.names.fullname" $ ) $shard $i (include "clickhouse.headlessServiceName" $) (include "common.names.namespace" $) $.Values.clusterDomain }}</host>
  295. <port>{{ $.Values.service.ports.tcp }}</port>
  296. <user from_env="CLICKHOUSE_ADMIN_USER"></user>
  297. <password from_env="CLICKHOUSE_ADMIN_PASSWORD"></password>
  298. </replica>
  299. {{- end }}
  300. </shard>
  301. {{- end }}
  302. </{{ .Values.clusterName }}>
  303. </remote_servers>
  304. {{- end }}
  305. {{- if .Values.keeper.enabled }}
  306. <!-- keeper configuration -->
  307. <keeper_server>
  308. {{/*ClickHouse keeper configuration using the helm chart */}}
  309. <tcp_port>{{ $.Values.containerPorts.keeper }}</tcp_port>
  310. {{- if .Values.tls.enabled }}
  311. <tcp_port_secure>{{ $.Values.containerPorts.keeperSecure }}</tcp_port_secure>
  312. {{- end }}
  313. <server_id from_env="KEEPER_SERVER_ID"></server_id>
  314. <log_storage_path>/bitnami/clickhouse/keeper/coordination/log</log_storage_path>
  315. <snapshot_storage_path>/bitnami/clickhouse/keeper/coordination/snapshots</snapshot_storage_path>
  316. <coordination_settings>
  317. <operation_timeout_ms>10000</operation_timeout_ms>
  318. <session_timeout_ms>30000</session_timeout_ms>
  319. <raft_logs_level>trace</raft_logs_level>
  320. </coordination_settings>
  321. <raft_configuration>
  322. {{- $nodes := .Values.replicaCount | int }}
  323. {{- range $node, $e := until $nodes }}
  324. <server>
  325. <id>{{ $node | int }}</id>
  326. <hostname from_env="{{ printf "KEEPER_NODE_%d" $node }}"></hostname>
  327. <port>{{ $.Values.service.ports.keeperInter }}</port>
  328. </server>
  329. {{- end }}
  330. </raft_configuration>
  331. </keeper_server>
  332. {{- end }}
  333. {{- if or .Values.keeper.enabled .Values.zookeeper.enabled .Values.externalZookeeper.servers }}
  334. <!-- Zookeeper configuration -->
  335. <zookeeper>
  336. {{- if or .Values.keeper.enabled }}
  337. {{- $nodes := .Values.replicaCount | int }}
  338. {{- range $node, $e := until $nodes }}
  339. <node>
  340. <host from_env="{{ printf "KEEPER_NODE_%d" $node }}"></host>
  341. <port>{{ $.Values.service.ports.keeper }}</port>
  342. </node>
  343. {{- end }}
  344. {{- else if .Values.zookeeper.enabled }}
  345. {{/* Zookeeper configuration using the helm chart */}}
  346. {{- $nodes := .Values.zookeeper.replicaCount | int }}
  347. {{- range $node, $e := until $nodes }}
  348. <node>
  349. <host from_env="{{ printf "KEEPER_NODE_%d" $node }}"></host>
  350. <port>{{ $.Values.zookeeper.service.ports.client }}</port>
  351. </node>
  352. {{- end }}
  353. {{- else if .Values.externalZookeeper.servers }}
  354. {{/* Zookeeper configuration using an external instance */}}
  355. {{- range $node :=.Values.externalZookeeper.servers }}
  356. <node>
  357. <host>{{ $node }}</host>
  358. <port>{{ $.Values.externalZookeeper.port }}</port>
  359. </node>
  360. {{- end }}
  361. {{- end }}
  362. </zookeeper>
  363. {{- end }}
  364. {{- if .Values.tls.enabled }}
  365. <!-- TLS configuration -->
  366. <tcp_port_secure from_env="CLICKHOUSE_TCP_SECURE_PORT"></tcp_port_secure>
  367. <https_port from_env="CLICKHOUSE_HTTPS_PORT"></https_port>
  368. <openSSL>
  369. <server>
  370. {{- $certFileName := default "tls.crt" .Values.tls.certFilename }}
  371. {{- $keyFileName := default "tls.key" .Values.tls.certKeyFilename }}
  372. <certificateFile>/bitnami/clickhouse/certs/{{$certFileName}}</certificateFile>
  373. <privateKeyFile>/bitnami/clickhouse/certs/{{$keyFileName}}</privateKeyFile>
  374. <verificationMode>none</verificationMode>
  375. <cacheSessions>true</cacheSessions>
  376. <disableProtocols>sslv2,sslv3</disableProtocols>
  377. <preferServerCiphers>true</preferServerCiphers>
  378. {{- if or .Values.tls.autoGenerated .Values.tls.certCAFilename }}
  379. {{- $caFileName := default "ca.crt" .Values.tls.certCAFilename }}
  380. <caConfig>/bitnami/clickhouse/certs/{{$caFileName}}</caConfig>
  381. {{- else }}
  382. <loadDefaultCAFile>true</loadDefaultCAFile>
  383. {{- end }}
  384. </server>
  385. <client>
  386. <loadDefaultCAFile>true</loadDefaultCAFile>
  387. <cacheSessions>true</cacheSessions>
  388. <disableProtocols>sslv2,sslv3</disableProtocols>
  389. <preferServerCiphers>true</preferServerCiphers>
  390. <verificationMode>none</verificationMode>
  391. <invalidCertificateHandler>
  392. <name>AcceptCertificateHandler</name>
  393. </invalidCertificateHandler>
  394. </client>
  395. </openSSL>
  396. {{- end }}
  397. {{- if .Values.metrics.enabled }}
  398. <!-- Prometheus metrics -->
  399. <prometheus>
  400. <endpoint>/metrics</endpoint>
  401. <port from_env="CLICKHOUSE_METRICS_PORT"></port>
  402. <metrics>true</metrics>
  403. <events>true</events>
  404. <asynchronous_metrics>true</asynchronous_metrics>
  405. </prometheus>
  406. {{- end }}
  407. </clickhouse>
  408. ## @param existingOverridesConfigmap The name of an existing ConfigMap with your custom configuration for ClickHouse
  409. ##
  410. existingOverridesConfigmap: ""
  411. ## @param extraOverrides Extra configuration overrides (evaluated as a template) apart from the default
  412. ##
  413. extraOverrides: ""
  414. ## @param extraOverridesConfigmap The name of an existing ConfigMap with extra configuration for ClickHouse
  415. ##
  416. extraOverridesConfigmap: ""
  417. ## @param extraOverridesSecret The name of an existing ConfigMap with your custom configuration for ClickHouse
  418. ##
  419. extraOverridesSecret: ""
  420. ## @param usersExtraOverrides Users extra configuration overrides (evaluated as a template) apart from the default
  421. ##
  422. usersExtraOverrides: ""
  423. ## @param usersExtraOverridesConfigmap The name of an existing ConfigMap with users extra configuration for ClickHouse
  424. ##
  425. usersExtraOverridesConfigmap: ""
  426. ## @param usersExtraOverridesSecret The name of an existing ConfigMap with your custom users configuration for ClickHouse
  427. ##
  428. usersExtraOverridesSecret: ""
  429. ## @param initdbScripts Dictionary of initdb scripts
  430. ## Specify dictionary of scripts to be run at first boot
  431. ## Example:
  432. ## initdbScripts:
  433. ## my_init_script.sh: |
  434. ## #!/bin/bash
  435. ## echo "Do something."
  436. ##
  437. initdbScripts: {}
  438. ## @param initdbScriptsSecret ConfigMap with the initdb scripts (Note: Overrides `initdbScripts`)
  439. ##
  440. initdbScriptsSecret: ""
  441. ## @param startdbScripts Dictionary of startdb scripts
  442. ## Specify dictionary of scripts to be run on every start
  443. ## Example:
  444. ## startdbScripts:
  445. ## my_start_script.sh: |
  446. ## #!/bin/bash
  447. ## echo "Do something."
  448. ##
  449. startdbScripts: {}
  450. ## @param startdbScriptsSecret ConfigMap with the startdb scripts (Note: Overrides `startdbScripts`)
  451. ##
  452. startdbScriptsSecret: ""
  453. ## @param command Override default container command (useful when using custom images)
  454. ##
  455. command:
  456. - /scripts/setup.sh
  457. ## @param args Override default container args (useful when using custom images)
  458. ##
  459. args: []
  460. ## @param automountServiceAccountToken Mount Service Account token in pod
  461. ##
  462. automountServiceAccountToken: false
  463. ## @param hostAliases ClickHouse pods host aliases
  464. ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
  465. ##
  466. hostAliases: []
  467. ## @param podLabels Extra labels for ClickHouse pods
  468. ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  469. ##
  470. podLabels: {}
  471. ## @param podAnnotations Annotations for ClickHouse pods
  472. ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  473. ##
  474. podAnnotations: {}
  475. ## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
  476. ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  477. ##
  478. podAffinityPreset: ""
  479. ## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
  480. ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  481. ##
  482. podAntiAffinityPreset: soft
  483. ## Node affinity preset
  484. ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
  485. ##
  486. nodeAffinityPreset:
  487. ## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
  488. ##
  489. type: ""
  490. ## @param nodeAffinityPreset.key Node label key to match. Ignored if `affinity` is set
  491. ##
  492. key: ""
  493. ## @param nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set
  494. ## E.g.
  495. ## values:
  496. ## - e2e-az1
  497. ## - e2e-az2
  498. ##
  499. values: []
  500. ## @param affinity Affinity for ClickHouse pods assignment
  501. ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  502. ## NOTE: `podAffinityPreset`, `podAntiAffinityPreset`, and `nodeAffinityPreset` will be ignored when it's set
  503. ##
  504. affinity: {}
  505. ## @param nodeSelector Node labels for ClickHouse pods assignment
  506. ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
  507. ##
  508. nodeSelector: {}
  509. ## @param tolerations Tolerations for ClickHouse pods assignment
  510. ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  511. ##
  512. tolerations: []
  513. ## @param updateStrategy.type ClickHouse statefulset strategy type
  514. ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
  515. ##
  516. updateStrategy:
  517. ## StrategyType
  518. ## Can be set to RollingUpdate or OnDelete
  519. ##
  520. type: RollingUpdate
  521. ## @param podManagementPolicy Statefulset Pod management policy, it needs to be Parallel to be able to complete the cluster join
  522. ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
  523. ##
  524. podManagementPolicy: Parallel
  525. ## @param priorityClassName ClickHouse pods' priorityClassName
  526. ##
  527. priorityClassName: ""
  528. ## @param topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
  529. ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
  530. ##
  531. topologySpreadConstraints: []
  532. ## @param schedulerName Name of the k8s scheduler (other than default) for ClickHouse pods
  533. ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  534. ##
  535. schedulerName: ""
  536. ## @param terminationGracePeriodSeconds Seconds Redmine pod needs to terminate gracefully
  537. ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
  538. ##
  539. terminationGracePeriodSeconds: ""
  540. ## @param lifecycleHooks for the ClickHouse container(s) to automate configuration before or after startup
  541. ##
  542. lifecycleHooks: {}
  543. ## @param extraEnvVars Array with extra environment variables to add to ClickHouse nodes
  544. ## e.g:
  545. ## extraEnvVars:
  546. ## - name: FOO
  547. ## value: "bar"
  548. ##
  549. extraEnvVars: []
  550. ## @param extraEnvVarsCM Name of existing ConfigMap containing extra env vars for ClickHouse nodes
  551. ##
  552. extraEnvVarsCM: ""
  553. ## @param extraEnvVarsSecret Name of existing Secret containing extra env vars for ClickHouse nodes
  554. ##
  555. extraEnvVarsSecret: ""
  556. ## @param extraVolumes Optionally specify extra list of additional volumes for the ClickHouse pod(s)
  557. ##
  558. extraVolumes: []
  559. ## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for the ClickHouse container(s)
  560. ##
  561. extraVolumeMounts: []
  562. ## @param extraVolumeClaimTemplates Optionally specify extra list of additional volumeClaimTemplates for the ClickHouse container(s)
  563. ##
  564. extraVolumeClaimTemplates: []
  565. ## @param sidecars Add additional sidecar containers to the ClickHouse pod(s)
  566. ## e.g:
  567. ## sidecars:
  568. ## - name: your-image-name
  569. ## image: your-image
  570. ## imagePullPolicy: Always
  571. ## ports:
  572. ## - name: portname
  573. ## containerPort: 1234
  574. ##
  575. sidecars: []
  576. ## @param initContainers Add additional init containers to the ClickHouse pod(s)
  577. ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
  578. ## e.g:
  579. ## initContainers:
  580. ## - name: your-image-name
  581. ## image: your-image
  582. ## imagePullPolicy: Always
  583. ## command: ['sh', '-c', 'echo "hello world"']
  584. ##
  585. initContainers: []
  586. ## Pod Disruption Budget configuration
  587. ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
  588. ## @param pdb.create Enable/disable a Pod Disruption Budget creation
  589. ## @param pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
  590. ## @param pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `pdb.minAvailable` and `pdb.maxUnavailable` are empty.
  591. ##
  592. pdb:
  593. create: true
  594. minAvailable: ""
  595. maxUnavailable: ""
  596. ## TLS configuration
  597. ##
  598. tls:
  599. ## @param tls.enabled Enable TLS traffic support
  600. ##
  601. enabled: false
  602. ## @param tls.autoGenerated Generate automatically self-signed TLS certificates
  603. ##
  604. autoGenerated: false
  605. ## @param tls.certificatesSecret Name of an existing secret that contains the certificates
  606. ##
  607. certificatesSecret: ""
  608. ## @param tls.certFilename Certificate filename
  609. ##
  610. certFilename: ""
  611. ## @param tls.certKeyFilename Certificate key filename
  612. ##
  613. certKeyFilename: ""
  614. ## @param tls.certCAFilename CA Certificate filename
  615. ## If provided, PostgreSQL will authenticate TLS/SSL clients by requesting them a certificate
  616. ## ref: https://www.postgresql.org/docs/9.6/auth-methods.html
  617. ##
  618. certCAFilename: ""
  619. ## @section Traffic Exposure Parameters
  620. ##
  621. ## ClickHouse service parameters
  622. ##
  623. service:
  624. ## @param service.type ClickHouse service type
  625. ##
  626. type: ClusterIP
  627. ## @param service.ports.http ClickHouse service HTTP port
  628. ## @param service.ports.https ClickHouse service HTTPS port
  629. ## @param service.ports.tcp ClickHouse service TCP port
  630. ## @param service.ports.tcpSecure ClickHouse service TCP (secure) port
  631. ## @param service.ports.keeper ClickHouse keeper TCP container port
  632. ## @param service.ports.keeperSecure ClickHouse keeper TCP (secure) container port
  633. ## @param service.ports.keeperInter ClickHouse keeper interserver TCP container port
  634. ## @param service.ports.mysql ClickHouse service MySQL port
  635. ## @param service.ports.postgresql ClickHouse service PostgreSQL port
  636. ## @param service.ports.interserver ClickHouse service Interserver port
  637. ## @param service.ports.metrics ClickHouse service metrics port
  638. ##
  639. ports:
  640. http: 8123
  641. https: 443
  642. tcp: 9000
  643. tcpSecure: 9440
  644. keeper: 2181
  645. keeperSecure: 3181
  646. keeperInter: 9444
  647. mysql: 9004
  648. postgresql: 9005
  649. interserver: 9009
  650. metrics: 8001
  651. ## Node ports to expose
  652. ## @param service.nodePorts.http Node port for HTTP
  653. ## @param service.nodePorts.https Node port for HTTPS
  654. ## @param service.nodePorts.tcp Node port for TCP
  655. ## @param service.nodePorts.tcpSecure Node port for TCP (with TLS)
  656. ## @param service.nodePorts.keeper ClickHouse keeper TCP container port
  657. ## @param service.nodePorts.keeperSecure ClickHouse keeper TCP (secure) container port
  658. ## @param service.nodePorts.keeperInter ClickHouse keeper interserver TCP container port
  659. ## @param service.nodePorts.mysql Node port for MySQL
  660. ## @param service.nodePorts.postgresql Node port for PostgreSQL
  661. ## @param service.nodePorts.interserver Node port for Interserver
  662. ## @param service.nodePorts.metrics Node port for metrics
  663. ## NOTE: choose port between <30000-32767>
  664. ##
  665. nodePorts:
  666. http: ""
  667. https: ""
  668. tcp: ""
  669. tcpSecure: ""
  670. keeper: ""
  671. keeperSecure: ""
  672. keeperInter: ""
  673. mysql: ""
  674. postgresql: ""
  675. interserver: ""
  676. metrics: ""
  677. ## @param service.clusterIP ClickHouse service Cluster IP
  678. ## e.g.:
  679. ## clusterIP: None
  680. ##
  681. clusterIP: ""
  682. ## @param service.loadBalancerIP ClickHouse service Load Balancer IP
  683. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
  684. ##
  685. loadBalancerIP: ""
  686. ## @param service.loadBalancerSourceRanges ClickHouse service Load Balancer sources
  687. ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
  688. ## e.g:
  689. ## loadBalancerSourceRanges:
  690. ## - 10.10.10.0/24
  691. ##
  692. loadBalancerSourceRanges: []
  693. ## @param service.externalTrafficPolicy ClickHouse service external traffic policy
  694. ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
  695. ##
  696. externalTrafficPolicy: Cluster
  697. ## @param service.annotations Additional custom annotations for ClickHouse service
  698. ##
  699. annotations: {}
  700. ## @param service.extraPorts Extra ports to expose in ClickHouse service (normally used with the `sidecars` value)
  701. ##
  702. extraPorts: []
  703. ## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin
  704. ## Values: ClientIP or None
  705. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
  706. ##
  707. sessionAffinity: None
  708. ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
  709. ## sessionAffinityConfig:
  710. ## clientIP:
  711. ## timeoutSeconds: 300
  712. ##
  713. sessionAffinityConfig: {}
  714. ## Headless service properties
  715. ##
  716. headless:
  717. ## @param service.headless.annotations Annotations for the headless service.
  718. ##
  719. annotations: {}
  720. ## External Access to ClickHouse configuration
  721. ##
  722. externalAccess:
  723. ## @param externalAccess.enabled Enable Kubernetes external cluster access to ClickHouse
  724. ##
  725. enabled: false
  726. ## Parameters to configure K8s service(s) used to externally access ClickHouse
  727. ## Note: A new service per will be created
  728. ##
  729. service:
  730. ## @param externalAccess.service.type Kubernetes Service type for external access. It can be NodePort, LoadBalancer or ClusterIP
  731. ##
  732. type: LoadBalancer
  733. ## @param externalAccess.service.ports.http ClickHouse service HTTP port
  734. ## @param externalAccess.service.ports.https ClickHouse service HTTPS port
  735. ## @param externalAccess.service.ports.tcp ClickHouse service TCP port
  736. ## @param externalAccess.service.ports.tcpSecure ClickHouse service TCP (secure) port
  737. ## @param externalAccess.service.ports.keeper ClickHouse keeper TCP container port
  738. ## @param externalAccess.service.ports.keeperSecure ClickHouse keeper TCP (secure) container port
  739. ## @param externalAccess.service.ports.keeperInter ClickHouse keeper interserver TCP container port
  740. ## @param externalAccess.service.ports.mysql ClickHouse service MySQL port
  741. ## @param externalAccess.service.ports.postgresql ClickHouse service PostgreSQL port
  742. ## @param externalAccess.service.ports.interserver ClickHouse service Interserver port
  743. ## @param externalAccess.service.ports.metrics ClickHouse service metrics port
  744. ##
  745. ports:
  746. http: 80
  747. https: 443
  748. tcp: 9000
  749. tcpSecure: 9440
  750. keeper: 2181
  751. keeperSecure: 3181
  752. keeperInter: 9444
  753. mysql: 9004
  754. postgresql: 9005
  755. interserver: 9009
  756. metrics: 8001
  757. ## @param externalAccess.service.loadBalancerIPs Array of load balancer IPs for each ClickHouse . Length must be the same as replicaCount
  758. ## e.g:
  759. ## loadBalancerIPs:
  760. ## - X.X.X.X
  761. ## - Y.Y.Y.Y
  762. ##
  763. loadBalancerIPs: []
  764. ## @param externalAccess.service.loadBalancerAnnotations Array of load balancer annotations for each ClickHouse . Length must be the same as shards multiplied by replicaCount
  765. ## e.g:
  766. ## loadBalancerAnnotations:
  767. ## - external-dns.alpha.kubernetes.io/hostname: 1.external.example.com.
  768. ## - external-dns.alpha.kubernetes.io/hostname: 2.external.example.com.
  769. ##
  770. loadBalancerAnnotations: []
  771. ## @param externalAccess.service.loadBalancerSourceRanges Address(es) that are allowed when service is LoadBalancer
  772. ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
  773. ## e.g:
  774. ## loadBalancerSourceRanges:
  775. ## - 10.10.10.0/24
  776. ##
  777. loadBalancerSourceRanges: []
  778. ## @param externalAccess.service.nodePorts.http Node port for HTTP
  779. ## @param externalAccess.service.nodePorts.https Node port for HTTPS
  780. ## @param externalAccess.service.nodePorts.tcp Node port for TCP
  781. ## @param externalAccess.service.nodePorts.tcpSecure Node port for TCP (with TLS)
  782. ## @param externalAccess.service.nodePorts.keeper ClickHouse keeper TCP container port
  783. ## @param externalAccess.service.nodePorts.keeperSecure ClickHouse keeper TCP container port (with TLS)
  784. ## @param externalAccess.service.nodePorts.keeperInter ClickHouse keeper interserver TCP container port
  785. ## @param externalAccess.service.nodePorts.mysql Node port for MySQL
  786. ## @param externalAccess.service.nodePorts.postgresql Node port for PostgreSQL
  787. ## @param externalAccess.service.nodePorts.interserver Node port for Interserver
  788. ## @param externalAccess.service.nodePorts.metrics Node port for metrics
  789. ## NOTE: choose port between <30000-32767>
  790. ## e.g:
  791. ## nodePorts:
  792. ## tls:
  793. ## - 30001
  794. ## - 30002
  795. ##
  796. nodePorts:
  797. http: []
  798. https: []
  799. tcp: []
  800. tcpSecure: []
  801. keeper: []
  802. keeperSecure: []
  803. keeperInter: []
  804. mysql: []
  805. postgresql: []
  806. interserver: []
  807. metrics: []
  808. ## @param externalAccess.service.labels Service labels for external access
  809. ##
  810. labels: {}
  811. ## @param externalAccess.service.annotations Service annotations for external access
  812. ##
  813. annotations: {}
  814. ## @param externalAccess.service.extraPorts Extra ports to expose in the ClickHouse external service
  815. ##
  816. extraPorts: []
  817. ## ClickHouse ingress parameters
  818. ## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
  819. ##
  820. ingress:
  821. ## @param ingress.enabled Enable ingress record generation for ClickHouse
  822. ##
  823. enabled: false
  824. ## @param ingress.pathType Ingress path type
  825. ##
  826. pathType: ImplementationSpecific
  827. ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
  828. ##
  829. apiVersion: ""
  830. ## @param ingress.hostname Default host for the ingress record
  831. ##
  832. hostname: clickhouse.local
  833. ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
  834. ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
  835. ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
  836. ##
  837. ingressClassName: ""
  838. ## @param ingress.path Default path for the ingress record
  839. ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
  840. ##
  841. path: /
  842. ## @param ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
  843. ## Use this parameter to set the required annotations for cert-manager, see
  844. ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
  845. ## e.g:
  846. ## annotations:
  847. ## kubernetes.io/ingress.class: nginx
  848. ## cert-manager.io/cluster-issuer: cluster-issuer-name
  849. ##
  850. annotations: {}
  851. ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
  852. ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
  853. ## You can:
  854. ## - Use the `ingress.secrets` parameter to create this TLS secret
  855. ## - Rely on cert-manager to create it by setting the corresponding annotations
  856. ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
  857. ##
  858. tls: false
  859. ## @param ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
  860. ##
  861. selfSigned: false
  862. ## @param ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
  863. ## e.g:
  864. ## extraHosts:
  865. ## - name: clickhouse.local
  866. ## path: /
  867. ##
  868. extraHosts: []
  869. ## @param ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
  870. ## e.g:
  871. ## extraPaths:
  872. ## - path: /*
  873. ## backend:
  874. ## serviceName: ssl-redirect
  875. ## servicePort: use-annotation
  876. ##
  877. extraPaths: []
  878. ## @param ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
  879. ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
  880. ## e.g:
  881. ## extraTls:
  882. ## - hosts:
  883. ## - clickhouse.local
  884. ## secretName: clickhouse.local-tls
  885. ##
  886. extraTls: []
  887. ## @param ingress.secrets Custom TLS certificates as secrets
  888. ## NOTE: 'key' and 'certificate' are expected in PEM format
  889. ## NOTE: 'name' should line up with a 'secretName' set further up
  890. ## If it is not set and you're using cert-manager, this is unneeded, as it will create a secret for you with valid certificates
  891. ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
  892. ## It is also possible to create and manage the certificates outside of this helm chart
  893. ## Please see README.md for more information
  894. ## e.g:
  895. ## secrets:
  896. ## - name: clickhouse.local-tls
  897. ## key: |-
  898. ## -----BEGIN RSA PRIVATE KEY-----
  899. ## ...
  900. ## -----END RSA PRIVATE KEY-----
  901. ## certificate: |-
  902. ## -----BEGIN CERTIFICATE-----
  903. ## ...
  904. ## -----END CERTIFICATE-----
  905. ##
  906. secrets: []
  907. ## @param ingress.extraRules Additional rules to be covered with this ingress record
  908. ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
  909. ## e.g:
  910. ## extraRules:
  911. ## - host: example.local
  912. ## http:
  913. ## path: /
  914. ## backend:
  915. ## service:
  916. ## name: example-svc
  917. ## port:
  918. ## name: http
  919. ##
  920. extraRules: []
  921. ## @section Persistence Parameters
  922. ##
  923. ## Enable persistence using Persistent Volume Claims
  924. ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
  925. ##
  926. persistence:
  927. ## @param persistence.enabled Enable persistence using Persistent Volume Claims
  928. ##
  929. enabled: true
  930. ## @param persistence.existingClaim Name of an existing PVC to use
  931. ##
  932. existingClaim: ""
  933. ## @param persistence.storageClass Storage class of backing PVC
  934. ## If defined, storageClassName: <storageClass>
  935. ## If set to "-", storageClassName: "", which disables dynamic provisioning
  936. ## If undefined (the default) or set to null, no storageClassName spec is
  937. ## set, choosing the default provisioner. (gp2 on AWS, standard on
  938. ## GKE, AWS & OpenStack)
  939. ##
  940. storageClass: ""
  941. ## @param persistence.labels Persistent Volume Claim labels
  942. ##
  943. labels: {}
  944. ## @param persistence.annotations Persistent Volume Claim annotations
  945. ##
  946. annotations: {}
  947. ## @param persistence.accessModes Persistent Volume Access Modes
  948. ##
  949. accessModes:
  950. - ReadWriteOnce
  951. ## @param persistence.size Size of data volume
  952. ##
  953. size: 8Gi
  954. ## @param persistence.selector Selector to match an existing Persistent Volume for ClickHouse data PVC
  955. ## If set, the PVC can't have a PV dynamically provisioned for it
  956. ## E.g.
  957. ## selector:
  958. ## matchLabels:
  959. ## app: my-app
  960. ##
  961. selector: {}
  962. ## @param persistence.dataSource Custom PVC data source
  963. ##
  964. dataSource: {}
  965. ## @section Init Container Parameters
  966. ##
  967. ## 'volumePermissions' init container parameters
  968. ## Changes the owner and group of the persistent volume mount point to runAsUser:fsGroup values
  969. ## based on the *podSecurityContext/*containerSecurityContext parameters
  970. ##
  971. volumePermissions:
  972. ## @param volumePermissions.enabled Enable init container that changes the owner/group of the PV mount point to `runAsUser:fsGroup`
  973. ##
  974. enabled: true
  975. ## OS Shell + Utility image
  976. ## ref: https://hub.docker.com/r/bitnami/os-shell/tags/
  977. ## @param volumePermissions.image.registry [default: REGISTRY_NAME] OS Shell + Utility image registry
  978. ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] OS Shell + Utility image repository
  979. ## @skip volumePermissions.image.tag OS Shell + Utility image tag (immutable tags are recommended)
  980. ## @param volumePermissions.image.pullPolicy OS Shell + Utility image pull policy
  981. ## @param volumePermissions.image.pullSecrets OS Shell + Utility image pull secrets
  982. ##
  983. image:
  984. registry: reg.cestong.com.cn
  985. repository: bitnami/os-shell
  986. tag: 12-debian-12-r32
  987. pullPolicy: IfNotPresent
  988. ## Optionally specify an array of imagePullSecrets.
  989. ## Secrets must be manually created in the namespace.
  990. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  991. ## e.g:
  992. ## pullSecrets:
  993. ## - myRegistryKeySecretName
  994. ##
  995. pullSecrets: []
  996. ## Init container's resource requests and limits
  997. ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
  998. ## @param volumePermissions.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production).
  999. ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
  1000. ##
  1001. resourcesPreset: "nano"
  1002. ## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
  1003. ## Example:
  1004. ## resources:
  1005. ## requests:
  1006. ## cpu: 2
  1007. ## memory: 512Mi
  1008. ## limits:
  1009. ## cpu: 3
  1010. ## memory: 1024Mi
  1011. ##
  1012. resources: {}
  1013. ## Init container Container Security Context
  1014. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
  1015. ## @param volumePermissions.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
  1016. ## @param volumePermissions.containerSecurityContext.runAsUser Set init container's Security Context runAsUser
  1017. ## NOTE: when runAsUser is set to special value "auto", init container will try to chown the
  1018. ## data folder to auto-determined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
  1019. ## "auto" is especially useful for OpenShift which has scc with dynamic user ids (and 0 is not allowed)
  1020. ##
  1021. containerSecurityContext:
  1022. seLinuxOptions: {}
  1023. runAsUser: 0
  1024. ## @section Other Parameters
  1025. ##
  1026. ## ServiceAccount configuration
  1027. ##
  1028. serviceAccount:
  1029. ## @param serviceAccount.create Specifies whether a ServiceAccount should be created
  1030. ##
  1031. create: true
  1032. ## @param serviceAccount.name The name of the ServiceAccount to use.
  1033. ## If not set and create is true, a name is generated using the common.names.fullname template
  1034. ##
  1035. name: ""
  1036. ## @param serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
  1037. ##
  1038. annotations: {}
  1039. ## @param serviceAccount.automountServiceAccountToken Automount service account token for the server service account
  1040. ##
  1041. automountServiceAccountToken: false
  1042. ## Prometheus metrics
  1043. ##
  1044. metrics:
  1045. ## @param metrics.enabled Enable the export of Prometheus metrics
  1046. ##
  1047. enabled: true
  1048. ## @param metrics.podAnnotations [object] Annotations for metrics scraping
  1049. ##
  1050. podAnnotations:
  1051. prometheus.io/scrape: "true"
  1052. prometheus.io/port: "{{ .Values.containerPorts.metrics }}"
  1053. ## Prometheus Operator ServiceMonitor configuration
  1054. ##
  1055. serviceMonitor:
  1056. ## @param metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
  1057. ##
  1058. enabled: false
  1059. ## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
  1060. ##
  1061. namespace: ""
  1062. ## @param metrics.serviceMonitor.annotations Additional custom annotations for the ServiceMonitor
  1063. ##
  1064. annotations: {}
  1065. ## @param metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
  1066. ##
  1067. labels: {}
  1068. ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in Prometheus
  1069. ##
  1070. jobLabel: ""
  1071. ## @param metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
  1072. ##
  1073. honorLabels: false
  1074. ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped.
  1075. ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
  1076. ## e.g:
  1077. ## interval: 10s
  1078. ##
  1079. interval: ""
  1080. ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
  1081. ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
  1082. ## e.g:
  1083. ## scrapeTimeout: 10s
  1084. ##
  1085. scrapeTimeout: ""
  1086. ## @param metrics.serviceMonitor.metricRelabelings Specify additional relabeling of metrics
  1087. ##
  1088. metricRelabelings: []
  1089. ## @param metrics.serviceMonitor.relabelings Specify general relabeling
  1090. ##
  1091. relabelings: []
  1092. ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
  1093. ## ref: https://github.com/bitnami/charts/tree/main/bitnami/prometheus-operator#prometheus-configuration
  1094. ## selector:
  1095. ## prometheus: my-prometheus
  1096. ##
  1097. selector: {}
  1098. ## Prometheus Operator PrometheusRule configuration
  1099. ##
  1100. prometheusRule:
  1101. ## @param metrics.prometheusRule.enabled Create a PrometheusRule for Prometheus Operator
  1102. ##
  1103. enabled: false
  1104. ## @param metrics.prometheusRule.namespace Namespace for the PrometheusRule Resource (defaults to the Release Namespace)
  1105. ##
  1106. namespace: ""
  1107. ## @param metrics.prometheusRule.additionalLabels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
  1108. ##
  1109. additionalLabels: {}
  1110. ## @param metrics.prometheusRule.rules PrometheusRule definitions
  1111. ## - alert: ClickhouseServerRestart
  1112. ## annotations:
  1113. ## message: Clickhouse-server started recently
  1114. ## expr: ClickHouseAsyncMetrics_Uptime > 1 < 180
  1115. ## for: 5m
  1116. ## labels:
  1117. ## severity: warning
  1118. rules: []
  1119. ## @section External Zookeeper paramaters
  1120. ##
  1121. externalZookeeper:
  1122. ## @param externalZookeeper.servers List of external zookeeper servers to use
  1123. ## @param externalZookeeper.port Port of the Zookeeper servers
  1124. ##
  1125. servers: []
  1126. port: 2888
  1127. ## @section Zookeeper subchart parameters
  1128. ##
  1129. ## @param zookeeper.enabled Deploy Zookeeper subchart
  1130. ## @param zookeeper.replicaCount Number of Zookeeper instances
  1131. ## @param zookeeper.service.ports.client Zookeeper client port
  1132. ##
  1133. zookeeper:
  1134. enabled: false
  1135. ## Override zookeeper default image as 3.9 is not supported https://github.com/ClickHouse/ClickHouse/issues/53749
  1136. ## ref: https://github.com/bitnami/containers/tree/main/bitnami/zookeeper
  1137. ## @param zookeeper.image.registry [default: REGISTRY_NAME] Zookeeper image registry
  1138. ## @param zookeeper.image.repository [default: REPOSITORY_NAME/zookeeper] Zookeeper image repository
  1139. ## @skip zookeeper.image.tag Zookeeper image tag (immutable tags are recommended)
  1140. ## @param zookeeper.image.pullPolicy Zookeeper image pull policy
  1141. image:
  1142. registry: docker.io
  1143. repository: bitnami/zookeeper
  1144. tag: 3.8.4-debian-12-r15
  1145. pullPolicy: IfNotPresent
  1146. replicaCount: 3
  1147. service:
  1148. ports:
  1149. client: 2181
  1150. ## ZooKeeper resource requests and limits
  1151. ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
  1152. ## @param zookeeper.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
  1153. ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
  1154. ##
  1155. resourcesPreset: "micro"
  1156. ## @param zookeeper.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
  1157. ## Example:
  1158. ## resources:
  1159. ## requests:
  1160. ## cpu: 2
  1161. ## memory: 512Mi
  1162. ## limits:
  1163. ## cpu: 3
  1164. ## memory: 1024Mi
  1165. ##
  1166. resources: {}
  1167. ## @section Network Policies
  1168. ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
  1169. ##
  1170. networkPolicy:
  1171. ## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
  1172. ##
  1173. enabled: true
  1174. ## @param networkPolicy.allowExternal Don't require client label for connections
  1175. ## The Policy model to apply. When set to false, only pods with the correct
  1176. ## client label will have network access to the ports Clickhouse is listening
  1177. ## on. When true, Clickhouse will accept connections from any source
  1178. ## (with the correct destination port).
  1179. ##
  1180. allowExternal: true
  1181. ## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
  1182. ##
  1183. allowExternalEgress: true
  1184. ## @param networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
  1185. ## e.g:
  1186. ## extraIngress:
  1187. ## - ports:
  1188. ## - port: 1234
  1189. ## from:
  1190. ## - podSelector:
  1191. ## - matchLabels:
  1192. ## - role: frontend
  1193. ## - podSelector:
  1194. ## - matchExpressions:
  1195. ## - key: role
  1196. ## operator: In
  1197. ## values:
  1198. ## - frontend
  1199. extraIngress: []
  1200. ## @param networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
  1201. ## e.g:
  1202. ## extraEgress:
  1203. ## - ports:
  1204. ## - port: 1234
  1205. ## to:
  1206. ## - podSelector:
  1207. ## - matchLabels:
  1208. ## - role: frontend
  1209. ## - podSelector:
  1210. ## - matchExpressions:
  1211. ## - key: role
  1212. ## operator: In
  1213. ## values:
  1214. ## - frontend
  1215. ##
  1216. extraEgress: []
  1217. ## @param networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
  1218. ## @param networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
  1219. ##
  1220. ingressNSMatchLabels: {}
  1221. ingressNSPodMatchLabels: {}