├── clickhouse ├── docker │ ├── macros.xml │ ├── run.sh │ ├── Dockerfile │ └── config.xml ├── Chart.yaml ├── .helmignore ├── templates │ ├── service.yaml │ ├── client.yaml │ ├── tabix.yaml │ ├── graphite.yaml │ ├── statefulset.yaml │ ├── zookeeper.yaml │ └── configd.yaml └── values.yaml ├── sample-schema.sql └── README.md /clickhouse/docker/macros.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | shard0 4 | REPLICA_NAME 5 | 6 | -------------------------------------------------------------------------------- /clickhouse/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "1.0" 3 | description: ClickHouse Helm Chart 4 | name: clickhouse 5 | version: 0.1.0 6 | maintainers: 7 | - name: Alex Pliutau 8 | email: a.pliutau@gmail.com 9 | -------------------------------------------------------------------------------- /clickhouse/docker/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | NODE_ID=$(echo $(hostname) | awk '{print substr($0,length,1)}') 4 | echo "NODE_ID is $NODE_ID" 5 | 6 | sed -i "s/REPLICA_NAME/replica$NODE_ID/" /etc/clickhouse-server/config.d/macros.xml 7 | 8 | /usr/bin/clickhouse-server --config=${CLICKHOUSE_CONFIG} -------------------------------------------------------------------------------- /clickhouse/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM yandex/clickhouse-server:18.14 2 | 3 | COPY config.xml /etc/clickhouse-server/config.d/local.xml 4 | COPY macros.xml /etc/clickhouse-server/config.d/macros.xml 5 | COPY run.sh /run.sh 6 | 7 | RUN chown -R clickhouse:clickhouse /etc/clickhouse-server/config.d/ 8 | RUN chown clickhouse:clickhouse /run.sh 9 | 10 | CMD [ "/run.sh" ] -------------------------------------------------------------------------------- /clickhouse/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *~ 18 | # Various IDEs 19 | .project 20 | .idea/ 21 | *.tmproj 22 | -------------------------------------------------------------------------------- /clickhouse/docker/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 0.0.0.0 3 | 4 | 5 | error 6 | 7 | 8 | 1 9 | 10 | 11 | 12 | 13 | lz4 14 | 15 | 16 | 17 | 18 | /clickhouse/task_queue/ddl 19 | 20 | -------------------------------------------------------------------------------- /clickhouse/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: clickhouse 5 | labels: 6 | app: clickhouse 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - port: 9000 11 | name: rpc 12 | - port: 8123 13 | name: rest 14 | - port: 9009 15 | name: interserver 16 | clusterIP: None 17 | selector: 18 | app: clickhouse 19 | 20 | {{ if .Values.clickhouse.lb.enabled }} 21 | --- 22 | apiVersion: v1 23 | kind: Service 24 | metadata: 25 | name: clickhouse-lb 26 | spec: 27 | type: LoadBalancer 28 | ports: 29 | - name: rest 30 | port: {{ .Values.clickhouse.lb.restPort }} 31 | targetPort: 8123 32 | - name: rpc 33 | port: {{ .Values.clickhouse.lb.rpcPort }} 34 | targetPort: 9000 35 | selector: 36 | app: clickhouse 37 | {{ end }} -------------------------------------------------------------------------------- /sample-schema.sql: -------------------------------------------------------------------------------- 1 | USE default; 2 | 3 | CREATE TABLE IF NOT EXISTS clicks_sharded ( 4 | date Date DEFAULT toDate(request_time), 5 | request_time DateTime DEFAULT now(), 6 | id String, 7 | advertiser String, 8 | network String, 9 | publisher String, 10 | offer String, 11 | campaign String, 12 | sub_id String, 13 | click_ip String, 14 | referer String, 15 | user_agent String, 16 | device_id String, 17 | country String, 18 | city String, 19 | browser_language String, 20 | campaign_type String, 21 | revenue String, 22 | payout String 23 | ) ENGINE=ReplicatedMergeTree('/clickhouse/tables/{shard}/default/clicks_sharded', '{replica}', date, (date, id), 8192); 24 | 25 | CREATE TABLE IF NOT EXISTS clicks AS clicks_sharded 26 | ENGINE = Distributed( clicks_cluster, default, clicks_sharded , rand() ); -------------------------------------------------------------------------------- /clickhouse/templates/client.yaml: -------------------------------------------------------------------------------- 1 | {{ if .Values.client.enabled }} 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: clickhouse-client 6 | labels: 7 | name: clickhouse-client 8 | spec: 9 | clusterIP: None 10 | selector: 11 | app: clickhouse-client 12 | --- 13 | apiVersion: apps/v1 14 | kind: Deployment 15 | metadata: 16 | name: clickhouse-client 17 | spec: 18 | replicas: 1 19 | selector: 20 | matchLabels: 21 | app: clickhouse-client 22 | template: 23 | metadata: 24 | labels: 25 | app: clickhouse-client 26 | spec: 27 | containers: 28 | - name: clickhouse-client 29 | image: yandex/clickhouse-client:latest 30 | command: ["sleep"] 31 | args: ["infinity"] 32 | resources: 33 | limits: 34 | cpu: 25m 35 | memory: 64Mi 36 | requests: 37 | cpu: 25m 38 | memory: 64Mi 39 | {{ end }} 40 | -------------------------------------------------------------------------------- /clickhouse/templates/tabix.yaml: -------------------------------------------------------------------------------- 1 | {{ if .Values.tabix.enabled }} 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: tabix 6 | spec: 7 | replicas: 1 8 | selector: 9 | matchLabels: 10 | app: tabix 11 | template: 12 | metadata: 13 | labels: 14 | app: tabix 15 | spec: 16 | containers: 17 | - name: tabix 18 | image: "spoonest/clickhouse-tabix-web-client:latest" 19 | imagePullPolicy: Always 20 | ports: 21 | - containerPort: 80 22 | resources: 23 | limits: 24 | cpu: 125m 25 | memory: 128Mi 26 | requests: 27 | cpu: 125m 28 | memory: 128Mi 29 | 30 | {{ if .Values.tabix.lb.enabled }} 31 | --- 32 | apiVersion: v1 33 | kind: Service 34 | metadata: 35 | name: tabix-lb 36 | spec: 37 | type: LoadBalancer 38 | ports: 39 | - name: ui 40 | port: {{ .Values.tabix.lb.port }} 41 | targetPort: 80 42 | selector: 43 | app: tabix 44 | {{ end }} 45 | {{ end }} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ClickHouse Helm Chart 2 | 3 | Fully functioning replicated ClickHouse environment. CLI, Graphite and Tabix UI included. By default there are 2 replicas. 4 | 5 | It's also important to create replicated tables correctly, you may check sample schema in `sample-schema.sql`, which you have to execute on each node (`CREATE` queries are not replicated in ClickHouse). 6 | 7 | ## Run 8 | 9 | ```bash 10 | helm install -f ./clickhouse/values.yaml --name ch --namespace=default ./clickhouse 11 | ``` 12 | 13 | ## Client 14 | 15 | Works if `client.enabled` is `true`. 16 | 17 | Log into container: 18 | 19 | ```bash 20 | kubectl exec -it $(kubectl get pod -l app=clickhouse-client -o jsonpath="{.items[0].metadata.name}") -- /bin/bash 21 | ``` 22 | 23 | Connect to CH node: 24 | 25 | ```bash 26 | /usr/bin/clickhouse-client --host clickhouse-0.clickhouse 27 | ``` 28 | 29 | ## Tabix UI 30 | 31 | Works if `tabix.enabled` is `true`. 32 | 33 | This chart includes [tabix.io](https://tabix.io/) as UI if you need it. 34 | 35 | If LB is eanbled it will be running on localhost:8088 36 | 37 | - name: dev 38 | - `host:port`: `http://localhost:8123` 39 | - login: `reader` 40 | - password: `gFzFTUQ9` 41 | - Enable HTTP Base Auth 42 | 43 | ## Monitoring with Graphite 44 | 45 | Works when `graphite.enabled` is `true`. 46 | 47 | If LB is eanbled it will be running on [http://localhost:8080/dashboard](http://localhost:8080/dashboard) 48 | 49 | ## Users 50 | 51 | - writer / 2c82mirS 52 | - reader / gFzFTUQ9 53 | 54 | ## Build Docker image 55 | 56 | ```bash 57 | docker build -t clickhouse-server ./clickhouse/docker 58 | ``` 59 | 60 | ## Purge 61 | 62 | ```bash 63 | helm del --purge ch 64 | ``` 65 | 66 | Don't forget to delete ClickHouse and Zookeeper PVCs. -------------------------------------------------------------------------------- /clickhouse/templates/graphite.yaml: -------------------------------------------------------------------------------- 1 | {{ if .Values.graphite.enabled }} 2 | apiVersion: apps/v1 3 | kind: StatefulSet 4 | metadata: 5 | name: graphite 6 | spec: 7 | replicas: 1 8 | serviceName: graphite 9 | selector: 10 | matchLabels: 11 | app: graphite 12 | template: 13 | metadata: 14 | labels: 15 | app: graphite 16 | annotations: 17 | pod.alpha.kubernetes.io/initialized: "true" 18 | spec: 19 | containers: 20 | - image: "graphiteapp/graphite-statsd:latest" 21 | name: graphite 22 | imagePullPolicy: Always 23 | ports: 24 | - name: graphite-gui 25 | containerPort: 8080 26 | - name: graphite-plain 27 | containerPort: 2003 28 | - name: graphite-pickle 29 | containerPort: 2004 30 | - name: aggregate-plain 31 | containerPort: 2023 32 | - name: aggregate-pickl 33 | containerPort: 2024 34 | - name: statsd 35 | protocol: UDP 36 | containerPort: 8125 37 | - name: statsd-admin 38 | containerPort: 8126 39 | resources: 40 | limits: 41 | cpu: 125m 42 | memory: 512Mi 43 | requests: 44 | cpu: 125m 45 | memory: 512Mi 46 | --- 47 | apiVersion: v1 48 | kind: Service 49 | metadata: 50 | name: graphite 51 | labels: 52 | app: graphite 53 | spec: 54 | type: ClusterIP 55 | ports: 56 | - name: graphite-pickle 57 | port: 2004 58 | protocol: TCP 59 | - name: graphite-plain 60 | port: 2003 61 | protocol: TCP 62 | - name: graphite-gui 63 | port: 8080 64 | protocol: TCP 65 | - name: aggregate-plain 66 | port: 2023 67 | protocol: TCP 68 | - name: aggregate-pickl 69 | port: 2024 70 | protocol: TCP 71 | - name: statsd 72 | port: 8125 73 | protocol: UDP 74 | - name: statsd-admin 75 | port: 8126 76 | protocol: TCP 77 | clusterIP: None 78 | selector: 79 | app: graphite 80 | 81 | {{ if .Values.graphite.lb.enabled }} 82 | --- 83 | apiVersion: v1 84 | kind: Service 85 | metadata: 86 | name: graphite-lb 87 | spec: 88 | type: LoadBalancer 89 | ports: 90 | - name: gui 91 | port: {{ .Values.graphite.lb.port }} 92 | targetPort: 8080 93 | - name: aggregate-plain 94 | port: 2003 95 | targetPort: 2003 96 | selector: 97 | app: graphite 98 | {{ end }} 99 | 100 | {{ end }} -------------------------------------------------------------------------------- /clickhouse/templates/statefulset.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: StatefulSet 3 | metadata: 4 | name: clickhouse 5 | spec: 6 | replicas: {{ .Values.clickhouse.replicaCount }} 7 | serviceName: clickhouse 8 | selector: 9 | matchLabels: 10 | app: clickhouse 11 | template: 12 | metadata: 13 | labels: 14 | app: clickhouse 15 | annotations: 16 | pod.alpha.kubernetes.io/initialized: "true" 17 | spec: 18 | {{- if .Values.clickhouse.affinity }} 19 | affinity: 20 | {{ toYaml .Values.clickhouse.affinity | indent 8 }} 21 | {{- end -}} 22 | {{- if .Values.clickhouse.nodeSelector }} 23 | nodeSelector: 24 | {{ toYaml .Values.clickhouse.nodeSelector | indent 8 }} 25 | {{- end }} 26 | {{- if .Values.clickhouse.tolerations }} 27 | tolerations: 28 | {{ toYaml .Values.clickhouse.tolerations | indent 8 }} 29 | {{- end }} 30 | volumes: 31 | - name: clickhouse-configd 32 | configMap: 33 | name: clickhouse-configd 34 | containers: 35 | - name: clickhouse-server 36 | image: "{{ .Values.clickhouse.repository }}:{{ .Values.clickhouse.tag }}" 37 | imagePullPolicy: {{ .Values.clickhouse.pullPolicy }} 38 | terminationMessagePath: "/var/log/clickhouse-server/clickhouse-server.err.log" 39 | ports: 40 | - name: rpc 41 | containerPort: 9000 42 | protocol: TCP 43 | - name: rest 44 | containerPort: 8123 45 | protocol: TCP 46 | - name: interserver 47 | containerPort: 9009 48 | protocol: TCP 49 | volumeMounts: 50 | - name: clickhouse-data 51 | mountPath: {{ .Values.clickhouse.persistence.mountPath }} 52 | - name: clickhouse-configd 53 | mountPath: /etc/clickhouse-server/config.d/remote_servers.xml 54 | subPath: remote_servers.xml 55 | - name: clickhouse-configd 56 | mountPath: /etc/clickhouse-server/config.d/zookeeper.xml 57 | subPath: zookeeper.xml 58 | - name: clickhouse-configd 59 | mountPath: /etc/clickhouse-server/config.d/graphite.xml 60 | subPath: graphite.xml 61 | - name: clickhouse-configd 62 | mountPath: /etc/clickhouse-server/users.d 63 | resources: 64 | {{ toYaml .Values.clickhouse.resources | indent 12 }} 65 | 66 | volumeClaimTemplates: 67 | - metadata: 68 | name: clickhouse-data 69 | spec: 70 | accessModes: 71 | {{- range .Values.clickhouse.persistence.accessModes }} 72 | - {{ . | quote }} 73 | {{- end }} 74 | resources: 75 | requests: 76 | storage: {{ .Values.clickhouse.persistence.size }} 77 | -------------------------------------------------------------------------------- /clickhouse/values.yaml: -------------------------------------------------------------------------------- 1 | clusterDNS: default.svc.cluster.local 2 | 3 | clickhouse: 4 | replicaCount: 2 5 | repository: pltvs/clickhouse-server 6 | tag: latest 7 | pullPolicy: Always 8 | writerPass: 2c82mirS 9 | readerPass: gFzFTUQ9 10 | 11 | lb: 12 | enabled: false 13 | restPort: 8123 14 | rpcPort: 9000 15 | 16 | resources: 17 | limits: 18 | cpu: 125m 19 | memory: 256Mi 20 | requests: 21 | cpu: 125m 22 | memory: 256Mi 23 | 24 | ## Enable persistence using Persistent Volume Claims 25 | ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ 26 | ## 27 | persistence: 28 | ## The path the volume will be mounted at 29 | mountPath: /var/lib/clickhouse 30 | 31 | ## Persistent Volume Storage Class 32 | ## If defined, storageClassName: 33 | ## If set to "-", storageClassName: "", which disables dynamic provisioning 34 | ## If undefined (the default) or set to null, no storageClassName spec is 35 | ## set, choosing the default provisioner. (gp2 on AWS, standard on 36 | ## GKE, AWS & OpenStack) 37 | # storageClass: "ssd" 38 | accessModes: 39 | - ReadWriteOnce 40 | size: 1Gi 41 | 42 | ## Node selector 43 | ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector 44 | nodeSelector: {} 45 | 46 | ## Affinity 47 | ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity 48 | affinity: {} 49 | 50 | ## Tolerations 51 | ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ 52 | tolerations: [] 53 | 54 | # deploys clickhouse-client 55 | client: 56 | enabled: true 57 | 58 | # zookeeper 59 | zookeeper: 60 | repository: gcr.io/google_samples/k8szk 61 | tag: v1 62 | replicaCount: 2 63 | 64 | resources: 65 | limits: 66 | cpu: 125m 67 | memory: 256Mi 68 | requests: 69 | cpu: 125m 70 | memory: 256Mi 71 | 72 | ## Enable persistence using Persistent Volume Claims 73 | ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ 74 | ## 75 | persistence: 76 | ## The path the volume will be mounted at 77 | mountPath: /var/lib/zookeeper 78 | 79 | ## Persistent Volume Storage Class 80 | ## If defined, storageClassName: 81 | ## If set to "-", storageClassName: "", which disables dynamic provisioning 82 | ## If undefined (the default) or set to null, no storageClassName spec is 83 | ## set, choosing the default provisioner. (gp2 on AWS, standard on 84 | ## GKE, AWS & OpenStack) 85 | # storageClass: "ssd" 86 | accessModes: 87 | - ReadWriteOnce 88 | size: 1Gi 89 | 90 | ## Node selector 91 | ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector 92 | nodeSelector: {} 93 | 94 | ## Affinity 95 | ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity 96 | affinity: {} 97 | 98 | ## Tolerations 99 | ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ 100 | tolerations: [] 101 | 102 | # tabix.io web UI 103 | tabix: 104 | enabled: false 105 | lb: 106 | enabled: false 107 | port: 8088 108 | 109 | # monitoring with graphite 110 | graphite: 111 | enabled: false 112 | lb: 113 | enabled: false 114 | port: 8080 115 | -------------------------------------------------------------------------------- /clickhouse/templates/zookeeper.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: zk 5 | spec: 6 | type: ClusterIP 7 | ports: 8 | - port: 2888 9 | name: server 10 | - port: 3888 11 | name: leader-election 12 | clusterIP: None 13 | selector: 14 | app: zk 15 | --- 16 | apiVersion: apps/v1 17 | kind: StatefulSet 18 | metadata: 19 | name: zk 20 | spec: 21 | serviceName: zk 22 | replicas: {{ .Values.zookeeper.replicaCount }} 23 | selector: 24 | matchLabels: 25 | app: zk 26 | template: 27 | metadata: 28 | labels: 29 | app: zk 30 | annotations: 31 | pod.alpha.kubernetes.io/initialized: "true" 32 | spec: 33 | {{- if .Values.zookeeper.affinity }} 34 | affinity: 35 | {{ toYaml .Values.zookeeper.affinity | indent 8 }} 36 | {{- end -}} 37 | {{- if .Values.zookeeper.nodeSelector }} 38 | nodeSelector: 39 | {{ toYaml .Values.zookeeper.nodeSelector | indent 8 }} 40 | {{- end }} 41 | {{- if .Values.zookeeper.tolerations }} 42 | tolerations: 43 | {{ toYaml .Values.zookeeper.tolerations | indent 8 }} 44 | {{- end }} 45 | containers: 46 | - name: k8szk 47 | imagePullPolicy: Always 48 | image: "{{ .Values.zookeeper.repository }}:{{ .Values.zookeeper.tag }}" 49 | ports: 50 | - containerPort: 2181 51 | name: client 52 | - containerPort: 2888 53 | name: server 54 | - containerPort: 3888 55 | name: leader-election 56 | env: 57 | - name : ZK_ENSEMBLE 58 | value: "{{range $i, $e := until (atoi (printf "%d" (int64 .Values.zookeeper.replicaCount))) }}zk-{{$i}};{{end}}" 59 | - name : ZK_HEAP_SIZE 60 | value: "512M" 61 | - name : ZK_TICK_TIME 62 | value: "2000" 63 | - name : ZK_INIT_LIMIT 64 | value: "10" 65 | - name : ZK_SYNC_LIMIT 66 | value: "5" 67 | - name : ZK_MAX_CLIENT_CNXNS 68 | value: "60" 69 | - name: ZK_SNAP_RETAIN_COUNT 70 | value: "30" 71 | - name: ZK_PURGE_INTERVAL 72 | value: "1" 73 | - name: ZK_CLIENT_PORT 74 | value: "2181" 75 | - name: ZK_SERVER_PORT 76 | value: "2888" 77 | - name: ZK_ELECTION_PORT 78 | value: "3888" 79 | command: 80 | - sh 81 | - -c 82 | - zkGenConfig.sh && zkServer.sh start-foreground 83 | readinessProbe: 84 | exec: 85 | command: 86 | - "zkOk.sh" 87 | initialDelaySeconds: 15 88 | timeoutSeconds: 5 89 | livenessProbe: 90 | exec: 91 | command: 92 | - "zkOk.sh" 93 | initialDelaySeconds: 15 94 | timeoutSeconds: 5 95 | volumeMounts: 96 | - name: zookeeper-data 97 | mountPath: {{ .Values.zookeeper.persistence.mountPath }} 98 | resources: 99 | {{ toYaml .Values.zookeeper.resources | indent 12 }} 100 | securityContext: 101 | runAsUser: 1000 102 | fsGroup: 1000 103 | 104 | volumeClaimTemplates: 105 | - metadata: 106 | name: zookeeper-data 107 | spec: 108 | accessModes: 109 | {{- range .Values.zookeeper.persistence.accessModes }} 110 | - {{ . | quote }} 111 | {{- end }} 112 | resources: 113 | requests: 114 | storage: {{ .Values.zookeeper.persistence.size }} 115 | -------------------------------------------------------------------------------- /clickhouse/templates/configd.yaml: -------------------------------------------------------------------------------- 1 | {{- $root := . -}} 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: clickhouse-configd 6 | labels: 7 | app: clickhouse-configd 8 | data: 9 | remote_servers.xml: |- 10 | 11 | 12 | 13 | 14 | true 15 | {{range $i, $e := until (atoi (printf "%d" (int64 .Values.clickhouse.replicaCount))) }} 16 | 17 | default 18 | clickhouse-{{$i}}.clickhouse.{{ $root.Values.clusterDNS }} 19 | 9000 20 | 21 | {{end}} 22 | 23 | 24 | 25 | 26 | zookeeper.xml: |- 27 | 28 | 29 | {{range $i, $zk := until (atoi (printf "%d" (int64 .Values.zookeeper.replicaCount))) }} 30 | 31 | zk-{{$i}}.zk.{{ $root.Values.clusterDNS }} 32 | 2181 33 | 34 | {{end}} 35 | 36 | 37 | graphite.xml: |- 38 | 39 | {{ if .Values.graphite.enabled }} 40 | 41 | graphite-lb.{{ .Values.clusterDNS }} 42 | 2003 43 | 0.1 44 | 60 45 | one_min_cr_plain 46 | 47 | true 48 | true 49 | true 50 | 51 | 52 | graphite-lb.{{ .Values.clusterDNS }} 53 | 2003 54 | 0.1 55 | 1 56 | one_sec_cr_plain 57 | 58 | true 59 | true 60 | false 61 | 62 | {{ end }} 63 | 64 | users.xml: |- 65 | 66 | 67 | 68 | 10000000000 69 | 0 70 | random 71 | 72 | 73 | 10000000000 74 | 0 75 | random 76 | 1 77 | 78 | 79 | 80 | 81 | {{ .Values.clickhouse.writerPass }} 82 | writer 83 | default 84 | 85 | ::/0 86 | 87 | 88 | 89 | {{ .Values.clickhouse.readerPass }} 90 | reader 91 | default 92 | 93 | default 94 | system 95 | 96 | 97 | ::/0 98 | 99 | 100 | 101 | 102 | 103 | 104 | 3600 105 | 0 106 | 0 107 | 0 108 | 0 109 | 0 110 | 111 | 112 | 113 | --------------------------------------------------------------------------------