@r8s/crds 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/crds/certmanager-certificate.yaml +794 -0
- package/crds/certmanager-clusterissuer.yaml +3739 -0
- package/crds/clickhouse-installation.yaml +1847 -0
- package/crds/cnpg-cluster.yaml +6794 -0
- package/crds/cnpg-pooler.yaml +9311 -0
- package/crds/cnpg-scheduledbackup.yaml +191 -0
- package/crds/envoy-backendtrafficpolicy.yaml +1 -0
- package/crds/envoy-clienttrafficpolicy.yaml +1 -0
- package/crds/envoy-envoyproxy.yaml +1 -0
- package/crds/envoy-proxy.yaml +16626 -0
- package/crds/envoy-securitypolicy.yaml +1 -0
- package/crds/externaldns-endpoint.yaml +94 -0
- package/crds/gatewayapi-gateway.yaml +2253 -0
- package/crds/gatewayapi-httproute.yaml +5643 -0
- package/crds/keycloak-keycloak.yaml +3192 -0
- package/crds/keycloak-realmimport.yaml +2878 -0
- package/crds/logging-flow.yaml +1768 -0
- package/crds/logging-logging.yaml +16770 -0
- package/crds/logging-output.yaml +14658 -0
- package/crds/loki-lokistack.yaml +5390 -0
- package/crds/prometheus-alertmanager.yaml +10013 -0
- package/crds/prometheus-podmonitor.yaml +741 -0
- package/crds/prometheus-prometheus.yaml +13928 -0
- package/crds/prometheus-prometheusrule.yaml +267 -0
- package/crds/prometheus-scrapeconfig.yaml +12938 -0
- package/crds/prometheus-servicemonitor.yaml +764 -0
- package/crds/prometheus-thanosruler.yaml +9795 -0
- package/crds/redis-cluster.yaml +7862 -0
- package/crds/redis-failover.yaml +1 -0
- package/crds/redis-replication.yaml +5593 -0
- package/crds/velero-backups.yaml +630 -0
- package/crds/velero-backupstoragelocations.yaml +174 -0
- package/crds/velero-schedules.yaml +584 -0
- package/dist/generated/cert-manager.d.ts +873 -0
- package/dist/generated/cert-manager.d.ts.map +1 -0
- package/dist/generated/cert-manager.js +24 -0
- package/dist/generated/cert-manager.js.map +1 -0
- package/dist/generated/clickhouse.d.ts +692 -0
- package/dist/generated/clickhouse.d.ts.map +1 -0
- package/dist/generated/clickhouse.js +14 -0
- package/dist/generated/clickhouse.js.map +1 -0
- package/dist/generated/externaldns.d.ts +47 -0
- package/dist/generated/externaldns.d.ts.map +1 -0
- package/dist/generated/externaldns.js +14 -0
- package/dist/generated/externaldns.js.map +1 -0
- package/dist/generated/gateway.d.ts +2396 -0
- package/dist/generated/gateway.d.ts.map +1 -0
- package/dist/generated/gateway.js +34 -0
- package/dist/generated/gateway.js.map +1 -0
- package/dist/generated/index.d.ts +24 -0
- package/dist/generated/index.d.ts.map +1 -0
- package/dist/generated/index.js +61 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/keycloak.d.ts +1607 -0
- package/dist/generated/keycloak.d.ts.map +1 -0
- package/dist/generated/keycloak.js +24 -0
- package/dist/generated/keycloak.js.map +1 -0
- package/dist/generated/logging.d.ts +3487 -0
- package/dist/generated/logging.d.ts.map +1 -0
- package/dist/generated/logging.js +34 -0
- package/dist/generated/logging.js.map +1 -0
- package/dist/generated/loki.d.ts +578 -0
- package/dist/generated/loki.d.ts.map +1 -0
- package/dist/generated/loki.js +14 -0
- package/dist/generated/loki.js.map +1 -0
- package/dist/generated/monitoring.d.ts +4230 -0
- package/dist/generated/monitoring.d.ts.map +1 -0
- package/dist/generated/monitoring.js +74 -0
- package/dist/generated/monitoring.js.map +1 -0
- package/dist/generated/operators.d.ts +18 -0
- package/dist/generated/operators.d.ts.map +1 -0
- package/dist/generated/operators.js +191 -0
- package/dist/generated/operators.js.map +1 -0
- package/dist/generated/postgresql.d.ts +2820 -0
- package/dist/generated/postgresql.d.ts.map +1 -0
- package/dist/generated/postgresql.js +34 -0
- package/dist/generated/postgresql.js.map +1 -0
- package/dist/generated/redis.d.ts +1253 -0
- package/dist/generated/redis.d.ts.map +1 -0
- package/dist/generated/redis.js +24 -0
- package/dist/generated/redis.js.map +1 -0
- package/dist/generated/velero.d.ts +351 -0
- package/dist/generated/velero.d.ts.map +1 -0
- package/dist/generated/velero.js +34 -0
- package/dist/generated/velero.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/operators.yaml +196 -0
- package/package.json +49 -0
|
@@ -0,0 +1,1847 @@
|
|
|
1
|
+
# Template Parameters:
|
|
2
|
+
#
|
|
3
|
+
# KIND=ClickHouseInstallation
|
|
4
|
+
# SINGULAR=clickhouseinstallation
|
|
5
|
+
# PLURAL=clickhouseinstallations
|
|
6
|
+
# SHORT=chi
|
|
7
|
+
# OPERATOR_VERSION=0.27.2
|
|
8
|
+
#
|
|
9
|
+
apiVersion: apiextensions.k8s.io/v1
|
|
10
|
+
kind: CustomResourceDefinition
|
|
11
|
+
metadata:
|
|
12
|
+
name: clickhouseinstallations.clickhouse.altinity.com
|
|
13
|
+
labels:
|
|
14
|
+
clickhouse.altinity.com/chop: 0.27.2
|
|
15
|
+
spec:
|
|
16
|
+
group: clickhouse.altinity.com
|
|
17
|
+
scope: Namespaced
|
|
18
|
+
names:
|
|
19
|
+
kind: ClickHouseInstallation
|
|
20
|
+
singular: clickhouseinstallation
|
|
21
|
+
plural: clickhouseinstallations
|
|
22
|
+
shortNames:
|
|
23
|
+
- chi
|
|
24
|
+
versions:
|
|
25
|
+
- name: v1
|
|
26
|
+
served: true
|
|
27
|
+
storage: true
|
|
28
|
+
additionalPrinterColumns:
|
|
29
|
+
- name: status
|
|
30
|
+
type: string
|
|
31
|
+
description: Resource status
|
|
32
|
+
jsonPath: .status.status
|
|
33
|
+
- name: version
|
|
34
|
+
type: string
|
|
35
|
+
description: Operator version
|
|
36
|
+
priority: 1 # show in wide view
|
|
37
|
+
jsonPath: .status.chop-version
|
|
38
|
+
- name: clusters
|
|
39
|
+
type: integer
|
|
40
|
+
description: Clusters count
|
|
41
|
+
jsonPath: .status.clusters
|
|
42
|
+
- name: shards
|
|
43
|
+
type: integer
|
|
44
|
+
description: Shards count
|
|
45
|
+
priority: 1 # show in wide view
|
|
46
|
+
jsonPath: .status.shards
|
|
47
|
+
- name: hosts
|
|
48
|
+
type: integer
|
|
49
|
+
description: Hosts count
|
|
50
|
+
jsonPath: .status.hosts
|
|
51
|
+
- name: taskID
|
|
52
|
+
type: string
|
|
53
|
+
description: TaskID
|
|
54
|
+
priority: 1 # show in wide view
|
|
55
|
+
jsonPath: .status.taskID
|
|
56
|
+
- name: hosts-completed
|
|
57
|
+
type: integer
|
|
58
|
+
description: Completed hosts count
|
|
59
|
+
jsonPath: .status.hostsCompleted
|
|
60
|
+
- name: hosts-updated
|
|
61
|
+
type: integer
|
|
62
|
+
description: Updated hosts count
|
|
63
|
+
priority: 1 # show in wide view
|
|
64
|
+
jsonPath: .status.hostsUpdated
|
|
65
|
+
- name: hosts-added
|
|
66
|
+
type: integer
|
|
67
|
+
description: Added hosts count
|
|
68
|
+
priority: 1 # show in wide view
|
|
69
|
+
jsonPath: .status.hostsAdded
|
|
70
|
+
- name: hosts-deleted
|
|
71
|
+
type: integer
|
|
72
|
+
description: Hosts deleted count
|
|
73
|
+
priority: 1 # show in wide view
|
|
74
|
+
jsonPath: .status.hostsDeleted
|
|
75
|
+
- name: endpoint
|
|
76
|
+
type: string
|
|
77
|
+
description: Client access endpoint
|
|
78
|
+
priority: 1 # show in wide view
|
|
79
|
+
jsonPath: .status.endpoint
|
|
80
|
+
- name: age
|
|
81
|
+
type: date
|
|
82
|
+
description: Age of the resource
|
|
83
|
+
# Displayed in all priorities
|
|
84
|
+
jsonPath: .metadata.creationTimestamp
|
|
85
|
+
- name: suspend
|
|
86
|
+
type: string
|
|
87
|
+
description: Suspend reconciliation
|
|
88
|
+
# Displayed in all priorities
|
|
89
|
+
jsonPath: .spec.suspend
|
|
90
|
+
subresources:
|
|
91
|
+
status: {}
|
|
92
|
+
schema:
|
|
93
|
+
openAPIV3Schema:
|
|
94
|
+
description: "define a set of Kubernetes resources (StatefulSet, PVC, Service, ConfigMap) which describe behavior one or more clusters"
|
|
95
|
+
type: object
|
|
96
|
+
required:
|
|
97
|
+
- spec
|
|
98
|
+
properties:
|
|
99
|
+
apiVersion:
|
|
100
|
+
description: |
|
|
101
|
+
APIVersion defines the versioned schema of this representation
|
|
102
|
+
of an object. Servers should convert recognized schemas to the latest
|
|
103
|
+
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
|
104
|
+
type: string
|
|
105
|
+
kind:
|
|
106
|
+
description: |
|
|
107
|
+
Kind is a string value representing the REST resource this
|
|
108
|
+
object represents. Servers may infer this from the endpoint the client
|
|
109
|
+
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
|
110
|
+
type: string
|
|
111
|
+
metadata:
|
|
112
|
+
type: object
|
|
113
|
+
status:
|
|
114
|
+
type: object
|
|
115
|
+
description: |
|
|
116
|
+
Status contains many fields like a normalized configuration, clickhouse-operator version, current action and all applied action list, current taskID and all applied taskIDs and other
|
|
117
|
+
properties:
|
|
118
|
+
chop-version:
|
|
119
|
+
type: string
|
|
120
|
+
description: "Operator version"
|
|
121
|
+
chop-commit:
|
|
122
|
+
type: string
|
|
123
|
+
description: "Operator git commit SHA"
|
|
124
|
+
chop-date:
|
|
125
|
+
type: string
|
|
126
|
+
description: "Operator build date"
|
|
127
|
+
chop-ip:
|
|
128
|
+
type: string
|
|
129
|
+
description: "IP address of the operator's pod which managed this resource"
|
|
130
|
+
clusters:
|
|
131
|
+
type: integer
|
|
132
|
+
minimum: 0
|
|
133
|
+
description: "Clusters count"
|
|
134
|
+
shards:
|
|
135
|
+
type: integer
|
|
136
|
+
minimum: 0
|
|
137
|
+
description: "Shards count"
|
|
138
|
+
replicas:
|
|
139
|
+
type: integer
|
|
140
|
+
minimum: 0
|
|
141
|
+
description: "Replicas count"
|
|
142
|
+
hosts:
|
|
143
|
+
type: integer
|
|
144
|
+
minimum: 0
|
|
145
|
+
description: "Hosts count"
|
|
146
|
+
status:
|
|
147
|
+
type: string
|
|
148
|
+
description: "Status"
|
|
149
|
+
taskID:
|
|
150
|
+
type: string
|
|
151
|
+
description: "Current task id"
|
|
152
|
+
taskIDsStarted:
|
|
153
|
+
type: array
|
|
154
|
+
description: "Started task ids"
|
|
155
|
+
nullable: true
|
|
156
|
+
items:
|
|
157
|
+
type: string
|
|
158
|
+
taskIDsCompleted:
|
|
159
|
+
type: array
|
|
160
|
+
description: "Completed task ids"
|
|
161
|
+
nullable: true
|
|
162
|
+
items:
|
|
163
|
+
type: string
|
|
164
|
+
action:
|
|
165
|
+
type: string
|
|
166
|
+
description: "Action"
|
|
167
|
+
actions:
|
|
168
|
+
type: array
|
|
169
|
+
description: "Actions"
|
|
170
|
+
nullable: true
|
|
171
|
+
items:
|
|
172
|
+
type: string
|
|
173
|
+
error:
|
|
174
|
+
type: string
|
|
175
|
+
description: "Last error"
|
|
176
|
+
errors:
|
|
177
|
+
type: array
|
|
178
|
+
description: "Errors"
|
|
179
|
+
nullable: true
|
|
180
|
+
items:
|
|
181
|
+
type: string
|
|
182
|
+
hostsUnchanged:
|
|
183
|
+
type: integer
|
|
184
|
+
minimum: 0
|
|
185
|
+
description: "Unchanged Hosts count"
|
|
186
|
+
hostsUpdated:
|
|
187
|
+
type: integer
|
|
188
|
+
minimum: 0
|
|
189
|
+
description: "Updated Hosts count"
|
|
190
|
+
hostsAdded:
|
|
191
|
+
type: integer
|
|
192
|
+
minimum: 0
|
|
193
|
+
description: "Added Hosts count"
|
|
194
|
+
hostsCompleted:
|
|
195
|
+
type: integer
|
|
196
|
+
minimum: 0
|
|
197
|
+
description: "Completed Hosts count"
|
|
198
|
+
hostsDeleted:
|
|
199
|
+
type: integer
|
|
200
|
+
minimum: 0
|
|
201
|
+
description: "Deleted Hosts count"
|
|
202
|
+
hostsDelete:
|
|
203
|
+
type: integer
|
|
204
|
+
minimum: 0
|
|
205
|
+
description: "About to delete Hosts count"
|
|
206
|
+
pods:
|
|
207
|
+
type: array
|
|
208
|
+
description: "Pods"
|
|
209
|
+
nullable: true
|
|
210
|
+
items:
|
|
211
|
+
type: string
|
|
212
|
+
pod-ips:
|
|
213
|
+
type: array
|
|
214
|
+
description: "Pod IPs"
|
|
215
|
+
nullable: true
|
|
216
|
+
items:
|
|
217
|
+
type: string
|
|
218
|
+
fqdns:
|
|
219
|
+
type: array
|
|
220
|
+
description: "Pods FQDNs"
|
|
221
|
+
nullable: true
|
|
222
|
+
items:
|
|
223
|
+
type: string
|
|
224
|
+
endpoint:
|
|
225
|
+
type: string
|
|
226
|
+
description: "Endpoint"
|
|
227
|
+
endpoints:
|
|
228
|
+
type: array
|
|
229
|
+
description: "All endpoints"
|
|
230
|
+
nullable: true
|
|
231
|
+
items:
|
|
232
|
+
type: string
|
|
233
|
+
generation:
|
|
234
|
+
type: integer
|
|
235
|
+
minimum: 0
|
|
236
|
+
description: "Generation"
|
|
237
|
+
normalized:
|
|
238
|
+
type: object
|
|
239
|
+
description: "Normalized resource requested"
|
|
240
|
+
nullable: true
|
|
241
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
242
|
+
normalizedCompleted:
|
|
243
|
+
type: object
|
|
244
|
+
description: "Normalized resource completed"
|
|
245
|
+
nullable: true
|
|
246
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
247
|
+
actionPlan:
|
|
248
|
+
type: object
|
|
249
|
+
description: "Action Plan"
|
|
250
|
+
nullable: true
|
|
251
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
252
|
+
hostsWithTablesCreated:
|
|
253
|
+
type: array
|
|
254
|
+
description: "List of hosts with tables created by the operator"
|
|
255
|
+
nullable: true
|
|
256
|
+
items:
|
|
257
|
+
type: string
|
|
258
|
+
hostsWithReplicaCaughtUp:
|
|
259
|
+
type: array
|
|
260
|
+
description: "List of hosts with replica caught up"
|
|
261
|
+
nullable: true
|
|
262
|
+
items:
|
|
263
|
+
type: string
|
|
264
|
+
usedTemplates:
|
|
265
|
+
type: array
|
|
266
|
+
description: "List of templates used to build this CHI"
|
|
267
|
+
nullable: true
|
|
268
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
269
|
+
items:
|
|
270
|
+
type: object
|
|
271
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
272
|
+
spec:
|
|
273
|
+
type: object
|
|
274
|
+
# x-kubernetes-preserve-unknown-fields: true
|
|
275
|
+
description: |
|
|
276
|
+
Specification of the desired behavior of one or more ClickHouse clusters
|
|
277
|
+
More info: https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md
|
|
278
|
+
properties:
|
|
279
|
+
taskID:
|
|
280
|
+
type: string
|
|
281
|
+
description: |
|
|
282
|
+
Allows to define custom taskID for CHI update and watch status of this update execution.
|
|
283
|
+
Displayed in all .status.taskID* fields.
|
|
284
|
+
By default (if not filled) every update of CHI manifest will generate random taskID
|
|
285
|
+
stop: &TypeStringBool
|
|
286
|
+
description: |
|
|
287
|
+
Allows to stop all ClickHouse clusters defined in a CHI.
|
|
288
|
+
Works as the following:
|
|
289
|
+
- When `stop` is `1` operator sets `Replicas: 0` in each StatefulSet. Thie leads to having all `Pods` and `Service` deleted. All PVCs are kept intact.
|
|
290
|
+
- When `stop` is `0` operator sets `Replicas: 1` and `Pod`s and `Service`s will created again and all retained PVCs will be attached to `Pod`s.
|
|
291
|
+
# StringBool is polymorphic — accepts native YAML bool (true/false),
|
|
292
|
+
# integer (0/1), or string from the recognized vocabulary
|
|
293
|
+
# (true/True/TRUE, yes/Yes, on/On, 1, enable/enabled, and their
|
|
294
|
+
# false/no/off/0/disable/disabled counterparts). Validation moves
|
|
295
|
+
# into the operator: pkg/apis/common/types StringBool.UnmarshalJSON
|
|
296
|
+
# normalizes input, IsValid() rejects garbage at normalize time.
|
|
297
|
+
# Structural-schema rules don't natively support bool|int|string
|
|
298
|
+
# union, so we use x-kubernetes-preserve-unknown-fields: true as
|
|
299
|
+
# the documented escape hatch (k8s apiextensions.k8s.io/v1).
|
|
300
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
301
|
+
restart:
|
|
302
|
+
type: string
|
|
303
|
+
description: |
|
|
304
|
+
In case 'RollingUpdate' specified, the operator will always restart ClickHouse pods during reconcile.
|
|
305
|
+
This options is used in rare cases when force restart is required and is typically removed after the use in order to avoid unneeded restarts.
|
|
306
|
+
enum:
|
|
307
|
+
# both humped and all-lowercase accepted
|
|
308
|
+
- ""
|
|
309
|
+
- "RollingUpdate"
|
|
310
|
+
- "rollingupdate"
|
|
311
|
+
suspend:
|
|
312
|
+
!!merge <<: *TypeStringBool
|
|
313
|
+
description: |
|
|
314
|
+
Suspend reconciliation of resources managed by a ClickHouse Installation.
|
|
315
|
+
Works as the following:
|
|
316
|
+
- When `suspend` is `true` operator stops reconciling all resources.
|
|
317
|
+
- When `suspend` is `false` or not set, operator reconciles all resources.
|
|
318
|
+
troubleshoot:
|
|
319
|
+
!!merge <<: *TypeStringBool
|
|
320
|
+
description: |
|
|
321
|
+
Allows to troubleshoot Pods during CrashLoopBack state.
|
|
322
|
+
This may happen when wrong configuration applied, in this case `clickhouse-server` wouldn't start.
|
|
323
|
+
Command within ClickHouse container is modified with `sleep` in order to avoid quick restarts
|
|
324
|
+
and give time to troubleshoot via CLI.
|
|
325
|
+
Liveness and Readiness probes are disabled as well.
|
|
326
|
+
namespaceDomainPattern:
|
|
327
|
+
type: string
|
|
328
|
+
description: |
|
|
329
|
+
Custom domain pattern which will be used for DNS names of `Service` or `Pod`.
|
|
330
|
+
Typical use scenario - custom cluster domain in Kubernetes cluster
|
|
331
|
+
Example: %s.svc.my.test
|
|
332
|
+
templating:
|
|
333
|
+
type: object
|
|
334
|
+
# nullable: true
|
|
335
|
+
description: |
|
|
336
|
+
Optional, applicable inside ClickHouseInstallationTemplate only.
|
|
337
|
+
Defines current ClickHouseInstallationTemplate application options to target ClickHouseInstallation(s)."
|
|
338
|
+
properties:
|
|
339
|
+
policy:
|
|
340
|
+
type: string
|
|
341
|
+
description: |
|
|
342
|
+
When defined as `auto` inside ClickhouseInstallationTemplate, this ClickhouseInstallationTemplate
|
|
343
|
+
will be auto-added into ClickHouseInstallation, selectable by `chiSelector`.
|
|
344
|
+
Default value is `manual`, meaning ClickHouseInstallation should request this ClickhouseInstallationTemplate explicitly.
|
|
345
|
+
enum:
|
|
346
|
+
- ""
|
|
347
|
+
- "Auto"
|
|
348
|
+
- "auto"
|
|
349
|
+
- "Manual"
|
|
350
|
+
- "manual"
|
|
351
|
+
chiSelector:
|
|
352
|
+
type: object
|
|
353
|
+
description: "Optional, defines selector for ClickHouseInstallation(s) to be templated with ClickhouseInstallationTemplate"
|
|
354
|
+
# nullable: true
|
|
355
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
356
|
+
reconciling: &TypeReconcile
|
|
357
|
+
type: object
|
|
358
|
+
description: "[OBSOLETED] Optional, allows tuning reconciling cycle for ClickhouseInstallation from clickhouse-operator side"
|
|
359
|
+
# nullable: true
|
|
360
|
+
properties:
|
|
361
|
+
policy:
|
|
362
|
+
type: string
|
|
363
|
+
description: |
|
|
364
|
+
DISCUSSED TO BE DEPRECATED
|
|
365
|
+
Syntax sugar
|
|
366
|
+
Overrides all three 'reconcile.host.wait.{exclude, queries, include}' values from the operator's config
|
|
367
|
+
Possible values:
|
|
368
|
+
- wait - should wait to exclude host, complete queries and include host back into the cluster
|
|
369
|
+
- nowait - should NOT wait to exclude host, complete queries and include host back into the cluster
|
|
370
|
+
(case-insensitive)
|
|
371
|
+
enum:
|
|
372
|
+
- ""
|
|
373
|
+
- "Wait"
|
|
374
|
+
- "wait"
|
|
375
|
+
- "NoWait"
|
|
376
|
+
- "nowait"
|
|
377
|
+
configMapPropagationTimeout:
|
|
378
|
+
type: integer
|
|
379
|
+
description: |
|
|
380
|
+
Timeout in seconds for `clickhouse-operator` to wait for modified `ConfigMap` to propagate into the `Pod`
|
|
381
|
+
More details: https://kubernetes.io/docs/concepts/configuration/configmap/#mounted-configmaps-are-updated-automatically
|
|
382
|
+
minimum: 0
|
|
383
|
+
maximum: 3600
|
|
384
|
+
cleanup:
|
|
385
|
+
type: object
|
|
386
|
+
description: "Optional, defines behavior for cleanup Kubernetes resources during reconcile cycle"
|
|
387
|
+
# nullable: true
|
|
388
|
+
properties:
|
|
389
|
+
unknownObjects:
|
|
390
|
+
type: object
|
|
391
|
+
description: |
|
|
392
|
+
Describes what clickhouse-operator should do with found Kubernetes resources which should be managed by clickhouse-operator,
|
|
393
|
+
but do not have `ownerReference` to any currently managed `ClickHouseInstallation` resource.
|
|
394
|
+
Default behavior is `Delete`"
|
|
395
|
+
# nullable: true
|
|
396
|
+
properties:
|
|
397
|
+
statefulSet: &TypeObjectsCleanup
|
|
398
|
+
type: string
|
|
399
|
+
description: "Behavior policy for unknown StatefulSet, `Delete` by default (case-insensitive)"
|
|
400
|
+
enum:
|
|
401
|
+
# List ObjectsCleanupXXX constants from model (both humped and all-lowercase accepted)
|
|
402
|
+
- ""
|
|
403
|
+
- "Retain"
|
|
404
|
+
- "retain"
|
|
405
|
+
- "Delete"
|
|
406
|
+
- "delete"
|
|
407
|
+
pvc:
|
|
408
|
+
type: string
|
|
409
|
+
!!merge <<: *TypeObjectsCleanup
|
|
410
|
+
description: "Behavior policy for unknown PVC, `Delete` by default"
|
|
411
|
+
configMap:
|
|
412
|
+
!!merge <<: *TypeObjectsCleanup
|
|
413
|
+
description: "Behavior policy for unknown ConfigMap, `Delete` by default"
|
|
414
|
+
service:
|
|
415
|
+
!!merge <<: *TypeObjectsCleanup
|
|
416
|
+
description: "Behavior policy for unknown Service, `Delete` by default"
|
|
417
|
+
reconcileFailedObjects:
|
|
418
|
+
type: object
|
|
419
|
+
description: |
|
|
420
|
+
Describes what clickhouse-operator should do with Kubernetes resources which are failed during reconcile.
|
|
421
|
+
Default behavior is `Retain`"
|
|
422
|
+
# nullable: true
|
|
423
|
+
properties:
|
|
424
|
+
statefulSet:
|
|
425
|
+
!!merge <<: *TypeObjectsCleanup
|
|
426
|
+
description: "Behavior policy for failed StatefulSet, `Retain` by default"
|
|
427
|
+
pvc:
|
|
428
|
+
!!merge <<: *TypeObjectsCleanup
|
|
429
|
+
description: "Behavior policy for failed PVC, `Retain` by default"
|
|
430
|
+
configMap:
|
|
431
|
+
!!merge <<: *TypeObjectsCleanup
|
|
432
|
+
description: "Behavior policy for failed ConfigMap, `Retain` by default"
|
|
433
|
+
service:
|
|
434
|
+
!!merge <<: *TypeObjectsCleanup
|
|
435
|
+
description: "Behavior policy for failed Service, `Retain` by default"
|
|
436
|
+
macros:
|
|
437
|
+
type: object
|
|
438
|
+
description: "macros parameters"
|
|
439
|
+
properties:
|
|
440
|
+
sections:
|
|
441
|
+
type: object
|
|
442
|
+
description: "sections behaviour for macros"
|
|
443
|
+
properties:
|
|
444
|
+
users:
|
|
445
|
+
type: object
|
|
446
|
+
description: "sections behaviour for macros on users"
|
|
447
|
+
properties:
|
|
448
|
+
enabled:
|
|
449
|
+
!!merge <<: *TypeStringBool
|
|
450
|
+
description: "enabled or not"
|
|
451
|
+
profiles:
|
|
452
|
+
type: object
|
|
453
|
+
description: "sections behaviour for macros on profiles"
|
|
454
|
+
properties:
|
|
455
|
+
enabled:
|
|
456
|
+
!!merge <<: *TypeStringBool
|
|
457
|
+
description: "enabled or not"
|
|
458
|
+
quotas:
|
|
459
|
+
type: object
|
|
460
|
+
description: "sections behaviour for macros on quotas"
|
|
461
|
+
properties:
|
|
462
|
+
enabled:
|
|
463
|
+
!!merge <<: *TypeStringBool
|
|
464
|
+
description: "enabled or not"
|
|
465
|
+
settings:
|
|
466
|
+
type: object
|
|
467
|
+
description: "sections behaviour for macros on settings"
|
|
468
|
+
properties:
|
|
469
|
+
enabled:
|
|
470
|
+
!!merge <<: *TypeStringBool
|
|
471
|
+
description: "enabled or not"
|
|
472
|
+
files:
|
|
473
|
+
type: object
|
|
474
|
+
description: "sections behaviour for macros on files"
|
|
475
|
+
properties:
|
|
476
|
+
enabled:
|
|
477
|
+
!!merge <<: *TypeStringBool
|
|
478
|
+
description: "enabled or not"
|
|
479
|
+
runtime: &TypeReconcileRuntime
|
|
480
|
+
type: object
|
|
481
|
+
description: "runtime parameters for clickhouse-operator process which are used during reconcile cycle"
|
|
482
|
+
properties:
|
|
483
|
+
reconcileShardsThreadsNumber:
|
|
484
|
+
type: integer
|
|
485
|
+
minimum: 1
|
|
486
|
+
maximum: 65535
|
|
487
|
+
description: "The maximum number of cluster shards that may be reconciled in parallel, 1 by default"
|
|
488
|
+
reconcileShardsMaxConcurrencyPercent:
|
|
489
|
+
type: integer
|
|
490
|
+
minimum: 0
|
|
491
|
+
maximum: 100
|
|
492
|
+
description: "The maximum percentage of cluster shards that may be reconciled in parallel, 50 percent by default."
|
|
493
|
+
statefulSet: &TypeReconcileStatefulSet
|
|
494
|
+
type: object
|
|
495
|
+
description: "Optional, StatefulSet reconcile behavior tuning"
|
|
496
|
+
properties:
|
|
497
|
+
create:
|
|
498
|
+
type: object
|
|
499
|
+
description: "Behavior during create StatefulSet"
|
|
500
|
+
properties:
|
|
501
|
+
onFailure:
|
|
502
|
+
type: string
|
|
503
|
+
description: |
|
|
504
|
+
What to do in case created StatefulSet is not in 'Ready' after `reconcile.statefulSet.update.timeout` seconds.
|
|
505
|
+
Possible options:
|
|
506
|
+
1. abort - abort the process, do nothing with the problematic StatefulSet, leave it as it is.
|
|
507
|
+
2. delete - delete newly created problematic StatefulSet and follow 'abort' path afterwards.
|
|
508
|
+
3. ignore - ignore an error, pretend nothing happened, continue reconcile and move on to the next StatefulSet.
|
|
509
|
+
enum:
|
|
510
|
+
- ""
|
|
511
|
+
- "Abort"
|
|
512
|
+
- "abort"
|
|
513
|
+
- "Delete"
|
|
514
|
+
- "delete"
|
|
515
|
+
- "Ignore"
|
|
516
|
+
- "ignore"
|
|
517
|
+
update:
|
|
518
|
+
type: object
|
|
519
|
+
description: "Behavior during update StatefulSet"
|
|
520
|
+
properties:
|
|
521
|
+
timeout:
|
|
522
|
+
type: integer
|
|
523
|
+
description: "How many seconds to wait for StatefulSet to be 'Ready' during update"
|
|
524
|
+
minimum: 0
|
|
525
|
+
maximum: 3600
|
|
526
|
+
pollInterval:
|
|
527
|
+
type: integer
|
|
528
|
+
description: "How many seconds to wait between checks for StatefulSet status during update"
|
|
529
|
+
minimum: 1
|
|
530
|
+
maximum: 600
|
|
531
|
+
onFailure:
|
|
532
|
+
type: string
|
|
533
|
+
description: |
|
|
534
|
+
What to do in case updated StatefulSet is not in 'Ready' after `reconcile.statefulSet.update.timeout` seconds.
|
|
535
|
+
Possible options:
|
|
536
|
+
1. abort - abort the process, do nothing with the problematic StatefulSet, leave it as it is.
|
|
537
|
+
2. rollback - delete Pod and rollback StatefulSet to previous Generation. Follow 'abort' path afterwards.
|
|
538
|
+
3. ignore - ignore an error, pretend nothing happened, continue reconcile and move on to the next StatefulSet.
|
|
539
|
+
enum:
|
|
540
|
+
- ""
|
|
541
|
+
- "Abort"
|
|
542
|
+
- "abort"
|
|
543
|
+
- "Rollback"
|
|
544
|
+
- "rollback"
|
|
545
|
+
- "Ignore"
|
|
546
|
+
- "ignore"
|
|
547
|
+
recreate:
|
|
548
|
+
type: object
|
|
549
|
+
description: "Behavior during recreate StatefulSet"
|
|
550
|
+
properties:
|
|
551
|
+
onDataLoss:
|
|
552
|
+
type: string
|
|
553
|
+
description: |
|
|
554
|
+
What to do in case operator needs to recreate StatefulSet due to PVC data loss or missing volumes.
|
|
555
|
+
Possible options:
|
|
556
|
+
1. abort - abort the process, do nothing with the problematic StatefulSet.
|
|
557
|
+
2. recreate - proceed and recreate StatefulSet.
|
|
558
|
+
enum:
|
|
559
|
+
- ""
|
|
560
|
+
- "Abort"
|
|
561
|
+
- "abort"
|
|
562
|
+
- "Recreate"
|
|
563
|
+
- "recreate"
|
|
564
|
+
onUpdateFailure:
|
|
565
|
+
type: string
|
|
566
|
+
description: |
|
|
567
|
+
What to do in case operator needs to recreate StatefulSet due to update failure or StatefulSet not ready.
|
|
568
|
+
Possible options:
|
|
569
|
+
1. abort - abort the process, do nothing with the problematic StatefulSet.
|
|
570
|
+
2. recreate - proceed and recreate StatefulSet.
|
|
571
|
+
enum:
|
|
572
|
+
- ""
|
|
573
|
+
- "Abort"
|
|
574
|
+
- "abort"
|
|
575
|
+
- "Recreate"
|
|
576
|
+
- "recreate"
|
|
577
|
+
host: &TypeReconcileHost
|
|
578
|
+
type: object
|
|
579
|
+
description: |
|
|
580
|
+
Whether the operator during reconcile procedure should wait for a ClickHouse host:
|
|
581
|
+
- to be excluded from a ClickHouse cluster
|
|
582
|
+
- to complete all running queries
|
|
583
|
+
- to be included into a ClickHouse cluster
|
|
584
|
+
respectfully before moving forward
|
|
585
|
+
properties:
|
|
586
|
+
wait:
|
|
587
|
+
type: object
|
|
588
|
+
properties:
|
|
589
|
+
exclude:
|
|
590
|
+
!!merge <<: *TypeStringBool
|
|
591
|
+
queries:
|
|
592
|
+
!!merge <<: *TypeStringBool
|
|
593
|
+
description: "Whether the operator during reconcile procedure should wait for a ClickHouse host to complete all running queries"
|
|
594
|
+
include:
|
|
595
|
+
!!merge <<: *TypeStringBool
|
|
596
|
+
description: "Whether the operator during reconcile procedure should wait for a ClickHouse host to be included into a ClickHouse cluster"
|
|
597
|
+
replicas:
|
|
598
|
+
type: object
|
|
599
|
+
description: "Whether the operator during reconcile procedure should wait for replicas to catch-up"
|
|
600
|
+
properties:
|
|
601
|
+
all:
|
|
602
|
+
!!merge <<: *TypeStringBool
|
|
603
|
+
description: "Whether the operator during reconcile procedure should wait for all replicas to catch-up"
|
|
604
|
+
new:
|
|
605
|
+
!!merge <<: *TypeStringBool
|
|
606
|
+
description: "Whether the operator during reconcile procedure should wait for new replicas to catch-up"
|
|
607
|
+
delay:
|
|
608
|
+
type: integer
|
|
609
|
+
description: "replication max absolute delay to consider replica is not delayed"
|
|
610
|
+
probes:
|
|
611
|
+
type: object
|
|
612
|
+
description: "What probes the operator should wait during host launch procedure"
|
|
613
|
+
properties:
|
|
614
|
+
startup:
|
|
615
|
+
!!merge <<: *TypeStringBool
|
|
616
|
+
description: |
|
|
617
|
+
Whether the operator during host launch procedure should wait for startup probe to succeed.
|
|
618
|
+
In case probe is unspecified wait is assumed to be completed successfully.
|
|
619
|
+
Default option value is to do not wait.
|
|
620
|
+
readiness:
|
|
621
|
+
!!merge <<: *TypeStringBool
|
|
622
|
+
description: |
|
|
623
|
+
Whether the operator during host launch procedure should wait for ready probe to succeed.
|
|
624
|
+
In case probe is unspecified wait is assumed to be completed successfully.
|
|
625
|
+
Default option value is to wait.
|
|
626
|
+
drop:
|
|
627
|
+
type: object
|
|
628
|
+
properties:
|
|
629
|
+
replicas:
|
|
630
|
+
type: object
|
|
631
|
+
description: |
|
|
632
|
+
Whether the operator during reconcile procedure should drop replicas when replica is deleted or recreated
|
|
633
|
+
properties:
|
|
634
|
+
onDelete:
|
|
635
|
+
!!merge <<: *TypeStringBool
|
|
636
|
+
description: |
|
|
637
|
+
Whether the operator during reconcile procedure should drop replicas when replica is deleted
|
|
638
|
+
onLostVolume:
|
|
639
|
+
!!merge <<: *TypeStringBool
|
|
640
|
+
description: |
|
|
641
|
+
Whether the operator during reconcile procedure should drop replicas when replica volume is lost
|
|
642
|
+
active:
|
|
643
|
+
!!merge <<: *TypeStringBool
|
|
644
|
+
description: |
|
|
645
|
+
Whether the operator during reconcile procedure should drop active replicas when replica is deleted or recreated
|
|
646
|
+
hooks: &TypeReconcileHooks
|
|
647
|
+
type: object
|
|
648
|
+
description: "hooks to execute before and after host reconcile"
|
|
649
|
+
properties:
|
|
650
|
+
pre:
|
|
651
|
+
type: array
|
|
652
|
+
description: "actions to execute before reconcile"
|
|
653
|
+
nullable: true
|
|
654
|
+
items: &TypeHookAction
|
|
655
|
+
type: object
|
|
656
|
+
required:
|
|
657
|
+
- events
|
|
658
|
+
properties:
|
|
659
|
+
sql:
|
|
660
|
+
type: object
|
|
661
|
+
properties:
|
|
662
|
+
queries:
|
|
663
|
+
type: array
|
|
664
|
+
nullable: true
|
|
665
|
+
items:
|
|
666
|
+
type: string
|
|
667
|
+
shell:
|
|
668
|
+
type: object
|
|
669
|
+
properties:
|
|
670
|
+
command:
|
|
671
|
+
type: array
|
|
672
|
+
nullable: true
|
|
673
|
+
items:
|
|
674
|
+
type: string
|
|
675
|
+
container:
|
|
676
|
+
type: string
|
|
677
|
+
http:
|
|
678
|
+
type: object
|
|
679
|
+
properties:
|
|
680
|
+
url:
|
|
681
|
+
type: string
|
|
682
|
+
method:
|
|
683
|
+
type: string
|
|
684
|
+
target:
|
|
685
|
+
type: string
|
|
686
|
+
description: "where to execute hook for cluster-level hooks: FirstHost (default), AllHosts, AllShards"
|
|
687
|
+
# Both camelCase and all-lowercase forms are accepted; the
|
|
688
|
+
# runtime normalizes via strings.EqualFold (firstHost == firsthost).
|
|
689
|
+
enum:
|
|
690
|
+
- ""
|
|
691
|
+
- "FirstHost"
|
|
692
|
+
- "firsthost"
|
|
693
|
+
- "AllHosts"
|
|
694
|
+
- "allhosts"
|
|
695
|
+
- "AllShards"
|
|
696
|
+
- "allshards"
|
|
697
|
+
events:
|
|
698
|
+
type: array
|
|
699
|
+
minItems: 1
|
|
700
|
+
description: |
|
|
701
|
+
Reconcile lifecycle events that trigger this hook. Required, must be non-empty.
|
|
702
|
+
The hook is skipped on any reconcile whose classifier does not emit at least one
|
|
703
|
+
of the listed events. Supported values:
|
|
704
|
+
Any - wildcard match: fires on every hook-evaluation point,
|
|
705
|
+
including the pre-delete sweep on the dying host
|
|
706
|
+
HostCreate - first reconcile that creates a host (no ancestor); best
|
|
707
|
+
paired with POST hooks because PRE hooks on first creation
|
|
708
|
+
are skipped (no live pod yet)
|
|
709
|
+
HostUpdate - reconcile that has prior state for the host; catch-all
|
|
710
|
+
for ongoing reconciles
|
|
711
|
+
HostStart - host transitions from stopped to running
|
|
712
|
+
HostStop - host is being stopped (current spec marks it stopped)
|
|
713
|
+
HostConfigRestart - in-place software restart for a configuration change
|
|
714
|
+
HostRollout - pod-template change forces a StatefulSet rollout
|
|
715
|
+
HostShutdown - aggregate: fires whenever the pod is going down for any
|
|
716
|
+
reason (Stop, ConfigRestart, Rollout, or Delete)
|
|
717
|
+
HostDelete - host is being removed from the cluster (downsize); fires
|
|
718
|
+
on the dying host before tear-down. Always emitted
|
|
719
|
+
alongside HostShutdown.
|
|
720
|
+
items:
|
|
721
|
+
type: string
|
|
722
|
+
# Both PascalCase and all-lowercase forms are accepted; the
|
|
723
|
+
# runtime comparison is case-insensitive (strings.EqualFold).
|
|
724
|
+
enum:
|
|
725
|
+
- "Any"
|
|
726
|
+
- "any"
|
|
727
|
+
- "HostCreate"
|
|
728
|
+
- "hostcreate"
|
|
729
|
+
- "HostDelete"
|
|
730
|
+
- "hostdelete"
|
|
731
|
+
- "HostUpdate"
|
|
732
|
+
- "hostupdate"
|
|
733
|
+
- "HostStart"
|
|
734
|
+
- "hoststart"
|
|
735
|
+
- "HostStop"
|
|
736
|
+
- "hoststop"
|
|
737
|
+
- "HostConfigRestart"
|
|
738
|
+
- "hostconfigrestart"
|
|
739
|
+
- "HostRollout"
|
|
740
|
+
- "hostrollout"
|
|
741
|
+
- "HostShutdown"
|
|
742
|
+
- "hostshutdown"
|
|
743
|
+
failurePolicy:
|
|
744
|
+
type: string
|
|
745
|
+
description: |
|
|
746
|
+
Controls what happens when this hook returns an error.
|
|
747
|
+
Fail (default): error propagates — pre-hook aborts reconcile / host deletion.
|
|
748
|
+
Ignore: error is logged and the reconcile continues.
|
|
749
|
+
# Both PascalCase and all-lowercase forms are accepted; the
|
|
750
|
+
# runtime normalizes via strings.EqualFold (Fail == fail).
|
|
751
|
+
enum:
|
|
752
|
+
- "Fail"
|
|
753
|
+
- "fail"
|
|
754
|
+
- "Ignore"
|
|
755
|
+
- "ignore"
|
|
756
|
+
post:
|
|
757
|
+
type: array
|
|
758
|
+
description: "actions to execute after reconcile"
|
|
759
|
+
nullable: true
|
|
760
|
+
items:
|
|
761
|
+
!!merge <<: *TypeHookAction
|
|
762
|
+
cluster:
|
|
763
|
+
type: object
|
|
764
|
+
description: |
|
|
765
|
+
CHI-level cluster reconcile defaults inherited by every cluster's
|
|
766
|
+
spec.configuration.clusters[N].reconcile section. Use this as a single
|
|
767
|
+
place to define cluster-level hooks that should apply to all clusters
|
|
768
|
+
in this CHI; per-cluster hooks (under clusters[N].reconcile.hooks)
|
|
769
|
+
are appended to (and dedup'd against) the inherited set.
|
|
770
|
+
properties:
|
|
771
|
+
hooks:
|
|
772
|
+
type: object
|
|
773
|
+
description: "cluster-level hooks inherited by every cluster"
|
|
774
|
+
properties:
|
|
775
|
+
pre:
|
|
776
|
+
type: array
|
|
777
|
+
description: "actions to execute before each cluster reconcile"
|
|
778
|
+
nullable: true
|
|
779
|
+
items: &TypeClusterHookAction
|
|
780
|
+
type: object
|
|
781
|
+
required:
|
|
782
|
+
- events
|
|
783
|
+
properties:
|
|
784
|
+
sql:
|
|
785
|
+
type: object
|
|
786
|
+
properties:
|
|
787
|
+
queries:
|
|
788
|
+
type: array
|
|
789
|
+
nullable: true
|
|
790
|
+
items:
|
|
791
|
+
type: string
|
|
792
|
+
shell:
|
|
793
|
+
type: object
|
|
794
|
+
properties:
|
|
795
|
+
command:
|
|
796
|
+
type: array
|
|
797
|
+
nullable: true
|
|
798
|
+
items:
|
|
799
|
+
type: string
|
|
800
|
+
container:
|
|
801
|
+
type: string
|
|
802
|
+
http:
|
|
803
|
+
type: object
|
|
804
|
+
properties:
|
|
805
|
+
url:
|
|
806
|
+
type: string
|
|
807
|
+
method:
|
|
808
|
+
type: string
|
|
809
|
+
target:
|
|
810
|
+
type: string
|
|
811
|
+
description: "where to execute hook for cluster-level hooks: FirstHost (default), AllHosts, AllShards"
|
|
812
|
+
# Both camelCase and all-lowercase forms are accepted; the
|
|
813
|
+
# runtime normalizes via strings.EqualFold (firstHost == firsthost).
|
|
814
|
+
enum:
|
|
815
|
+
- ""
|
|
816
|
+
- "FirstHost"
|
|
817
|
+
- "firsthost"
|
|
818
|
+
- "AllHosts"
|
|
819
|
+
- "allhosts"
|
|
820
|
+
- "AllShards"
|
|
821
|
+
- "allshards"
|
|
822
|
+
events:
|
|
823
|
+
type: array
|
|
824
|
+
minItems: 1
|
|
825
|
+
description: |
|
|
826
|
+
Cluster-scope reconcile lifecycle events. Required, non-empty.
|
|
827
|
+
Any - wildcard match: fires on every cluster reconcile pass
|
|
828
|
+
and the cluster delete sweep
|
|
829
|
+
ClusterCreate - all hosts in the cluster are new (no ancestor); fires
|
|
830
|
+
only on the first reconcile of a brand-new cluster
|
|
831
|
+
ClusterReconcile - ongoing reconcile pass over an existing cluster (at
|
|
832
|
+
least one host has prior state). Fires on every
|
|
833
|
+
operator reconcile cycle the upstream gates allow,
|
|
834
|
+
including taskID-only force-reconciles. NOT a "spec
|
|
835
|
+
changed" signal.
|
|
836
|
+
ClusterDelete - cluster is being removed (delete sweep — wiring follow-up)
|
|
837
|
+
items:
|
|
838
|
+
type: string
|
|
839
|
+
# Both PascalCase and all-lowercase forms are accepted; the
|
|
840
|
+
# runtime comparison is case-insensitive (strings.EqualFold).
|
|
841
|
+
enum:
|
|
842
|
+
- "Any"
|
|
843
|
+
- "any"
|
|
844
|
+
- "ClusterCreate"
|
|
845
|
+
- "clustercreate"
|
|
846
|
+
- "ClusterDelete"
|
|
847
|
+
- "clusterdelete"
|
|
848
|
+
- "ClusterReconcile"
|
|
849
|
+
- "clusterreconcile"
|
|
850
|
+
failurePolicy:
|
|
851
|
+
type: string
|
|
852
|
+
description: |
|
|
853
|
+
Controls what happens when this hook returns an error.
|
|
854
|
+
Fail (default) propagates the error; Ignore logs a warning and continues.
|
|
855
|
+
# Both PascalCase and all-lowercase forms are accepted; the
|
|
856
|
+
# runtime normalizes via strings.EqualFold (Fail == fail).
|
|
857
|
+
enum:
|
|
858
|
+
- "Fail"
|
|
859
|
+
- "fail"
|
|
860
|
+
- "Ignore"
|
|
861
|
+
- "ignore"
|
|
862
|
+
post:
|
|
863
|
+
type: array
|
|
864
|
+
description: "actions to execute after each cluster reconcile"
|
|
865
|
+
nullable: true
|
|
866
|
+
items:
|
|
867
|
+
!!merge <<: *TypeClusterHookAction
|
|
868
|
+
reconcile:
|
|
869
|
+
!!merge <<: *TypeReconcile
|
|
870
|
+
description: "Optional, allows tuning reconciling cycle for ClickhouseInstallation from clickhouse-operator side"
|
|
871
|
+
defaults:
|
|
872
|
+
type: object
|
|
873
|
+
description: |
|
|
874
|
+
define default behavior for whole ClickHouseInstallation, some behavior can be re-define on cluster, shard and replica level
|
|
875
|
+
More info: https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specdefaults
|
|
876
|
+
# nullable: true
|
|
877
|
+
properties:
|
|
878
|
+
replicasUseFQDN:
|
|
879
|
+
!!merge <<: *TypeStringBool
|
|
880
|
+
description: |
|
|
881
|
+
define should replicas be specified by FQDN in `<host></host>`.
|
|
882
|
+
In case of "no" will use short hostname and clickhouse-server will use kubernetes default suffixes for DNS lookup
|
|
883
|
+
"no" by default
|
|
884
|
+
distributedDDL:
|
|
885
|
+
type: object
|
|
886
|
+
description: |
|
|
887
|
+
allows change `<yandex><distributed_ddl></distributed_ddl></yandex>` settings
|
|
888
|
+
More info: https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#server-settings-distributed_ddl
|
|
889
|
+
# nullable: true
|
|
890
|
+
properties:
|
|
891
|
+
profile:
|
|
892
|
+
type: string
|
|
893
|
+
description: "Settings from this profile will be used to execute DDL queries"
|
|
894
|
+
storageManagement:
|
|
895
|
+
type: object
|
|
896
|
+
description: default storage management options
|
|
897
|
+
properties:
|
|
898
|
+
provisioner: &TypePVCProvisioner
|
|
899
|
+
type: string
|
|
900
|
+
description: "defines `PVC` provisioner - be it StatefulSet or the Operator (case-insensitive)"
|
|
901
|
+
enum:
|
|
902
|
+
- ""
|
|
903
|
+
- "StatefulSet"
|
|
904
|
+
- "statefulset"
|
|
905
|
+
- "Operator"
|
|
906
|
+
- "operator"
|
|
907
|
+
reclaimPolicy: &TypePVCReclaimPolicy
|
|
908
|
+
type: string
|
|
909
|
+
description: |
|
|
910
|
+
defines behavior of `PVC` deletion (case-insensitive).
|
|
911
|
+
`Delete` by default, if `Retain` specified then `PVC` will be kept when deleting StatefulSet
|
|
912
|
+
enum:
|
|
913
|
+
- ""
|
|
914
|
+
- "Retain"
|
|
915
|
+
- "retain"
|
|
916
|
+
- "Delete"
|
|
917
|
+
- "delete"
|
|
918
|
+
templates: &TypeTemplateNames
|
|
919
|
+
type: object
|
|
920
|
+
description: "optional, configuration of the templates names which will use for generate Kubernetes resources according to one or more ClickHouse clusters described in current ClickHouseInstallation (chi) resource"
|
|
921
|
+
# nullable: true
|
|
922
|
+
properties:
|
|
923
|
+
hostTemplate:
|
|
924
|
+
type: string
|
|
925
|
+
description: "optional, template name from chi.spec.templates.hostTemplates, which will apply to configure every `clickhouse-server` instance during render ConfigMap resources which will mount into `Pod`"
|
|
926
|
+
podTemplate:
|
|
927
|
+
type: string
|
|
928
|
+
description: "optional, template name from chi.spec.templates.podTemplates, allows customization each `Pod` resource during render and reconcile each StatefulSet.spec resource described in `chi.spec.configuration.clusters`"
|
|
929
|
+
dataVolumeClaimTemplate:
|
|
930
|
+
type: string
|
|
931
|
+
description: "optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`"
|
|
932
|
+
logVolumeClaimTemplate:
|
|
933
|
+
type: string
|
|
934
|
+
description: "optional, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse log directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`"
|
|
935
|
+
serviceTemplate:
|
|
936
|
+
type: string
|
|
937
|
+
description: "optional, template name from chi.spec.templates.serviceTemplates. used for customization of the `Service` resource, created by `clickhouse-operator` to cover all clusters in whole `chi` resource"
|
|
938
|
+
serviceTemplates:
|
|
939
|
+
type: array
|
|
940
|
+
description: "optional, template names from chi.spec.templates.serviceTemplates. used for customization of the `Service` resources, created by `clickhouse-operator` to cover all clusters in whole `chi` resource"
|
|
941
|
+
nullable: true
|
|
942
|
+
items:
|
|
943
|
+
type: string
|
|
944
|
+
clusterServiceTemplate:
|
|
945
|
+
type: string
|
|
946
|
+
description: "optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each clickhouse cluster described in `chi.spec.configuration.clusters`"
|
|
947
|
+
shardServiceTemplate:
|
|
948
|
+
type: string
|
|
949
|
+
description: "optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each shard inside clickhouse cluster described in `chi.spec.configuration.clusters`"
|
|
950
|
+
replicaServiceTemplate:
|
|
951
|
+
type: string
|
|
952
|
+
description: "optional, template name from chi.spec.templates.serviceTemplates, allows customization for each `Service` resource which will created by `clickhouse-operator` which cover each replica inside each shard inside each clickhouse cluster described in `chi.spec.configuration.clusters`"
|
|
953
|
+
volumeClaimTemplate:
|
|
954
|
+
type: string
|
|
955
|
+
description: "optional, alias for dataVolumeClaimTemplate, template name from chi.spec.templates.volumeClaimTemplates, allows customization each `PVC` which will mount for clickhouse data directory in each `Pod` during render and reconcile every StatefulSet.spec resource described in `chi.spec.configuration.clusters`"
|
|
956
|
+
configuration:
|
|
957
|
+
type: object
|
|
958
|
+
description: "allows configure multiple aspects and behavior for `clickhouse-server` instance and also allows describe multiple `clickhouse-server` clusters inside one `chi` resource"
|
|
959
|
+
# nullable: true
|
|
960
|
+
properties:
|
|
961
|
+
zookeeper: &TypeZookeeperConfig
|
|
962
|
+
type: object
|
|
963
|
+
description: |
|
|
964
|
+
allows configure <yandex><zookeeper>..</zookeeper></yandex> section in each `Pod` during generate `ConfigMap` which will mounted in `/etc/clickhouse-server/config.d/`
|
|
965
|
+
`clickhouse-operator` itself doesn't manage Zookeeper, please install Zookeeper separatelly look examples on https://github.com/Altinity/clickhouse-operator/tree/master/deploy/zookeeper/
|
|
966
|
+
currently, zookeeper (or clickhouse-keeper replacement) used for *ReplicatedMergeTree table engines and for `distributed_ddl`
|
|
967
|
+
More details: https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#server-settings_zookeeper
|
|
968
|
+
# nullable: true
|
|
969
|
+
properties:
|
|
970
|
+
nodes:
|
|
971
|
+
type: array
|
|
972
|
+
description: "describe every available zookeeper cluster node for interaction"
|
|
973
|
+
# nullable: true
|
|
974
|
+
items:
|
|
975
|
+
type: object
|
|
976
|
+
#required:
|
|
977
|
+
# - host
|
|
978
|
+
properties:
|
|
979
|
+
host:
|
|
980
|
+
type: string
|
|
981
|
+
description: "dns name or ip address for Zookeeper node"
|
|
982
|
+
port:
|
|
983
|
+
type: integer
|
|
984
|
+
description: "TCP port which used to connect to Zookeeper node"
|
|
985
|
+
minimum: 0
|
|
986
|
+
maximum: 65535
|
|
987
|
+
secure:
|
|
988
|
+
!!merge <<: *TypeStringBool
|
|
989
|
+
description: "if a secure connection to Zookeeper is required"
|
|
990
|
+
availabilityZone:
|
|
991
|
+
type: string
|
|
992
|
+
description: "availability zone for Zookeeper node"
|
|
993
|
+
keeper:
|
|
994
|
+
type: object
|
|
995
|
+
description: |
|
|
996
|
+
reference to a ClickHouseKeeperInstallation (CHK) resource.
|
|
997
|
+
The operator resolves this to ZooKeeper node addresses automatically.
|
|
998
|
+
properties:
|
|
999
|
+
name:
|
|
1000
|
+
type: string
|
|
1001
|
+
description: "name of the ClickHouseKeeperInstallation custom resource"
|
|
1002
|
+
namespace:
|
|
1003
|
+
type: string
|
|
1004
|
+
description: "namespace of the CHK resource, defaults to the CHI namespace if omitted"
|
|
1005
|
+
serviceType:
|
|
1006
|
+
type: string
|
|
1007
|
+
description: |
|
|
1008
|
+
how to discover keeper endpoints (case-insensitive):
|
|
1009
|
+
Replicas (default) — enumerate per-host services, one ZK node per keeper replica
|
|
1010
|
+
Service — use the CR-level headless service as a single ZK node entry
|
|
1011
|
+
enum:
|
|
1012
|
+
- ""
|
|
1013
|
+
- "Replicas"
|
|
1014
|
+
- "replicas"
|
|
1015
|
+
- "Service"
|
|
1016
|
+
- "service"
|
|
1017
|
+
session_timeout_ms:
|
|
1018
|
+
type: integer
|
|
1019
|
+
description: "session timeout during connect to Zookeeper"
|
|
1020
|
+
operation_timeout_ms:
|
|
1021
|
+
type: integer
|
|
1022
|
+
description: "one operation timeout during Zookeeper transactions"
|
|
1023
|
+
root:
|
|
1024
|
+
type: string
|
|
1025
|
+
description: "optional root znode path inside zookeeper to store ClickHouse related data (replication queue or distributed DDL)"
|
|
1026
|
+
identity:
|
|
1027
|
+
type: string
|
|
1028
|
+
description: "optional access credentials string with `user:password` format used when use digest authorization in Zookeeper"
|
|
1029
|
+
use_compression:
|
|
1030
|
+
!!merge <<: *TypeStringBool
|
|
1031
|
+
description: "Enables compression in Keeper protocol if set to true"
|
|
1032
|
+
users:
|
|
1033
|
+
type: object
|
|
1034
|
+
description: |
|
|
1035
|
+
allows configure <yandex><users>..</users></yandex> section in each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/users.d/`
|
|
1036
|
+
you can configure password hashed, authorization restrictions, database level security row filters etc.
|
|
1037
|
+
More details: https://clickhouse.tech/docs/en/operations/settings/settings-users/
|
|
1038
|
+
Your yaml code will convert to XML, see examples https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specconfigurationusers
|
|
1039
|
+
|
|
1040
|
+
any key could contains `valueFrom` with `secretKeyRef` which allow pass password from kubernetes secrets
|
|
1041
|
+
secret value will pass in `pod.spec.containers.evn`, and generate with from_env=XXX in XML in /etc/clickhouse-server/users.d/chop-generated-users.xml
|
|
1042
|
+
it not allow automatically updates when updates `secret`, change spec.taskID for manually trigger reconcile cycle
|
|
1043
|
+
|
|
1044
|
+
look into https://github.com/Altinity/clickhouse-operator/blob/master/docs/chi-examples/05-settings-01-overview.yaml for examples
|
|
1045
|
+
|
|
1046
|
+
any key with prefix `k8s_secret_` shall has value with format namespace/secret/key or secret/key
|
|
1047
|
+
in this case value from secret will write directly into XML tag during render *-usersd ConfigMap
|
|
1048
|
+
|
|
1049
|
+
any key with prefix `k8s_secret_env` shall has value with format namespace/secret/key or secret/key
|
|
1050
|
+
in this case value from secret will write into environment variable and write to XML tag via from_env=XXX
|
|
1051
|
+
|
|
1052
|
+
look into https://github.com/Altinity/clickhouse-operator/blob/master/docs/chi-examples/05-settings-01-overview.yaml for examples
|
|
1053
|
+
# nullable: true
|
|
1054
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1055
|
+
profiles:
|
|
1056
|
+
type: object
|
|
1057
|
+
description: |
|
|
1058
|
+
allows configure <yandex><profiles>..</profiles></yandex> section in each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/users.d/`
|
|
1059
|
+
you can configure any aspect of settings profile
|
|
1060
|
+
More details: https://clickhouse.tech/docs/en/operations/settings/settings-profiles/
|
|
1061
|
+
Your yaml code will convert to XML, see examples https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specconfigurationprofiles
|
|
1062
|
+
# nullable: true
|
|
1063
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1064
|
+
quotas:
|
|
1065
|
+
type: object
|
|
1066
|
+
description: |
|
|
1067
|
+
allows configure <yandex><quotas>..</quotas></yandex> section in each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/users.d/`
|
|
1068
|
+
you can configure any aspect of resource quotas
|
|
1069
|
+
More details: https://clickhouse.tech/docs/en/operations/quotas/
|
|
1070
|
+
Your yaml code will convert to XML, see examples https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specconfigurationquotas
|
|
1071
|
+
# nullable: true
|
|
1072
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1073
|
+
settings: &TypeSettings
|
|
1074
|
+
type: object
|
|
1075
|
+
description: |
|
|
1076
|
+
allows configure `clickhouse-server` settings inside <yandex>...</yandex> tag in each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/`
|
|
1077
|
+
More details: https://clickhouse.tech/docs/en/operations/settings/settings/
|
|
1078
|
+
Your yaml code will convert to XML, see examples https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#specconfigurationsettings
|
|
1079
|
+
|
|
1080
|
+
any key could contains `valueFrom` with `secretKeyRef` which allow pass password from kubernetes secrets
|
|
1081
|
+
look into https://github.com/Altinity/clickhouse-operator/blob/master/docs/chi-examples/05-settings-01-overview.yaml for examples
|
|
1082
|
+
|
|
1083
|
+
secret value will pass in `pod.spec.env`, and generate with from_env=XXX in XML in /etc/clickhouse-server/config.d/chop-generated-settings.xml
|
|
1084
|
+
it not allow automatically updates when updates `secret`, change spec.taskID for manually trigger reconcile cycle
|
|
1085
|
+
# nullable: true
|
|
1086
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1087
|
+
files: &TypeFiles
|
|
1088
|
+
type: object
|
|
1089
|
+
description: |
|
|
1090
|
+
allows define content of any setting file inside each `Pod` during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`
|
|
1091
|
+
every key in this object is the file name
|
|
1092
|
+
every value in this object is the file content
|
|
1093
|
+
you can use `!!binary |` and base64 for binary files, see details here https://yaml.org/type/binary.html
|
|
1094
|
+
each key could contains prefix like {common}, {users}, {hosts} or config.d, users.d, conf.d, wrong prefixes will be ignored, subfolders also will be ignored
|
|
1095
|
+
More details: https://github.com/Altinity/clickhouse-operator/blob/master/docs/chi-examples/05-settings-05-files-nested.yaml
|
|
1096
|
+
|
|
1097
|
+
any key could contains `valueFrom` with `secretKeyRef` which allow pass values from kubernetes secrets
|
|
1098
|
+
secrets will mounted into pod as separate volume in /etc/clickhouse-server/secrets.d/
|
|
1099
|
+
and will automatically update when update secret
|
|
1100
|
+
it useful for pass SSL certificates from cert-manager or similar tool
|
|
1101
|
+
look into https://github.com/Altinity/clickhouse-operator/blob/master/docs/chi-examples/05-settings-01-overview.yaml for examples
|
|
1102
|
+
# nullable: true
|
|
1103
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1104
|
+
clusters:
|
|
1105
|
+
type: array
|
|
1106
|
+
description: |
|
|
1107
|
+
describes clusters layout and allows change settings on cluster-level, shard-level and replica-level
|
|
1108
|
+
every cluster is a set of StatefulSet, one StatefulSet contains only one Pod with `clickhouse-server`
|
|
1109
|
+
all Pods will rendered in <remote_server> part of ClickHouse configs, mounted from ConfigMap as `/etc/clickhouse-server/config.d/chop-generated-remote_servers.xml`
|
|
1110
|
+
Clusters will use for Distributed table engine, more details: https://clickhouse.tech/docs/en/engines/table-engines/special/distributed/
|
|
1111
|
+
If `cluster` contains zookeeper settings (could be inherited from top `chi` level), when you can create *ReplicatedMergeTree tables
|
|
1112
|
+
# nullable: true
|
|
1113
|
+
items:
|
|
1114
|
+
type: object
|
|
1115
|
+
#required:
|
|
1116
|
+
# - name
|
|
1117
|
+
properties:
|
|
1118
|
+
name:
|
|
1119
|
+
type: string
|
|
1120
|
+
description: "cluster name, used to identify set of servers and wide used during generate names of related Kubernetes resources"
|
|
1121
|
+
minLength: 1
|
|
1122
|
+
# See namePartClusterMaxLen const
|
|
1123
|
+
maxLength: 15
|
|
1124
|
+
pattern: "^[a-zA-Z0-9-]{0,15}$"
|
|
1125
|
+
zookeeper:
|
|
1126
|
+
!!merge <<: *TypeZookeeperConfig
|
|
1127
|
+
description: |
|
|
1128
|
+
optional, allows configure <yandex><zookeeper>..</zookeeper></yandex> section in each `Pod` only in current ClickHouse cluster, during generate `ConfigMap` which will mounted in `/etc/clickhouse-server/config.d/`
|
|
1129
|
+
override top-level `chi.spec.configuration.zookeeper` settings
|
|
1130
|
+
settings:
|
|
1131
|
+
!!merge <<: *TypeSettings
|
|
1132
|
+
description: |
|
|
1133
|
+
optional, allows configure `clickhouse-server` settings inside <yandex>...</yandex> tag in each `Pod` only in one cluster during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/`
|
|
1134
|
+
override top-level `chi.spec.configuration.settings`
|
|
1135
|
+
More details: https://clickhouse.tech/docs/en/operations/settings/settings/
|
|
1136
|
+
files:
|
|
1137
|
+
!!merge <<: *TypeFiles
|
|
1138
|
+
description: |
|
|
1139
|
+
optional, allows define content of any setting file inside each `Pod` on current cluster during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`
|
|
1140
|
+
override top-level `chi.spec.configuration.files`
|
|
1141
|
+
templates:
|
|
1142
|
+
!!merge <<: *TypeTemplateNames
|
|
1143
|
+
description: |
|
|
1144
|
+
optional, configuration of the templates names which will use for generate Kubernetes resources according to selected cluster
|
|
1145
|
+
override top-level `chi.spec.configuration.templates`
|
|
1146
|
+
schemaPolicy:
|
|
1147
|
+
type: object
|
|
1148
|
+
description: |
|
|
1149
|
+
describes how schema is propagated within replicas and shards
|
|
1150
|
+
properties:
|
|
1151
|
+
replica:
|
|
1152
|
+
type: string
|
|
1153
|
+
description: "how schema is propagated within a replica (case-insensitive)"
|
|
1154
|
+
enum:
|
|
1155
|
+
# List SchemaPolicyReplicaXXX constants from model (both humped and all-lowercase accepted)
|
|
1156
|
+
- ""
|
|
1157
|
+
- "None"
|
|
1158
|
+
- "none"
|
|
1159
|
+
- "All"
|
|
1160
|
+
- "all"
|
|
1161
|
+
shard:
|
|
1162
|
+
type: string
|
|
1163
|
+
description: "how schema is propagated between shards (case-insensitive)"
|
|
1164
|
+
enum:
|
|
1165
|
+
# List SchemaPolicyShardXXX constants from model (both humped and all-lowercase accepted)
|
|
1166
|
+
- ""
|
|
1167
|
+
- "None"
|
|
1168
|
+
- "none"
|
|
1169
|
+
- "All"
|
|
1170
|
+
- "all"
|
|
1171
|
+
- "DistributedTablesOnly"
|
|
1172
|
+
- "distributedtablesonly"
|
|
1173
|
+
insecure:
|
|
1174
|
+
!!merge <<: *TypeStringBool
|
|
1175
|
+
description: optional, open insecure ports for cluster, defaults to "yes"
|
|
1176
|
+
secure:
|
|
1177
|
+
!!merge <<: *TypeStringBool
|
|
1178
|
+
description: optional, open secure ports for cluster
|
|
1179
|
+
secret:
|
|
1180
|
+
type: object
|
|
1181
|
+
description: "optional, shared secret value to secure cluster communications"
|
|
1182
|
+
properties:
|
|
1183
|
+
auto:
|
|
1184
|
+
!!merge <<: *TypeStringBool
|
|
1185
|
+
description: "Auto-generate shared secret value to secure cluster communications"
|
|
1186
|
+
value:
|
|
1187
|
+
description: "Cluster shared secret value in plain text"
|
|
1188
|
+
type: string
|
|
1189
|
+
valueFrom:
|
|
1190
|
+
description: "Cluster shared secret source"
|
|
1191
|
+
type: object
|
|
1192
|
+
properties:
|
|
1193
|
+
secretKeyRef:
|
|
1194
|
+
description: |
|
|
1195
|
+
Selects a key of a secret in the clickhouse installation namespace.
|
|
1196
|
+
Should not be used if value is not empty.
|
|
1197
|
+
type: object
|
|
1198
|
+
properties:
|
|
1199
|
+
name:
|
|
1200
|
+
description: |
|
|
1201
|
+
Name of the referent. More info:
|
|
1202
|
+
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
1203
|
+
type: string
|
|
1204
|
+
key:
|
|
1205
|
+
description: The key of the secret to select from. Must be a valid secret key.
|
|
1206
|
+
type: string
|
|
1207
|
+
optional:
|
|
1208
|
+
description: Specify whether the Secret or its key must be defined
|
|
1209
|
+
type: boolean
|
|
1210
|
+
required:
|
|
1211
|
+
- name
|
|
1212
|
+
- key
|
|
1213
|
+
security:
|
|
1214
|
+
type: object
|
|
1215
|
+
description: |
|
|
1216
|
+
Per-cluster security toggles for outbound TLS connections the operator makes
|
|
1217
|
+
to this cluster's ClickHouse and ZooKeeper / Keeper hosts. Nil fields fall
|
|
1218
|
+
through to the operator-wide defaults in ClickHouseOperatorConfiguration.
|
|
1219
|
+
See docs/security_hardening.md for details.
|
|
1220
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1221
|
+
pdbManaged:
|
|
1222
|
+
!!merge <<: *TypeStringBool
|
|
1223
|
+
description: |
|
|
1224
|
+
Specifies whether the Pod Disruption Budget (PDB) should be managed.
|
|
1225
|
+
During the next installation, if PDB management is enabled, the operator will
|
|
1226
|
+
attempt to retrieve any existing PDB. If none is found, it will create a new one
|
|
1227
|
+
and initiate a reconciliation loop. If PDB management is disabled, the existing PDB
|
|
1228
|
+
will remain intact, and the reconciliation loop will not be executed. By default,
|
|
1229
|
+
PDB management is enabled.
|
|
1230
|
+
pdbMaxUnavailable:
|
|
1231
|
+
type: integer
|
|
1232
|
+
description: |
|
|
1233
|
+
Pod eviction is allowed if at most "pdbMaxUnavailable" pods are unavailable after the eviction,
|
|
1234
|
+
i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions
|
|
1235
|
+
by specifying 0. This is a mutually exclusive setting with "minAvailable".
|
|
1236
|
+
minimum: 0
|
|
1237
|
+
maximum: 65535
|
|
1238
|
+
reconcile:
|
|
1239
|
+
type: object
|
|
1240
|
+
description: "allow tuning reconciling process"
|
|
1241
|
+
properties:
|
|
1242
|
+
runtime:
|
|
1243
|
+
!!merge <<: *TypeReconcileRuntime
|
|
1244
|
+
host:
|
|
1245
|
+
!!merge <<: *TypeReconcileHost
|
|
1246
|
+
hooks:
|
|
1247
|
+
# Per-cluster cluster-scope hooks. The schema (TypeClusterHookAction) is
|
|
1248
|
+
# defined once at spec.reconcile.cluster.hooks above; this block just
|
|
1249
|
+
# references it. Hooks defined here are merged with any inherited from
|
|
1250
|
+
# CHI-level spec.reconcile.cluster.hooks via dedup'd MergeFrom.
|
|
1251
|
+
type: object
|
|
1252
|
+
description: "cluster-level hooks to execute before and after cluster reconcile"
|
|
1253
|
+
properties:
|
|
1254
|
+
pre:
|
|
1255
|
+
type: array
|
|
1256
|
+
description: "actions to execute before cluster reconcile"
|
|
1257
|
+
nullable: true
|
|
1258
|
+
items:
|
|
1259
|
+
!!merge <<: *TypeClusterHookAction
|
|
1260
|
+
post:
|
|
1261
|
+
type: array
|
|
1262
|
+
description: "actions to execute after cluster reconcile"
|
|
1263
|
+
nullable: true
|
|
1264
|
+
items:
|
|
1265
|
+
!!merge <<: *TypeClusterHookAction
|
|
1266
|
+
layout:
|
|
1267
|
+
type: object
|
|
1268
|
+
description: |
|
|
1269
|
+
describe current cluster layout, how much shards in cluster, how much replica in shard
|
|
1270
|
+
allows override settings on each shard and replica separatelly
|
|
1271
|
+
# nullable: true
|
|
1272
|
+
properties:
|
|
1273
|
+
shardsCount:
|
|
1274
|
+
type: integer
|
|
1275
|
+
description: |
|
|
1276
|
+
how much shards for current ClickHouse cluster will run in Kubernetes,
|
|
1277
|
+
each shard contains shared-nothing part of data and contains set of replicas,
|
|
1278
|
+
cluster contains 1 shard by default"
|
|
1279
|
+
replicasCount:
|
|
1280
|
+
type: integer
|
|
1281
|
+
description: |
|
|
1282
|
+
how much replicas in each shards for current cluster will run in Kubernetes,
|
|
1283
|
+
each replica is a separate `StatefulSet` which contains only one `Pod` with `clickhouse-server` instance,
|
|
1284
|
+
every shard contains 1 replica by default"
|
|
1285
|
+
shards:
|
|
1286
|
+
type: array
|
|
1287
|
+
description: |
|
|
1288
|
+
optional, allows override top-level `chi.spec.configuration`, cluster-level
|
|
1289
|
+
`chi.spec.configuration.clusters` settings for each shard separately,
|
|
1290
|
+
use it only if you fully understand what you do"
|
|
1291
|
+
# nullable: true
|
|
1292
|
+
items:
|
|
1293
|
+
type: object
|
|
1294
|
+
properties:
|
|
1295
|
+
name:
|
|
1296
|
+
type: string
|
|
1297
|
+
description: "optional, by default shard name is generated, but you can override it and setup custom name"
|
|
1298
|
+
minLength: 1
|
|
1299
|
+
# See namePartShardMaxLen const
|
|
1300
|
+
maxLength: 15
|
|
1301
|
+
pattern: "^[a-zA-Z0-9-]{0,15}$"
|
|
1302
|
+
definitionType:
|
|
1303
|
+
type: string
|
|
1304
|
+
description: "DEPRECATED - to be removed soon"
|
|
1305
|
+
weight:
|
|
1306
|
+
type: integer
|
|
1307
|
+
description: |
|
|
1308
|
+
optional, 1 by default, allows setup shard <weight> setting which will use during insert into tables with `Distributed` engine,
|
|
1309
|
+
will apply in <remote_servers> inside ConfigMap which will mount in /etc/clickhouse-server/config.d/chop-generated-remote_servers.xml
|
|
1310
|
+
More details: https://clickhouse.tech/docs/en/engines/table-engines/special/distributed/
|
|
1311
|
+
internalReplication:
|
|
1312
|
+
!!merge <<: *TypeStringBool
|
|
1313
|
+
description: |
|
|
1314
|
+
optional, `true` by default when `chi.spec.configuration.clusters[].layout.ReplicaCount` > 1 and 0 otherwise
|
|
1315
|
+
allows setup <internal_replication> setting which will use during insert into tables with `Distributed` engine for insert only in one live replica and other replicas will download inserted data during replication,
|
|
1316
|
+
will apply in <remote_servers> inside ConfigMap which will mount in /etc/clickhouse-server/config.d/chop-generated-remote_servers.xml
|
|
1317
|
+
More details: https://clickhouse.tech/docs/en/engines/table-engines/special/distributed/
|
|
1318
|
+
settings:
|
|
1319
|
+
!!merge <<: *TypeSettings
|
|
1320
|
+
description: |
|
|
1321
|
+
optional, allows configure `clickhouse-server` settings inside <yandex>...</yandex> tag in each `Pod` only in one shard during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/`
|
|
1322
|
+
override top-level `chi.spec.configuration.settings` and cluster-level `chi.spec.configuration.clusters.settings`
|
|
1323
|
+
More details: https://clickhouse.tech/docs/en/operations/settings/settings/
|
|
1324
|
+
files:
|
|
1325
|
+
!!merge <<: *TypeFiles
|
|
1326
|
+
description: |
|
|
1327
|
+
optional, allows define content of any setting file inside each `Pod` only in one shard during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`
|
|
1328
|
+
override top-level `chi.spec.configuration.files` and cluster-level `chi.spec.configuration.clusters.files`
|
|
1329
|
+
templates:
|
|
1330
|
+
!!merge <<: *TypeTemplateNames
|
|
1331
|
+
description: |
|
|
1332
|
+
optional, configuration of the templates names which will use for generate Kubernetes resources according to selected shard
|
|
1333
|
+
override top-level `chi.spec.configuration.templates` and cluster-level `chi.spec.configuration.clusters.templates`
|
|
1334
|
+
replicasCount:
|
|
1335
|
+
type: integer
|
|
1336
|
+
description: |
|
|
1337
|
+
optional, how much replicas in selected shard for selected ClickHouse cluster will run in Kubernetes, each replica is a separate `StatefulSet` which contains only one `Pod` with `clickhouse-server` instance,
|
|
1338
|
+
shard contains 1 replica by default
|
|
1339
|
+
override cluster-level `chi.spec.configuration.clusters.layout.replicasCount`
|
|
1340
|
+
minimum: 1
|
|
1341
|
+
replicas:
|
|
1342
|
+
type: array
|
|
1343
|
+
description: |
|
|
1344
|
+
optional, allows override behavior for selected replicas from cluster-level `chi.spec.configuration.clusters` and shard-level `chi.spec.configuration.clusters.layout.shards`
|
|
1345
|
+
# nullable: true
|
|
1346
|
+
items:
|
|
1347
|
+
# Host
|
|
1348
|
+
type: object
|
|
1349
|
+
properties:
|
|
1350
|
+
name:
|
|
1351
|
+
type: string
|
|
1352
|
+
description: "optional, by default replica name is generated, but you can override it and setup custom name"
|
|
1353
|
+
minLength: 1
|
|
1354
|
+
# See namePartReplicaMaxLen const
|
|
1355
|
+
maxLength: 15
|
|
1356
|
+
pattern: "^[a-zA-Z0-9-]{0,15}$"
|
|
1357
|
+
insecure:
|
|
1358
|
+
!!merge <<: *TypeStringBool
|
|
1359
|
+
description: |
|
|
1360
|
+
optional, open insecure ports for cluster, defaults to "yes"
|
|
1361
|
+
secure:
|
|
1362
|
+
!!merge <<: *TypeStringBool
|
|
1363
|
+
description: |
|
|
1364
|
+
optional, open secure ports
|
|
1365
|
+
tcpPort:
|
|
1366
|
+
type: integer
|
|
1367
|
+
description: |
|
|
1368
|
+
optional, setup `Pod.spec.containers.ports` with name `tcp` for selected replica, override `chi.spec.templates.hostTemplates.spec.tcpPort`
|
|
1369
|
+
allows connect to `clickhouse-server` via TCP Native protocol via kubernetes `Service`
|
|
1370
|
+
minimum: 1
|
|
1371
|
+
maximum: 65535
|
|
1372
|
+
tlsPort:
|
|
1373
|
+
type: integer
|
|
1374
|
+
minimum: 1
|
|
1375
|
+
maximum: 65535
|
|
1376
|
+
httpPort:
|
|
1377
|
+
type: integer
|
|
1378
|
+
description: |
|
|
1379
|
+
optional, setup `Pod.spec.containers.ports` with name `http` for selected replica, override `chi.spec.templates.hostTemplates.spec.httpPort`
|
|
1380
|
+
allows connect to `clickhouse-server` via HTTP protocol via kubernetes `Service`
|
|
1381
|
+
minimum: 1
|
|
1382
|
+
maximum: 65535
|
|
1383
|
+
httpsPort:
|
|
1384
|
+
type: integer
|
|
1385
|
+
minimum: 1
|
|
1386
|
+
maximum: 65535
|
|
1387
|
+
interserverHTTPPort:
|
|
1388
|
+
type: integer
|
|
1389
|
+
description: |
|
|
1390
|
+
optional, setup `Pod.spec.containers.ports` with name `interserver` for selected replica, override `chi.spec.templates.hostTemplates.spec.interserverHTTPPort`
|
|
1391
|
+
allows connect between replicas inside same shard during fetch replicated data parts HTTP protocol
|
|
1392
|
+
minimum: 1
|
|
1393
|
+
maximum: 65535
|
|
1394
|
+
settings:
|
|
1395
|
+
!!merge <<: *TypeSettings
|
|
1396
|
+
description: |
|
|
1397
|
+
optional, allows configure `clickhouse-server` settings inside <yandex>...</yandex> tag in `Pod` only in one replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/conf.d/`
|
|
1398
|
+
override top-level `chi.spec.configuration.settings`, cluster-level `chi.spec.configuration.clusters.settings` and shard-level `chi.spec.configuration.clusters.layout.shards.settings`
|
|
1399
|
+
More details: https://clickhouse.tech/docs/en/operations/settings/settings/
|
|
1400
|
+
files:
|
|
1401
|
+
!!merge <<: *TypeFiles
|
|
1402
|
+
description: |
|
|
1403
|
+
optional, allows define content of any setting file inside `Pod` only in one replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`
|
|
1404
|
+
override top-level `chi.spec.configuration.files`, cluster-level `chi.spec.configuration.clusters.files` and shard-level `chi.spec.configuration.clusters.layout.shards.files`
|
|
1405
|
+
templates:
|
|
1406
|
+
!!merge <<: *TypeTemplateNames
|
|
1407
|
+
description: |
|
|
1408
|
+
optional, configuration of the templates names which will use for generate Kubernetes resources according to selected replica
|
|
1409
|
+
override top-level `chi.spec.configuration.templates`, cluster-level `chi.spec.configuration.clusters.templates` and shard-level `chi.spec.configuration.clusters.layout.shards.templates`
|
|
1410
|
+
replicas:
|
|
1411
|
+
type: array
|
|
1412
|
+
description: "optional, allows override top-level `chi.spec.configuration` and cluster-level `chi.spec.configuration.clusters` configuration for each replica and each shard relates to selected replica, use it only if you fully understand what you do"
|
|
1413
|
+
# nullable: true
|
|
1414
|
+
items:
|
|
1415
|
+
type: object
|
|
1416
|
+
properties:
|
|
1417
|
+
name:
|
|
1418
|
+
type: string
|
|
1419
|
+
description: "optional, by default replica name is generated, but you can override it and setup custom name"
|
|
1420
|
+
minLength: 1
|
|
1421
|
+
# See namePartShardMaxLen const
|
|
1422
|
+
maxLength: 15
|
|
1423
|
+
pattern: "^[a-zA-Z0-9-]{0,15}$"
|
|
1424
|
+
settings:
|
|
1425
|
+
!!merge <<: *TypeSettings
|
|
1426
|
+
description: |
|
|
1427
|
+
optional, allows configure `clickhouse-server` settings inside <yandex>...</yandex> tag in `Pod` only in one replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/conf.d/`
|
|
1428
|
+
override top-level `chi.spec.configuration.settings`, cluster-level `chi.spec.configuration.clusters.settings` and will ignore if shard-level `chi.spec.configuration.clusters.layout.shards` present
|
|
1429
|
+
More details: https://clickhouse.tech/docs/en/operations/settings/settings/
|
|
1430
|
+
files:
|
|
1431
|
+
!!merge <<: *TypeFiles
|
|
1432
|
+
description: |
|
|
1433
|
+
optional, allows define content of any setting file inside each `Pod` only in one replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`
|
|
1434
|
+
override top-level `chi.spec.configuration.files` and cluster-level `chi.spec.configuration.clusters.files`, will ignore if `chi.spec.configuration.clusters.layout.shards` presents
|
|
1435
|
+
templates:
|
|
1436
|
+
!!merge <<: *TypeTemplateNames
|
|
1437
|
+
description: |
|
|
1438
|
+
optional, configuration of the templates names which will use for generate Kubernetes resources according to selected replica
|
|
1439
|
+
override top-level `chi.spec.configuration.templates`, cluster-level `chi.spec.configuration.clusters.templates`
|
|
1440
|
+
shardsCount:
|
|
1441
|
+
type: integer
|
|
1442
|
+
description: "optional, count of shards related to current replica, you can override each shard behavior on low-level `chi.spec.configuration.clusters.layout.replicas.shards`"
|
|
1443
|
+
minimum: 1
|
|
1444
|
+
shards:
|
|
1445
|
+
type: array
|
|
1446
|
+
description: "optional, list of shards related to current replica, will ignore if `chi.spec.configuration.clusters.layout.shards` presents"
|
|
1447
|
+
# nullable: true
|
|
1448
|
+
items:
|
|
1449
|
+
# Host
|
|
1450
|
+
type: object
|
|
1451
|
+
properties:
|
|
1452
|
+
name:
|
|
1453
|
+
type: string
|
|
1454
|
+
description: "optional, by default shard name is generated, but you can override it and setup custom name"
|
|
1455
|
+
minLength: 1
|
|
1456
|
+
# See namePartReplicaMaxLen const
|
|
1457
|
+
maxLength: 15
|
|
1458
|
+
pattern: "^[a-zA-Z0-9-]{0,15}$"
|
|
1459
|
+
insecure:
|
|
1460
|
+
!!merge <<: *TypeStringBool
|
|
1461
|
+
description: |
|
|
1462
|
+
optional, open insecure ports for cluster, defaults to "yes"
|
|
1463
|
+
secure:
|
|
1464
|
+
!!merge <<: *TypeStringBool
|
|
1465
|
+
description: |
|
|
1466
|
+
optional, open secure ports
|
|
1467
|
+
tcpPort:
|
|
1468
|
+
type: integer
|
|
1469
|
+
description: |
|
|
1470
|
+
optional, setup `Pod.spec.containers.ports` with name `tcp` for selected shard, override `chi.spec.templates.hostTemplates.spec.tcpPort`
|
|
1471
|
+
allows connect to `clickhouse-server` via TCP Native protocol via kubernetes `Service`
|
|
1472
|
+
minimum: 1
|
|
1473
|
+
maximum: 65535
|
|
1474
|
+
tlsPort:
|
|
1475
|
+
type: integer
|
|
1476
|
+
minimum: 1
|
|
1477
|
+
maximum: 65535
|
|
1478
|
+
httpPort:
|
|
1479
|
+
type: integer
|
|
1480
|
+
description: |
|
|
1481
|
+
optional, setup `Pod.spec.containers.ports` with name `http` for selected shard, override `chi.spec.templates.hostTemplates.spec.httpPort`
|
|
1482
|
+
allows connect to `clickhouse-server` via HTTP protocol via kubernetes `Service`
|
|
1483
|
+
minimum: 1
|
|
1484
|
+
maximum: 65535
|
|
1485
|
+
httpsPort:
|
|
1486
|
+
type: integer
|
|
1487
|
+
minimum: 1
|
|
1488
|
+
maximum: 65535
|
|
1489
|
+
interserverHTTPPort:
|
|
1490
|
+
type: integer
|
|
1491
|
+
description: |
|
|
1492
|
+
optional, setup `Pod.spec.containers.ports` with name `interserver` for selected shard, override `chi.spec.templates.hostTemplates.spec.interserverHTTPPort`
|
|
1493
|
+
allows connect between replicas inside same shard during fetch replicated data parts HTTP protocol
|
|
1494
|
+
minimum: 1
|
|
1495
|
+
maximum: 65535
|
|
1496
|
+
settings:
|
|
1497
|
+
!!merge <<: *TypeSettings
|
|
1498
|
+
description: |
|
|
1499
|
+
optional, allows configure `clickhouse-server` settings inside <yandex>...</yandex> tag in `Pod` only in one shard related to current replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/conf.d/`
|
|
1500
|
+
override top-level `chi.spec.configuration.settings`, cluster-level `chi.spec.configuration.clusters.settings` and replica-level `chi.spec.configuration.clusters.layout.replicas.settings`
|
|
1501
|
+
More details: https://clickhouse.tech/docs/en/operations/settings/settings/
|
|
1502
|
+
files:
|
|
1503
|
+
!!merge <<: *TypeFiles
|
|
1504
|
+
description: |
|
|
1505
|
+
optional, allows define content of any setting file inside each `Pod` only in one shard related to current replica during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`
|
|
1506
|
+
override top-level `chi.spec.configuration.files` and cluster-level `chi.spec.configuration.clusters.files`, will ignore if `chi.spec.configuration.clusters.layout.shards` presents
|
|
1507
|
+
templates:
|
|
1508
|
+
!!merge <<: *TypeTemplateNames
|
|
1509
|
+
description: |
|
|
1510
|
+
optional, configuration of the templates names which will use for generate Kubernetes resources according to selected replica
|
|
1511
|
+
override top-level `chi.spec.configuration.templates`, cluster-level `chi.spec.configuration.clusters.templates`, replica-level `chi.spec.configuration.clusters.layout.replicas.templates`
|
|
1512
|
+
templates:
|
|
1513
|
+
type: object
|
|
1514
|
+
description: "allows define templates which will use for render Kubernetes resources like StatefulSet, ConfigMap, Service, PVC, by default, clickhouse-operator have own templates, but you can override it"
|
|
1515
|
+
# nullable: true
|
|
1516
|
+
properties:
|
|
1517
|
+
hostTemplates:
|
|
1518
|
+
type: array
|
|
1519
|
+
description: "hostTemplate will use during apply to generate `clickhose-server` config files"
|
|
1520
|
+
# nullable: true
|
|
1521
|
+
items:
|
|
1522
|
+
type: object
|
|
1523
|
+
#required:
|
|
1524
|
+
# - name
|
|
1525
|
+
properties:
|
|
1526
|
+
name:
|
|
1527
|
+
description: "template name, could use to link inside top-level `chi.spec.defaults.templates.hostTemplate`, cluster-level `chi.spec.configuration.clusters.templates.hostTemplate`, shard-level `chi.spec.configuration.clusters.layout.shards.temlates.hostTemplate`, replica-level `chi.spec.configuration.clusters.layout.replicas.templates.hostTemplate`"
|
|
1528
|
+
type: string
|
|
1529
|
+
portDistribution:
|
|
1530
|
+
type: array
|
|
1531
|
+
description: "define how will distribute numeric values of named ports in `Pod.spec.containers.ports` and clickhouse-server configs"
|
|
1532
|
+
# nullable: true
|
|
1533
|
+
items:
|
|
1534
|
+
type: object
|
|
1535
|
+
#required:
|
|
1536
|
+
# - type
|
|
1537
|
+
properties:
|
|
1538
|
+
type:
|
|
1539
|
+
type: string
|
|
1540
|
+
description: "type of distribution, when `Unspecified` (default value) then all listen ports on clickhouse-server configuration in all Pods will have the same value, when `ClusterScopeIndex` then ports will increment to offset from base value depends on shard and replica index inside cluster with combination of `chi.spec.templates.podTemlates.spec.HostNetwork` it allows setup ClickHouse cluster inside Kubernetes and provide access via external network bypass Kubernetes internal network"
|
|
1541
|
+
enum:
|
|
1542
|
+
# List PortDistributionXXX constants (both humped and all-lowercase accepted)
|
|
1543
|
+
- ""
|
|
1544
|
+
- "Unspecified"
|
|
1545
|
+
- "unspecified"
|
|
1546
|
+
- "ClusterScopeIndex"
|
|
1547
|
+
- "clusterscopeindex"
|
|
1548
|
+
spec:
|
|
1549
|
+
# Host
|
|
1550
|
+
type: object
|
|
1551
|
+
properties:
|
|
1552
|
+
name:
|
|
1553
|
+
type: string
|
|
1554
|
+
description: "by default, hostname will generate, but this allows define custom name for each `clickhouse-server`"
|
|
1555
|
+
minLength: 1
|
|
1556
|
+
# See namePartReplicaMaxLen const
|
|
1557
|
+
maxLength: 15
|
|
1558
|
+
pattern: "^[a-zA-Z0-9-]{0,15}$"
|
|
1559
|
+
insecure:
|
|
1560
|
+
!!merge <<: *TypeStringBool
|
|
1561
|
+
description: |
|
|
1562
|
+
optional, open insecure ports for cluster, defaults to "yes"
|
|
1563
|
+
secure:
|
|
1564
|
+
!!merge <<: *TypeStringBool
|
|
1565
|
+
description: |
|
|
1566
|
+
optional, open secure ports
|
|
1567
|
+
tcpPort:
|
|
1568
|
+
type: integer
|
|
1569
|
+
description: |
|
|
1570
|
+
optional, setup `tcp_port` inside `clickhouse-server` settings for each Pod where current template will apply
|
|
1571
|
+
if specified, should have equal value with `chi.spec.templates.podTemplates.spec.containers.ports[name=tcp]`
|
|
1572
|
+
More info: https://clickhouse.tech/docs/en/interfaces/tcp/
|
|
1573
|
+
minimum: 1
|
|
1574
|
+
maximum: 65535
|
|
1575
|
+
tlsPort:
|
|
1576
|
+
type: integer
|
|
1577
|
+
minimum: 1
|
|
1578
|
+
maximum: 65535
|
|
1579
|
+
httpPort:
|
|
1580
|
+
type: integer
|
|
1581
|
+
description: |
|
|
1582
|
+
optional, setup `http_port` inside `clickhouse-server` settings for each Pod where current template will apply
|
|
1583
|
+
if specified, should have equal value with `chi.spec.templates.podTemplates.spec.containers.ports[name=http]`
|
|
1584
|
+
More info: https://clickhouse.tech/docs/en/interfaces/http/
|
|
1585
|
+
minimum: 1
|
|
1586
|
+
maximum: 65535
|
|
1587
|
+
httpsPort:
|
|
1588
|
+
type: integer
|
|
1589
|
+
minimum: 1
|
|
1590
|
+
maximum: 65535
|
|
1591
|
+
interserverHTTPPort:
|
|
1592
|
+
type: integer
|
|
1593
|
+
description: |
|
|
1594
|
+
optional, setup `interserver_http_port` inside `clickhouse-server` settings for each Pod where current template will apply
|
|
1595
|
+
if specified, should have equal value with `chi.spec.templates.podTemplates.spec.containers.ports[name=interserver]`
|
|
1596
|
+
More info: https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#interserver-http-port
|
|
1597
|
+
minimum: 1
|
|
1598
|
+
maximum: 65535
|
|
1599
|
+
settings:
|
|
1600
|
+
!!merge <<: *TypeSettings
|
|
1601
|
+
description: |
|
|
1602
|
+
optional, allows configure `clickhouse-server` settings inside <yandex>...</yandex> tag in each `Pod` where this template will apply during generate `ConfigMap` which will mount in `/etc/clickhouse-server/conf.d/`
|
|
1603
|
+
More details: https://clickhouse.tech/docs/en/operations/settings/settings/
|
|
1604
|
+
files:
|
|
1605
|
+
!!merge <<: *TypeFiles
|
|
1606
|
+
description: |
|
|
1607
|
+
optional, allows define content of any setting file inside each `Pod` where this template will apply during generate `ConfigMap` which will mount in `/etc/clickhouse-server/config.d/` or `/etc/clickhouse-server/conf.d/` or `/etc/clickhouse-server/users.d/`
|
|
1608
|
+
templates:
|
|
1609
|
+
!!merge <<: *TypeTemplateNames
|
|
1610
|
+
description: "be careful, this part of CRD allows override template inside template, don't use it if you don't understand what you do"
|
|
1611
|
+
podTemplates:
|
|
1612
|
+
type: array
|
|
1613
|
+
description: |
|
|
1614
|
+
podTemplate will use during render `Pod` inside `StatefulSet.spec` and allows define rendered `Pod.spec`, pod scheduling distribution and pod zone
|
|
1615
|
+
More information: https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#spectemplatespodtemplates
|
|
1616
|
+
# nullable: true
|
|
1617
|
+
items:
|
|
1618
|
+
type: object
|
|
1619
|
+
#required:
|
|
1620
|
+
# - name
|
|
1621
|
+
properties:
|
|
1622
|
+
name:
|
|
1623
|
+
type: string
|
|
1624
|
+
description: "template name, could use to link inside top-level `chi.spec.defaults.templates.podTemplate`, cluster-level `chi.spec.configuration.clusters.templates.podTemplate`, shard-level `chi.spec.configuration.clusters.layout.shards.temlates.podTemplate`, replica-level `chi.spec.configuration.clusters.layout.replicas.templates.podTemplate`"
|
|
1625
|
+
generateName:
|
|
1626
|
+
type: string
|
|
1627
|
+
description: "allows define format for generated `Pod` name, look to https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#spectemplatesservicetemplates for details about available template variables"
|
|
1628
|
+
zone:
|
|
1629
|
+
type: object
|
|
1630
|
+
description: "allows define custom zone name and will separate ClickHouse `Pods` between nodes, shortcut for `chi.spec.templates.podTemplates.spec.affinity.podAntiAffinity`"
|
|
1631
|
+
#required:
|
|
1632
|
+
# - values
|
|
1633
|
+
properties:
|
|
1634
|
+
key:
|
|
1635
|
+
type: string
|
|
1636
|
+
description: "optional, if defined, allows select kubernetes nodes by label with `name` equal `key`"
|
|
1637
|
+
values:
|
|
1638
|
+
type: array
|
|
1639
|
+
description: "optional, if defined, allows select kubernetes nodes by label with `value` in `values`"
|
|
1640
|
+
# nullable: true
|
|
1641
|
+
items:
|
|
1642
|
+
type: string
|
|
1643
|
+
distribution:
|
|
1644
|
+
type: string
|
|
1645
|
+
description: "DEPRECATED, shortcut for `chi.spec.templates.podTemplates.spec.affinity.podAntiAffinity`"
|
|
1646
|
+
enum:
|
|
1647
|
+
# both humped and all-lowercase accepted
|
|
1648
|
+
- ""
|
|
1649
|
+
- "Unspecified"
|
|
1650
|
+
- "unspecified"
|
|
1651
|
+
- "OnePerHost"
|
|
1652
|
+
- "oneperhost"
|
|
1653
|
+
podDistribution:
|
|
1654
|
+
type: array
|
|
1655
|
+
description: "define ClickHouse Pod distribution policy between Kubernetes Nodes inside Shard, Replica, Namespace, CHI, another ClickHouse cluster"
|
|
1656
|
+
# nullable: true
|
|
1657
|
+
items:
|
|
1658
|
+
type: object
|
|
1659
|
+
#required:
|
|
1660
|
+
# - type
|
|
1661
|
+
properties:
|
|
1662
|
+
type:
|
|
1663
|
+
type: string
|
|
1664
|
+
description: "you can define multiple affinity policy types"
|
|
1665
|
+
enum:
|
|
1666
|
+
# List PodDistributionXXX constants (both humped and all-lowercase accepted)
|
|
1667
|
+
- ""
|
|
1668
|
+
- "Unspecified"
|
|
1669
|
+
- "unspecified"
|
|
1670
|
+
- "ClickHouseAntiAffinity"
|
|
1671
|
+
- "clickhouseantiaffinity"
|
|
1672
|
+
- "ShardAntiAffinity"
|
|
1673
|
+
- "shardantiaffinity"
|
|
1674
|
+
- "ReplicaAntiAffinity"
|
|
1675
|
+
- "replicaantiaffinity"
|
|
1676
|
+
- "AnotherNamespaceAntiAffinity"
|
|
1677
|
+
- "anothernamespaceantiaffinity"
|
|
1678
|
+
- "AnotherClickHouseInstallationAntiAffinity"
|
|
1679
|
+
- "anotherclickhouseinstallationantiaffinity"
|
|
1680
|
+
- "AnotherClusterAntiAffinity"
|
|
1681
|
+
- "anotherclusterantiaffinity"
|
|
1682
|
+
- "MaxNumberPerNode"
|
|
1683
|
+
- "maxnumberpernode"
|
|
1684
|
+
- "NamespaceAffinity"
|
|
1685
|
+
- "namespaceaffinity"
|
|
1686
|
+
- "ClickHouseInstallationAffinity"
|
|
1687
|
+
- "clickhouseinstallationaffinity"
|
|
1688
|
+
- "ClusterAffinity"
|
|
1689
|
+
- "clusteraffinity"
|
|
1690
|
+
- "ShardAffinity"
|
|
1691
|
+
- "shardaffinity"
|
|
1692
|
+
- "ReplicaAffinity"
|
|
1693
|
+
- "replicaaffinity"
|
|
1694
|
+
- "PreviousTailAffinity"
|
|
1695
|
+
- "previoustailaffinity"
|
|
1696
|
+
- "CircularReplication"
|
|
1697
|
+
- "circularreplication"
|
|
1698
|
+
scope:
|
|
1699
|
+
type: string
|
|
1700
|
+
description: "scope for apply each podDistribution"
|
|
1701
|
+
enum:
|
|
1702
|
+
# list PodDistributionScopeXXX constants (both humped and all-lowercase accepted)
|
|
1703
|
+
- ""
|
|
1704
|
+
- "Unspecified"
|
|
1705
|
+
- "unspecified"
|
|
1706
|
+
- "Shard"
|
|
1707
|
+
- "shard"
|
|
1708
|
+
- "Replica"
|
|
1709
|
+
- "replica"
|
|
1710
|
+
- "Cluster"
|
|
1711
|
+
- "cluster"
|
|
1712
|
+
- "ClickHouseInstallation"
|
|
1713
|
+
- "clickhouseinstallation"
|
|
1714
|
+
- "Namespace"
|
|
1715
|
+
- "namespace"
|
|
1716
|
+
number:
|
|
1717
|
+
type: integer
|
|
1718
|
+
description: "define, how much ClickHouse Pods could be inside selected scope with selected distribution type"
|
|
1719
|
+
minimum: 0
|
|
1720
|
+
maximum: 65535
|
|
1721
|
+
topologyKey:
|
|
1722
|
+
type: string
|
|
1723
|
+
description: |
|
|
1724
|
+
use for inter-pod affinity look to `pod.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey`,
|
|
1725
|
+
more info: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity"
|
|
1726
|
+
metadata:
|
|
1727
|
+
type: object
|
|
1728
|
+
description: |
|
|
1729
|
+
allows pass standard object's metadata from template to Pod
|
|
1730
|
+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
1731
|
+
# nullable: true
|
|
1732
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1733
|
+
spec:
|
|
1734
|
+
# TODO specify PodSpec
|
|
1735
|
+
type: object
|
|
1736
|
+
description: "allows define whole Pod.spec inside StaefulSet.spec, look to https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates for details"
|
|
1737
|
+
# nullable: true
|
|
1738
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1739
|
+
volumeClaimTemplates:
|
|
1740
|
+
type: array
|
|
1741
|
+
description: |
|
|
1742
|
+
allows define template for rendering `PVC` kubernetes resource, which would use inside `Pod` for mount clickhouse `data`, clickhouse `logs` or something else
|
|
1743
|
+
# nullable: true
|
|
1744
|
+
items:
|
|
1745
|
+
type: object
|
|
1746
|
+
#required:
|
|
1747
|
+
# - name
|
|
1748
|
+
# - spec
|
|
1749
|
+
properties:
|
|
1750
|
+
name:
|
|
1751
|
+
type: string
|
|
1752
|
+
description: |
|
|
1753
|
+
template name, could use to link inside
|
|
1754
|
+
top-level `chi.spec.defaults.templates.dataVolumeClaimTemplate` or `chi.spec.defaults.templates.logVolumeClaimTemplate`,
|
|
1755
|
+
cluster-level `chi.spec.configuration.clusters.templates.dataVolumeClaimTemplate` or `chi.spec.configuration.clusters.templates.logVolumeClaimTemplate`,
|
|
1756
|
+
shard-level `chi.spec.configuration.clusters.layout.shards.temlates.dataVolumeClaimTemplate` or `chi.spec.configuration.clusters.layout.shards.temlates.logVolumeClaimTemplate`
|
|
1757
|
+
replica-level `chi.spec.configuration.clusters.layout.replicas.templates.dataVolumeClaimTemplate` or `chi.spec.configuration.clusters.layout.replicas.templates.logVolumeClaimTemplate`
|
|
1758
|
+
provisioner: *TypePVCProvisioner
|
|
1759
|
+
reclaimPolicy: *TypePVCReclaimPolicy
|
|
1760
|
+
metadata:
|
|
1761
|
+
type: object
|
|
1762
|
+
description: |
|
|
1763
|
+
allows to pass standard object's metadata from template to PVC
|
|
1764
|
+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
1765
|
+
# nullable: true
|
|
1766
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1767
|
+
spec:
|
|
1768
|
+
type: object
|
|
1769
|
+
description: |
|
|
1770
|
+
allows define all aspects of `PVC` resource
|
|
1771
|
+
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims
|
|
1772
|
+
# nullable: true
|
|
1773
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1774
|
+
serviceTemplates:
|
|
1775
|
+
type: array
|
|
1776
|
+
description: |
|
|
1777
|
+
allows define template for rendering `Service` which would get endpoint from Pods which scoped chi-wide, cluster-wide, shard-wide, replica-wide level
|
|
1778
|
+
# nullable: true
|
|
1779
|
+
items:
|
|
1780
|
+
type: object
|
|
1781
|
+
#required:
|
|
1782
|
+
# - name
|
|
1783
|
+
# - spec
|
|
1784
|
+
properties:
|
|
1785
|
+
name:
|
|
1786
|
+
type: string
|
|
1787
|
+
description: |
|
|
1788
|
+
template name, could use to link inside
|
|
1789
|
+
chi-level `chi.spec.defaults.templates.serviceTemplate`
|
|
1790
|
+
cluster-level `chi.spec.configuration.clusters.templates.clusterServiceTemplate`
|
|
1791
|
+
shard-level `chi.spec.configuration.clusters.layout.shards.temlates.shardServiceTemplate`
|
|
1792
|
+
replica-level `chi.spec.configuration.clusters.layout.replicas.templates.replicaServiceTemplate` or `chi.spec.configuration.clusters.layout.shards.replicas.replicaServiceTemplate`
|
|
1793
|
+
generateName:
|
|
1794
|
+
type: string
|
|
1795
|
+
description: |
|
|
1796
|
+
allows define format for generated `Service` name,
|
|
1797
|
+
look to https://github.com/Altinity/clickhouse-operator/blob/master/docs/custom_resource_explained.md#spectemplatesservicetemplates
|
|
1798
|
+
for details about available template variables"
|
|
1799
|
+
metadata:
|
|
1800
|
+
# TODO specify ObjectMeta
|
|
1801
|
+
type: object
|
|
1802
|
+
description: |
|
|
1803
|
+
allows pass standard object's metadata from template to Service
|
|
1804
|
+
Could be use for define specificly for Cloud Provider metadata which impact to behavior of service
|
|
1805
|
+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
|
1806
|
+
# nullable: true
|
|
1807
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1808
|
+
spec:
|
|
1809
|
+
# TODO specify ServiceSpec
|
|
1810
|
+
type: object
|
|
1811
|
+
description: |
|
|
1812
|
+
describe behavior of generated Service
|
|
1813
|
+
More info: https://kubernetes.io/docs/concepts/services-networking/service/
|
|
1814
|
+
# nullable: true
|
|
1815
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1816
|
+
security:
|
|
1817
|
+
type: object
|
|
1818
|
+
description: |
|
|
1819
|
+
CHI-level security defaults, applied to every cluster that does not override
|
|
1820
|
+
them. Each cluster can shadow these via spec.configuration.clusters[].security.
|
|
1821
|
+
See docs/security_hardening.md for details.
|
|
1822
|
+
x-kubernetes-preserve-unknown-fields: true
|
|
1823
|
+
useTemplates:
|
|
1824
|
+
type: array
|
|
1825
|
+
description: |
|
|
1826
|
+
list of `ClickHouseInstallationTemplate` (chit) resource names which will merge with current `CHI`
|
|
1827
|
+
manifest during render Kubernetes resources to create related ClickHouse clusters"
|
|
1828
|
+
# nullable: true
|
|
1829
|
+
items:
|
|
1830
|
+
type: object
|
|
1831
|
+
#required:
|
|
1832
|
+
# - name
|
|
1833
|
+
properties:
|
|
1834
|
+
name:
|
|
1835
|
+
type: string
|
|
1836
|
+
description: "name of `ClickHouseInstallationTemplate` (chit) resource"
|
|
1837
|
+
namespace:
|
|
1838
|
+
type: string
|
|
1839
|
+
description: "Kubernetes namespace where need search `chit` resource, depending on `watchNamespaces` settings in `clickhouse-operator`"
|
|
1840
|
+
useType:
|
|
1841
|
+
type: string
|
|
1842
|
+
description: "optional, current strategy is only merge, and current `chi` settings have more priority than merged template `chit` (case-insensitive)"
|
|
1843
|
+
enum:
|
|
1844
|
+
# List useTypeXXX constants from model (both humped and all-lowercase accepted)
|
|
1845
|
+
- ""
|
|
1846
|
+
- "Merge"
|
|
1847
|
+
- "merge"
|