Skip to content

Commit fc04cc3

Browse files
authored
Merge pull request #141 from Altinity/0.4.3
0.4.3
2 parents 3277cef + cdb0f3c commit fc04cc3

22 files changed

+285
-94
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# === Builder ===
22

3-
FROM golang:1.12 AS builder
3+
FROM golang:1.12.7 AS builder
44

55
RUN apt-get update && apt-get install -y -q apt-utils && apt-get install -y -q gettext-base
66
WORKDIR $GOPATH/src/github.com/altinity/clickhouse-operator

docs/custom_resource_explained.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,18 @@ clickhouse-installation-max 23h
4646
```yaml
4747
zookeeper:
4848
nodes:
49-
- host: zk-statefulset-0.zk-service.default.svc.cluster.local
49+
- host: zookeeper-0.zookeepers.zoo3ns.svc.cluster.local
5050
port: 2181
51-
- host: zk-statefulset-1.zk-service.default.svc.cluster.local
51+
- host: zookeeper-1.zookeepers.zoo3ns.svc.cluster.local
5252
port: 2181
53-
- host: zk-statefulset-2.zk-service.default.svc.cluster.local
53+
- host: zookeeper-2.zookeepers.zoo3ns.svc.cluster.local
5454
port: 2181
55+
session_timeout_ms: 30000
56+
operation_timeout_ms: 10000
57+
root: /path/to/zookeeper/node
58+
identity: user:password
5559
```
56-
`.spec.configuration.zookeeper` refers to [<yandex><zookeeper></zookeeper></yandex>](https://clickhouse.yandex/docs/en/operations/table_engines/replication/) config section
60+
`.spec.configuration.zookeeper` refers to [<yandex><zookeeper></zookeeper></yandex>](https://clickhouse.yandex/docs/en/single/index.html?#server-settings_zookeeper) config section
5761

5862
## .spec.configuration.users
5963
```yaml

docs/examples/03-settings-01.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,15 @@ spec:
3333
test_quota/interval/duration: "3600"
3434
settings:
3535
compression/case/method: zstd
36+
disable_internal_dns_cache: 1
37+
files:
38+
dict1.xml: |
39+
<yandex>
40+
<!-- ref to file /etc/clickhouse-data/config.d/source1.csv -->
41+
</yandex>
42+
source1.csv: |
43+
a1,b1,c1,d1
44+
a2,b2,c2,d2
3645
clusters:
3746
- name: "standard"
3847
layout:

docs/examples/04-zookeeper-replication-02-medium.yaml renamed to docs/examples/04-zookeeper-replication-02-detailed.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ spec:
1212
port: 2181
1313
- host: zookeeper-2.zookeepers.zoo3ns
1414
port: 2181
15+
session_timeout_ms: 30000
16+
operation_timeout_ms: 10000
17+
root: /path/to/zookeeper/node
18+
identity: user:password
1519
clusters:
1620
- name: replcluster
1721
layout:

docs/examples/1.yaml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
apiVersion: "clickhouse.altinity.com/v1"
2+
kind: "ClickHouseInstallation"
3+
metadata:
4+
name: "verityprod"
5+
namespace: dev
6+
spec:
7+
defaults:
8+
replicasUseFQDN: "0"
9+
distributedDDL:
10+
profile: default
11+
templates:
12+
podTemplate: clickhouse-template
13+
volumeClaimTemplate: aws-ebs-volume-claim
14+
serviceTemplate: chi-service-template
15+
16+
configuration:
17+
settings:
18+
compression/case/method: zstd
19+
users:
20+
verity_prod/password: "verity"
21+
verity_prod/networks/ip: "::/0"
22+
verity_prod/profile: "default"
23+
verity_prod/allow_databases/database:
24+
- "veritytest"
25+
- "verityprod"
26+
clusters:
27+
- name: replicas-only
28+
templates:
29+
podTemplate: clickhouse-template
30+
volumeClaimTemplate: aws-ebs-volume-claim
31+
layout:
32+
replicasCount: 1
33+
34+
templates:
35+
serviceTemplates:
36+
- name: chi-service-template
37+
generateName: "service-{chi}"
38+
metadata:
39+
annotations:
40+
external-dns.alpha.kubernetes.io/hostname: XXXXXXXXXXXXXXXXXXXX.
41+
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
42+
service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
43+
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
44+
service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy: ELBSecurityPolicy-TLS-1-2-2017-01
45+
spec:
46+
ports:
47+
- name: http
48+
port: 8123
49+
- name: client
50+
port: 9000
51+
type: LoadBalancer
52+
53+
volumeClaimTemplates:
54+
- name: aws-ebs-volume-claim
55+
spec:
56+
# storageClassName: ebs-volume-class
57+
accessModes:
58+
- ReadWriteOnce
59+
resources:
60+
requests:
61+
storage: 10Gi
62+
63+
podTemplates:
64+
- name: clickhouse-template
65+
metadata:
66+
labels:
67+
app: clickhouse
68+
spec:
69+
containers:
70+
- name: clickhouse
71+
image: yandex/clickhouse-server
72+
ports:
73+
- name: http
74+
containerPort: 8123
75+
- name: client
76+
containerPort: 9000
77+
volumeMounts:
78+
- name: aws-ebs-volume-claim
79+
mountPath: /var/lib/clickhouse
80+
# nodeSelector:
81+
# beta.kubernetes.io/instance-type: r5a.xlarge
82+

docs/examples/99-clickhouseinstallation-max.yaml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,18 @@ spec:
1515
serviceTemplate: chi-service-template
1616

1717
configuration:
18-
s zookeeper:
18+
zookeeper:
1919
nodes:
2020
- host: zookeeper-0.zookeepers.zoo3ns.svc.cluster.local
2121
port: 2181
2222
- host: zookeeper-1.zookeepers.zoo3ns.svc.cluster.local
2323
port: 2181
2424
- host: zookeeper-2.zookeepers.zoo3ns.svc.cluster.local
2525
port: 2181
26+
session_timeout_ms: 30000
27+
operation_timeout_ms: 10000
28+
root: /path/to/zookeeper/node
29+
identity: user:password
2630
users:
2731
readonly/profile: readonly
2832
# <users>
@@ -67,6 +71,16 @@ s zookeeper:
6771
# <method>zstd</method>
6872
# </case>
6973
# </compression>
74+
disable_internal_dns_cache: 1
75+
# <disable_internal_dns_cache>1</disable_internal_dns_cache>
76+
files:
77+
dict1.xml: |
78+
<yandex>
79+
<!-- ref to file /etc/clickhouse-data/config.d/source1.csv -->
80+
</yandex>
81+
source1.csv: |
82+
a1,b1,c1,d1
83+
a2,b2,c2,d2
7084
7185
clusters:
7286

docs/examples/label_nodes.sh

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
#!/bin/bash
22

3+
# Get all nodes with output header
4+
# Skip master node
5+
# Skip output header
6+
# Extract node names
7+
# Label each node
38
kubectl get nodes | \
49
grep -v master | \
5-
awk '{print $1}' | \
610
tail -n +2 | \
7-
while read -r line; do
8-
NODE=$line
9-
#kubectl label nodes <node-name> <label-key>=<label-value>
10-
#kubectl label nodes --overwrite=true $NODE clickhouse=allow
11-
kubectl label nodes $NODE clickhouse=allow
11+
awk '{print $1}' | \
12+
while read -r LINE; do
13+
# Label each node
14+
NODE="${LINE}"
15+
#kubectl label nodes <node-name> <label-key>=<label-value>
16+
#kubectl label nodes --overwrite=true "${NODE}" clickhouse=allow
17+
kubectl label nodes "${NODE}" clickhouse=allow
1218
done
13-

manifests/dev/clickhouse-operator-template-01-section-crd.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,14 @@ spec:
8686
port:
8787
type: integer
8888
minimum: 1
89+
session_timeout_ms:
90+
type: integer
91+
operation_timeout_ms:
92+
type: integer
93+
root:
94+
type: string
95+
identity:
96+
type: string
8997
users:
9098
type: object
9199
profiles:
@@ -94,6 +102,8 @@ spec:
94102
type: object
95103
settings:
96104
type: object
105+
files:
106+
type: object
97107
clusters:
98108
type: array
99109
items:

manifests/operator/clickhouse-operator-install.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,14 @@ spec:
8686
port:
8787
type: integer
8888
minimum: 1
89+
session_timeout_ms:
90+
type: integer
91+
operation_timeout_ms:
92+
type: integer
93+
root:
94+
type: string
95+
identity:
96+
type: string
8997
users:
9098
type: object
9199
profiles:
@@ -94,6 +102,8 @@ spec:
94102
type: object
95103
settings:
96104
type: object
105+
files:
106+
type: object
97107
clusters:
98108
type: array
99109
items:

pkg/apis/clickhouse.altinity.com/v1/type_chi.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ func (chi *ClickHouseInstallation) StatusFill(endpoint string, pods []string) {
3030
chi.Status.IsKnown = 1
3131
chi.Status.Version = version.Version
3232
chi.Status.ClustersCount = chi.ClustersCount()
33-
chi.Status.ReplicasCount = chi.ReplicasCount()
33+
chi.Status.ShardsCount = chi.ShardsCount()
34+
chi.Status.ReplicasCount = chi.ReplicasCount()/chi.ShardsCount()
3435
chi.Status.Pods = pods
3536
chi.Status.Endpoint = endpoint
3637
}
@@ -321,6 +322,16 @@ func (chi *ClickHouseInstallation) ReplicasCount() int {
321322
return count
322323
}
323324

325+
func (chi *ClickHouseInstallation) ShardsCount() int {
326+
count := 0
327+
chi.WalkShards(func(replica *ChiShard) error {
328+
count++
329+
return nil
330+
})
331+
return count
332+
}
333+
334+
324335
// GetPodTemplate gets ChiPodTemplate by name
325336
func (chi *ClickHouseInstallation) GetPodTemplate(name string) (*ChiPodTemplate, bool) {
326337
if chi.Spec.Templates.PodTemplatesIndex == nil {

0 commit comments

Comments
 (0)