Skip to content
Merged

0.26.0 #1929

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
256 commits
Select commit Hold shift + click to select a range
6c7d0a6
Merge branch '0.25.6' of github.com:Altinity/clickhouse-operator into…
Slach Dec 3, 2025
bf9eac1
env: operatorhub manifests
sunsingerus Dec 11, 2025
ebc2095
Merge branch '0.25.6'
sunsingerus Dec 12, 2025
4948d6d
0.26.0
sunsingerus Dec 12, 2025
89f629b
env: manifests
sunsingerus Dec 12, 2025
06cb9f4
env: helm chart
sunsingerus Dec 12, 2025
0bed033
Merge branch 'master' of github.com:Altinity/clickhouse-operator into…
Slach Dec 15, 2025
9f5ca94
dev: unify chk
sunsingerus Dec 24, 2025
fef9211
dev: introduce action plan to chk status
sunsingerus Dec 24, 2025
e3e5495
dev: introduce action plan as a part of chk
sunsingerus Dec 24, 2025
63c6742
dev: unify naming
sunsingerus Dec 24, 2025
8ad813f
dev: remove unused
sunsingerus Dec 24, 2025
c8a9b6c
dev: clarify logger
sunsingerus Dec 24, 2025
a025f68
dev: unify naming
sunsingerus Dec 24, 2025
d39f86b
dev: introduce force restart and action plan
sunsingerus Dec 24, 2025
2aca322
dev: rework ap handling
sunsingerus Dec 24, 2025
4b94e7d
test: pip
sunsingerus Dec 24, 2025
ff98162
docs: quote boolean-like values in CHOp config example YAML
realyota Dec 25, 2025
4a05e2e
Merge pull request #1896 from realyota/master
Slach Dec 25, 2025
937f9d0
dev: bump go version
sunsingerus Dec 26, 2025
c1962a3
dev: remove from chk shards walker-processor
sunsingerus Dec 26, 2025
d5db05f
dev: metrics functions named in neutral way
sunsingerus Dec 26, 2025
e5fa746
dev: work on deleter
sunsingerus Dec 26, 2025
6a84416
dev: explicitly use zk functions
sunsingerus Dec 26, 2025
4832b1c
dev: naming and move zk clean to the very end of recocnile
sunsingerus Dec 26, 2025
e5354bf
dev: batch runner is unused now - no need to keep
sunsingerus Dec 26, 2025
04c79b1
dev: neutral naming
sunsingerus Dec 26, 2025
d836971
dev: clean chk config mapper
sunsingerus Dec 26, 2025
6a01175
dev: workings unification
sunsingerus Dec 26, 2025
46215c7
dev: baseline helper functions
sunsingerus Dec 26, 2025
5622c7f
dev: baseline service processor
sunsingerus Dec 26, 2025
afda54e
dev: steps to unify helpers api
sunsingerus Dec 26, 2025
dec5a3e
dev: baseline chk finalization
sunsingerus Dec 26, 2025
fac2bbf
dev: unify chk monitoring interface
sunsingerus Dec 26, 2025
d202e9d
dev: unify chk monitoring
sunsingerus Dec 26, 2025
33aadd8
dev: baseline reconciler
sunsingerus Dec 26, 2025
61a450c
Merge remote-tracking branch 'altinity/0.26.0' into 0.26.0
sunsingerus Dec 26, 2025
56e10dc
dev: format
sunsingerus Dec 26, 2025
461f94b
env: helm chart
sunsingerus Dec 26, 2025
f9344a6
docs: clarify operator config changes require restart (no self-reconc…
realyota Dec 31, 2025
e14318f
add missing datasource
discostur Jan 5, 2026
99312a7
dev: unify crd manifest spec
sunsingerus Jan 12, 2026
0fc8c9a
dev: actualize chk stopped check
sunsingerus Jan 12, 2026
772961e
dev: enable stop check on cluster level
sunsingerus Jan 12, 2026
0e01da2
dev: introduce stop flag for chk
sunsingerus Jan 12, 2026
26998e4
dev: merge suspend
sunsingerus Jan 12, 2026
5ce5f6e
dev: generalize monitoring functions
sunsingerus Jan 12, 2026
932486b
dev: minor generalization
sunsingerus Jan 12, 2026
5765af9
dev: generalize ip wit func
sunsingerus Jan 12, 2026
b29aa2a
dev: generalize monitoring
sunsingerus Jan 12, 2026
6afbb4f
dev: minor generalization
sunsingerus Jan 12, 2026
36ba513
dev: generalize ip wait
sunsingerus Jan 12, 2026
d97787f
dev: introduce suspend normalizer
sunsingerus Jan 12, 2026
5c51644
dev: introduce stop+suspend normalization
sunsingerus Jan 12, 2026
5784734
dev: codegenerator
sunsingerus Jan 12, 2026
dea01a9
env: manifests
sunsingerus Jan 12, 2026
b0a43a2
env: helm
sunsingerus Jan 12, 2026
3d2c803
dev: generalize enqueue checker
sunsingerus Jan 12, 2026
4c872a0
dev: move suspend checker into main loop
sunsingerus Jan 12, 2026
26adbc1
dev: minor
sunsingerus Jan 12, 2026
180a3ff
dev: unify enqueue checker
sunsingerus Jan 12, 2026
c6b62a5
dev: switch to controller checker
sunsingerus Jan 12, 2026
7c94aa3
dev: apply suspend for chk
sunsingerus Jan 12, 2026
4cc7110
dev: clarify versioner
sunsingerus Jan 12, 2026
99f971c
dev: switch chk versioner
sunsingerus Jan 13, 2026
e7374c4
dev: chk app versioner
sunsingerus Jan 13, 2026
1da5ec0
test cluster settings on replicas
alex-zaitsev Jan 13, 2026
065f59d
Do not report non-expired sessions into monitoring
alex-zaitsev Jan 14, 2026
e8c7efd
Merge pull request #1899 from realyota/docs-operator-reconcile
alex-zaitsev Jan 14, 2026
1fc8198
Fix doc URLs in alerts and dashboards
siggy Jan 14, 2026
2d89b19
Merge branch 'master' of github.com:Altinity/clickhouse-operator into…
Slach Jan 15, 2026
c5aaf3e
Merge pull request #1906 from siggy/siggy/fix-urls
Slach Jan 15, 2026
3a2beaf
dev: introduce chk reconciler inheritance
sunsingerus Jan 19, 2026
1ccb473
dev: switch interface to pointer
sunsingerus Jan 19, 2026
8aff729
dev: emptify reconcile
sunsingerus Jan 19, 2026
f4f3c0f
dev: intrduce poined version
sunsingerus Jan 19, 2026
97e8229
dev: paramtrize probes normalizator
sunsingerus Jan 19, 2026
bdffcbb
dev: introduce cluster reconcile ensurer
sunsingerus Jan 19, 2026
886eecb
dev: keeper code
sunsingerus Jan 19, 2026
26eaf81
dev: chi code
sunsingerus Jan 19, 2026
74e3367
test: unparallelize keeper
sunsingerus Jan 19, 2026
711138b
dev: switch to getter
sunsingerus Jan 19, 2026
3d5afad
dev: clarify reconciler
sunsingerus Jan 19, 2026
01550e9
dev: introduce chk normalizer const
sunsingerus Jan 19, 2026
560bafa
dev: switch to parametrized probes recon
sunsingerus Jan 19, 2026
85a35f6
dev: intoduce chk reconcile normalizer
sunsingerus Jan 19, 2026
e0657b8
Merge remote-tracking branch 'altinity/0.26.0' into 0.26.0
sunsingerus Jan 19, 2026
43be7b8
Merge pull request #1872 from discostur/fix-keeper-dashboard
Slach Jan 20, 2026
dee4194
Merge remote-tracking branch 'altinity/0.26.0' into 0.26.0
sunsingerus Jan 21, 2026
7a2e742
dev: start sts reconcile options introduction
sunsingerus Jan 22, 2026
f4c31cf
dev: introduce sts reconcile to chi
sunsingerus Jan 22, 2026
5a60bb2
dev: introduce sts options for a chop config
sunsingerus Jan 22, 2026
7a69d74
docs: example
sunsingerus Jan 22, 2026
a6643e9
dev: introduce sts options in config
sunsingerus Jan 22, 2026
5124f83
dev: merge chi-level config on a cluster level
sunsingerus Jan 22, 2026
3e99cb0
dev: introduce reconciler code
sunsingerus Jan 22, 2026
454bf9b
dev: nomrliazer consta
sunsingerus Jan 22, 2026
df056c8
dev: chi normalizer
sunsingerus Jan 22, 2026
cd4c058
dev: normalizer const
sunsingerus Jan 22, 2026
31b49df
dev: chk normalizer
sunsingerus Jan 22, 2026
f394381
dev: config
sunsingerus Jan 22, 2026
fbcd856
env: helm
sunsingerus Jan 22, 2026
6696864
env: manifests
sunsingerus Jan 22, 2026
3be0d8f
dev: on data loss abort for chi
sunsingerus Jan 23, 2026
3186eff
dev: on data loss abort for chk
sunsingerus Jan 23, 2026
800860e
dev: clarify create and introduce abort for recreate
sunsingerus Jan 23, 2026
218c376
dev: clarify recreate stateful set
sunsingerus Jan 23, 2026
709c56c
Fix installer to default template URL to OPERATOR_VERSION
realyota Jan 21, 2026
295d636
dev: add regexp
sunsingerus Jan 26, 2026
f978a9a
dev: config
sunsingerus Jan 26, 2026
0afe1ba
dev: crd
sunsingerus Jan 26, 2026
ade11f4
dev: implement metrics fetcher
sunsingerus Jan 26, 2026
a9b87fc
dev: constructore
sunsingerus Jan 26, 2026
dcc7455
docs: example
sunsingerus Jan 26, 2026
ed48497
dev: configs
sunsingerus Jan 26, 2026
76c9df9
env: manifests
sunsingerus Jan 26, 2026
f784353
env: helm chart
sunsingerus Jan 26, 2026
9716419
dev: normalizer
sunsingerus Jan 26, 2026
549b6fb
dev: fallback to safe defaults
sunsingerus Jan 26, 2026
b511809
docs: example
sunsingerus Jan 26, 2026
2a6b117
dev: config
sunsingerus Jan 26, 2026
990eab1
dev: crd
sunsingerus Jan 26, 2026
47f0b1d
dev: config update
sunsingerus Jan 26, 2026
70e0671
env: manifests
sunsingerus Jan 26, 2026
07b9acd
env: helm
sunsingerus Jan 26, 2026
ab2fa34
Add CRDHook annotations
eyyu Jan 30, 2026
420b97c
Merge pull request #1914 from eyyu/crdhook-annotations
Slach Feb 2, 2026
2d96563
fix https://github.com/Altinity/clickhouse-operator/issues/1916
Slach Feb 4, 2026
c8c2f8a
Merge pull request #1910 from realyota/web-installer-operator-version…
Slach Feb 4, 2026
8495379
fix https://github.com/Altinity/clickhouse-operator/issues/1916
Slach Feb 4, 2026
618e1e2
Merge pull request #1917
sunsingerus Feb 4, 2026
f7cb3bc
docs: clarify CHIT usage
eyyu Feb 7, 2026
243a480
Merge branch '0.26.0' of github.com:Altinity/clickhouse-operator into…
Slach Feb 7, 2026
3eaeddc
Merge pull request #1918 from eyyu/docs-add-chit-usage
Slach Feb 7, 2026
a55629c
dev: adjust resource index
sunsingerus Feb 7, 2026
85c4fd4
dev: exporter use updated cr
sunsingerus Feb 7, 2026
82efa10
env: helm
sunsingerus Feb 7, 2026
1710496
dev: file naming
sunsingerus Feb 7, 2026
d1d5df1
dev: clarification
sunsingerus Feb 7, 2026
5b998f1
dev: extract index constructor
sunsingerus Feb 7, 2026
22328c4
dev: clickhouse metrics fetcher
sunsingerus Feb 7, 2026
92e44be
dev: exporter
sunsingerus Feb 7, 2026
bda3cb4
dev: minor
sunsingerus Feb 7, 2026
9c5d07b
dev: clarify
sunsingerus Feb 7, 2026
873ad79
dev: standalone metrics collector
sunsingerus Feb 7, 2026
97d0461
dev: extract collector
sunsingerus Feb 7, 2026
71ee092
dev: extract registry as an entity
sunsingerus Feb 7, 2026
2cc5fe3
dev: exporter uses external registry
sunsingerus Feb 7, 2026
987c634
dev: exporter and external registry
sunsingerus Feb 7, 2026
1e317f5
dev: server
sunsingerus Feb 7, 2026
f07b046
dev: simplify server
sunsingerus Feb 7, 2026
51ba249
dev: introduce rest server
sunsingerus Feb 7, 2026
bc3d247
dev: registry
sunsingerus Feb 7, 2026
42edbf4
dev: formatter
sunsingerus Feb 7, 2026
248109e
dev: simplify remove operations
sunsingerus Feb 7, 2026
3156663
dev: switch server to new remove commands
sunsingerus Feb 7, 2026
5b89b96
dev: use exporter
sunsingerus Feb 7, 2026
c1c7c0f
dev: switch machinery to new protocol
sunsingerus Feb 7, 2026
293d4e1
dev: adjust client ccommands according to the new api
sunsingerus Feb 7, 2026
d536d55
dev: switch to http const
sunsingerus Feb 7, 2026
6a73f65
dev: reclaim - introduce labels for new pvc
sunsingerus Feb 8, 2026
13af73c
dev: reclaim - rewrite PVC with reclaim labels
sunsingerus Feb 8, 2026
bb1853b
dev: reclaim - common interface
sunsingerus Feb 8, 2026
5a4f5f2
dev: reclaim - call PVC creators with additional templates
sunsingerus Feb 8, 2026
4090562
dev: clarify excluder
sunsingerus Feb 8, 2026
b4009fd
dev: clarify includer
sunsingerus Feb 8, 2026
33df2c3
dev: minor
sunsingerus Feb 8, 2026
05b91dd
dev: enhanse monitoring starter to allocate watch and ensure watch is…
sunsingerus Feb 8, 2026
78a08fc
dev: watch allocator
sunsingerus Feb 8, 2026
ba2db3e
dev: rethink monitoring function
sunsingerus Feb 8, 2026
85050eb
dev: utilize modifications
sunsingerus Feb 8, 2026
d30fd4a
dev: mirror in chk
sunsingerus Feb 8, 2026
4f2fd65
dev: add host adder on monitoring level
sunsingerus Feb 8, 2026
294994c
dev: add host monitoring call
sunsingerus Feb 8, 2026
13881dd
dev: add host to minitoring upon reconcile completion
sunsingerus Feb 8, 2026
638ecdb
dev: add host to monitoring upon replication lag catch up
sunsingerus Feb 8, 2026
e1d2b3c
dev: bump go version
sunsingerus Feb 9, 2026
d5fd330
test: metrics
sunsingerus Feb 9, 2026
e5649b6
test: make metrics laucnher
sunsingerus Feb 9, 2026
8d6dfd2
dev: write event for replication lag catching process
sunsingerus Feb 9, 2026
48ef063
dev: minor test
sunsingerus Feb 10, 2026
a2e9900
dev: bump operator version
sunsingerus Feb 10, 2026
e38482a
dev: rework local test
sunsingerus Feb 10, 2026
bbbd04d
Fix distributed_ddl replicas_path mismatch causing ON CLUSTER DDL to …
Elmo33 Feb 10, 2026
e16df7b
test: extract common functions
sunsingerus Feb 10, 2026
bd796fd
test: keeper tests runner
sunsingerus Feb 10, 2026
623f800
test: metrics
sunsingerus Feb 10, 2026
6ba04c3
test: operator
sunsingerus Feb 10, 2026
ee0bd08
dev: undo
sunsingerus Feb 10, 2026
6c005ac
dev: move repeat functionality into main script
sunsingerus Feb 11, 2026
b0e758f
test: unhanse paraller
sunsingerus Feb 11, 2026
89e96fd
test: remove obsoleted scripts
sunsingerus Feb 11, 2026
7f2b6a8
test: clarify runner
sunsingerus Feb 11, 2026
e0647b8
test for serviceAccountName
alex-zaitsev Feb 12, 2026
5b2fef5
Merge remote-tracking branch 'saba/fix/distributed-ddl-replicas-path'…
sunsingerus Feb 12, 2026
1cf5a74
test: leanup modifications
sunsingerus Feb 13, 2026
522f8ee
test: enhanse scripts
sunsingerus Feb 13, 2026
ddda22b
test: runscript modifications for cleanup
sunsingerus Feb 13, 2026
a33c7be
dev: move columns
sunsingerus Feb 13, 2026
9cd1ee5
dev: move columns
sunsingerus Feb 13, 2026
3aa838d
dev: enable CHK startup proble
sunsingerus Feb 13, 2026
5c2cf51
dev: iverwrite chk startup probe wait
sunsingerus Feb 13, 2026
076e9a9
test: test clarification
sunsingerus Feb 13, 2026
32293af
test: cleanup clarification
sunsingerus Feb 13, 2026
8373621
dev: env var cleanup
sunsingerus Feb 13, 2026
76bf20f
test: typos
sunsingerus Feb 13, 2026
4920911
test: merge
sunsingerus Feb 13, 2026
0358f91
test: format
sunsingerus Feb 13, 2026
de43039
dev: minor
sunsingerus Feb 16, 2026
da96e45
dev: config
sunsingerus Feb 16, 2026
91fefa4
env: manifests
sunsingerus Feb 16, 2026
0d70844
env: helm
sunsingerus Feb 16, 2026
2365da0
Cleanup CHK version upgrade test
alex-zaitsev Feb 16, 2026
b62d590
Clarify logging
alex-zaitsev Feb 17, 2026
b27b2b0
Tests for FIPS images
alex-zaitsev Feb 17, 2026
84ff5a2
Test for CHK stop and suspend attributes
alex-zaitsev Feb 17, 2026
fd90c9f
dev: recreate abort issue
sunsingerus Feb 17, 2026
e922649
Merge remote-tracking branch 'altinity/0.26.0' into 0.26.0
sunsingerus Feb 17, 2026
adcf549
dev: inherit reconcile from CHI level
sunsingerus Feb 17, 2026
9902f95
sort keys in Settings.Keys() method for consistent order (fix manifes…
mastercactapus Feb 17, 2026
8978147
Merge branch '0.26.0' of https://github.com/Altinity/clickhouse-opera…
sunsingerus Feb 17, 2026
1c04aa4
Test for .spec.reconcile.statefulSet.recreate.onUpdateFailure
alex-zaitsev Feb 17, 2026
8bc8bc0
test: make test 42-2 to be unable to update sts
sunsingerus Feb 17, 2026
6944862
test: fix typos
sunsingerus Feb 17, 2026
304a99a
Improved test_042_2 on OnUpdateFailure logic
alex-zaitsev Feb 18, 2026
5da273e
Test for suspend attribute to interrupt existsing reconcile
alex-zaitsev Feb 18, 2026
6d625de
dev: rework k8s DNS
sunsingerus Feb 18, 2026
538533c
dev: config
sunsingerus Feb 18, 2026
eeed519
env: manifests
sunsingerus Feb 18, 2026
17aa002
env: helm
sunsingerus Feb 18, 2026
6b7a32d
Merge remote-tracking branch 'altinity/0.26.0' into 0.26.0
sunsingerus Feb 18, 2026
abba0cf
dev: aborting
sunsingerus Feb 18, 2026
8d94239
dev: sync chk
sunsingerus Feb 18, 2026
d3e56f4
Test improvements
alex-zaitsev Feb 18, 2026
dc30728
Cleanup tests
alex-zaitsev Feb 18, 2026
cbd5330
test: runner cleanup
sunsingerus Feb 18, 2026
a778503
Merge remote-tracking branch 'altinity/0.26.0' into 0.26.0
sunsingerus Feb 18, 2026
f6bec99
test: xfail flaky in CI test
sunsingerus Feb 18, 2026
10dc8df
Update stable version to
alex-zaitsev Feb 19, 2026
94064f2
NO_PARALLEL for volume tests
alex-zaitsev Feb 19, 2026
2f7b185
dev: cut off excessively long values
sunsingerus Feb 19, 2026
2c84026
dev: ignore in dump no-diff-valued fields
sunsingerus Feb 19, 2026
c978370
dev: truncate printable length
sunsingerus Feb 19, 2026
c726ac7
dev: turn strict go off
sunsingerus Feb 19, 2026
1cd2b4f
dev: compactify
sunsingerus Feb 19, 2026
243a0df
Check for Aborted status when suspend flag is set in the middle of a
alex-zaitsev Feb 19, 2026
d342fca
test: Aborted
sunsingerus Feb 19, 2026
51ead7b
Remove debug logging
alex-zaitsev Feb 19, 2026
3c6ccf8
helm: add optional registry prefix for operator and metrics images (#…
lesandie Feb 20, 2026
6398f7f
env: operatohub manifests
sunsingerus Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 8 additions & 15 deletions cmd/operator/app/thread_keeper.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,10 @@ func initKeeper(ctx context.Context) error {

err = ctrlRuntime.
NewControllerManagedBy(manager).
For(&api.ClickHouseKeeperInstallation{}, builder.WithPredicates(keeperPredicate())).
For(
&api.ClickHouseKeeperInstallation{},
builder.WithPredicates(keeperPredicate()),
).
Owns(&apps.StatefulSet{}).
Complete(
&controller.Controller{
Expand Down Expand Up @@ -88,40 +91,30 @@ func runKeeper(ctx context.Context) error {
func keeperPredicate() predicate.Funcs {
return predicate.Funcs{
CreateFunc: func(e event.CreateEvent) bool {
obj, ok := e.Object.(*api.ClickHouseKeeperInstallation)
new, ok := e.Object.(*api.ClickHouseKeeperInstallation)
if !ok {
return false
}

// Check if namespace should be watched (includes deny list check)
if !chop.Config().IsNamespaceWatched(obj.Namespace) {
logger.V(2).Info("chkInformer: skip event, namespace is not watched or is in deny list", "namespace", obj.Namespace)
if !controller.ShouldEnqueue(new) {
return false
}

if obj.Spec.Suspend.Value() {
return false
}
return true
},
DeleteFunc: func(e event.DeleteEvent) bool {
return true
},
UpdateFunc: func(e event.UpdateEvent) bool {
obj, ok := e.ObjectNew.(*api.ClickHouseKeeperInstallation)
new, ok := e.ObjectNew.(*api.ClickHouseKeeperInstallation)
if !ok {
return false
}

// Check if namespace should be watched (includes deny list check)
if !chop.Config().IsNamespaceWatched(obj.Namespace) {
logger.V(2).Info("chkInformer: skip event, namespace is not watched or is in deny list", "namespace", obj.Namespace)
if !controller.ShouldEnqueue(new) {
return false
}

if obj.Spec.Suspend.Value() {
return false
}
return true
},
GenericFunc: func(e event.GenericEvent) bool {
Expand Down
18 changes: 18 additions & 0 deletions config/config-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,10 @@ clickhouse:
# Upon reaching this timeout metrics collection is aborted and no more metrics are collected in this cycle.
# All collected metrics are returned.
collect: 9
# Regexp to match tables in system database to fetch metrics from.
# Multiple tables can be matched using regexp. Matched tables are merged using merge() table function.
# Default is "^(metrics|custom_metrics)$" which fetches from both system.metrics and system.custom_metrics.
tablesRegexp: "^(metrics|custom_metrics)$"

keeper:
configuration:
Expand Down Expand Up @@ -351,6 +355,20 @@ reconcile:
# 3. ignore - ignore an error, pretend nothing happened, continue reconcile and move on to the next StatefulSet.
onFailure: abort

# Recreate StatefulSet scenario
recreate:
# What to do in case operator is in need to recreate StatefulSet?
# Possible options:
# 1. abort - abort the process, do nothing with the problematic StatefulSet, leave it as it is,
# do not try to fix or delete or update it, just abort reconcile cycle.
# Do not proceed to the next StatefulSet(s) and wait for an admin to assist.
# 2. recreate - proceed and recreate StatefulSet.

# Triggered when PVC data loss or missing volumes are detected
onDataLoss: recreate
# Triggered when StatefulSet update fails or StatefulSet is not ready
onUpdateFailure: recreate

# Reconcile Host scenario
host:
# The operator during reconcile procedure should wait for a ClickHouse host to achieve the following conditions:
Expand Down
21 changes: 19 additions & 2 deletions config/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ clickhouse:
# Specified in seconds.
timeouts:
# Timout to setup connection from the operator to ClickHouse instances. In seconds.
connect: 1
connect: 5
# Timout to perform SQL query from the operator to ClickHouse instances. In seconds.
query: 4

Expand Down Expand Up @@ -216,7 +216,6 @@ clickhouse:
quotas:
settings:
files:

- version: ">= 23.5"
spec:
configuration:
Expand Down Expand Up @@ -245,6 +244,10 @@ clickhouse:
# Upon reaching this timeout metrics collection is aborted and no more metrics are collected in this cycle.
# All collected metrics are returned.
collect: 9
# Regexp to match tables in system database to fetch metrics from.
# Multiple tables can be matched using regexp. Matched tables are merged using merge() table function.
# Default is "^(metrics|custom_metrics)$" which fetches from both system.metrics and system.custom_metrics.
tablesRegexp: "^(metrics|custom_metrics)$"

keeper:
configuration:
Expand Down Expand Up @@ -349,6 +352,20 @@ reconcile:
# 3. ignore - ignore an error, pretend nothing happened, continue reconcile and move on to the next StatefulSet.
onFailure: abort

# Recreate StatefulSet scenario
recreate:
# What to do in case operator is in need to recreate StatefulSet?
# Possible options:
# 1. abort - abort the process, do nothing with the problematic StatefulSet, leave it as it is,
# do not try to fix or delete or update it, just abort reconcile cycle.
# Do not proceed to the next StatefulSet(s) and wait for an admin to assist.
# 2. recreate - proceed and recreate StatefulSet.

# Triggered when PVC data loss or missing volumes are detected
onDataLoss: recreate
# Triggered when StatefulSet update fails or StatefulSet is not ready
onUpdateFailure: recreate

# Reconcile Host scenario
host:
# The operator during reconcile procedure should wait for a ClickHouse host to achieve the following conditions:
Expand Down
21 changes: 19 additions & 2 deletions deploy/builder/templates-config/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ clickhouse:
# Specified in seconds.
timeouts:
# Timout to setup connection from the operator to ClickHouse instances. In seconds.
connect: 1
connect: 5
# Timout to perform SQL query from the operator to ClickHouse instances. In seconds.
query: 4

Expand Down Expand Up @@ -210,7 +210,6 @@ clickhouse:
quotas:
settings:
files:

- version: ">= 23.5"
spec:
configuration:
Expand Down Expand Up @@ -239,6 +238,10 @@ clickhouse:
# Upon reaching this timeout metrics collection is aborted and no more metrics are collected in this cycle.
# All collected metrics are returned.
collect: 9
# Regexp to match tables in system database to fetch metrics from.
# Multiple tables can be matched using regexp. Matched tables are merged using merge() table function.
# Default is "^(metrics|custom_metrics)$" which fetches from both system.metrics and system.custom_metrics.
tablesRegexp: "^(metrics|custom_metrics)$"

keeper:
configuration:
Expand Down Expand Up @@ -343,6 +346,20 @@ reconcile:
# 3. ignore - ignore an error, pretend nothing happened, continue reconcile and move on to the next StatefulSet.
onFailure: abort

# Recreate StatefulSet scenario
recreate:
# What to do in case operator is in need to recreate StatefulSet?
# Possible options:
# 1. abort - abort the process, do nothing with the problematic StatefulSet, leave it as it is,
# do not try to fix or delete or update it, just abort reconcile cycle.
# Do not proceed to the next StatefulSet(s) and wait for an admin to assist.
# 2. recreate - proceed and recreate StatefulSet.

# Triggered when PVC data loss or missing volumes are detected
onDataLoss: recreate
# Triggered when StatefulSet update fails or StatefulSet is not ready
onUpdateFailure: recreate

# Reconcile Host scenario
host:
# The operator during reconcile procedure should wait for a ClickHouse host to achieve the following conditions:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ spec:
served: true
storage: true
additionalPrinterColumns:
- name: status
type: string
description: Resource status
jsonPath: .status.status
- name: version
type: string
description: Operator version
Expand All @@ -49,10 +53,6 @@ spec:
description: TaskID
priority: 1 # show in wide view
jsonPath: .status.taskID
- name: status
type: string
description: Resource status
jsonPath: .status.status
- name: hosts-completed
type: integer
description: Completed hosts count
Expand Down Expand Up @@ -497,6 +497,80 @@ spec:
minimum: 0
maximum: 100
description: "The maximum percentage of cluster shards that may be reconciled in parallel, 50 percent by default."
statefulSet: &TypeReconcileStatefulSet
type: object
description: "Optional, StatefulSet reconcile behavior tuning"
properties:
create:
type: object
description: "Behavior during create StatefulSet"
properties:
onFailure:
type: string
description: |
What to do in case created StatefulSet is not in 'Ready' after `reconcile.statefulSet.update.timeout` seconds.
Possible options:
1. abort - abort the process, do nothing with the problematic StatefulSet, leave it as it is.
2. delete - delete newly created problematic StatefulSet and follow 'abort' path afterwards.
3. ignore - ignore an error, pretend nothing happened, continue reconcile and move on to the next StatefulSet.
enum:
- ""
- "abort"
- "delete"
- "ignore"
update:
type: object
description: "Behavior during update StatefulSet"
properties:
timeout:
type: integer
description: "How many seconds to wait for StatefulSet to be 'Ready' during update"
minimum: 0
maximum: 3600
pollInterval:
type: integer
description: "How many seconds to wait between checks for StatefulSet status during update"
minimum: 1
maximum: 600
onFailure:
type: string
description: |
What to do in case updated StatefulSet is not in 'Ready' after `reconcile.statefulSet.update.timeout` seconds.
Possible options:
1. abort - abort the process, do nothing with the problematic StatefulSet, leave it as it is.
2. rollback - delete Pod and rollback StatefulSet to previous Generation. Follow 'abort' path afterwards.
3. ignore - ignore an error, pretend nothing happened, continue reconcile and move on to the next StatefulSet.
enum:
- ""
- "abort"
- "rollback"
- "ignore"
recreate:
type: object
description: "Behavior during recreate StatefulSet"
properties:
onDataLoss:
type: string
description: |
What to do in case operator needs to recreate StatefulSet due to PVC data loss or missing volumes.
Possible options:
1. abort - abort the process, do nothing with the problematic StatefulSet.
2. recreate - proceed and recreate StatefulSet.
enum:
- ""
- "abort"
- "recreate"
onUpdateFailure:
type: string
description: |
What to do in case operator needs to recreate StatefulSet due to update failure or StatefulSet not ready.
Possible options:
1. abort - abort the process, do nothing with the problematic StatefulSet.
2. recreate - proceed and recreate StatefulSet.
enum:
- ""
- "abort"
- "recreate"
host: &TypeReconcileHost
type: object
description: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,12 @@ spec:
Timeout used to limit metrics collection request. In seconds.
Upon reaching this timeout metrics collection is aborted and no more metrics are collected in this cycle.
All collected metrics are returned.
tablesRegexp:
type: string
description: |
Regexp to match tables in system database to fetch metrics from.
Multiple tables can be matched using regexp. Matched tables are merged using merge() table function.
Default is "^(metrics|custom_metrics)$".
template:
type: object
description: "Parameters which are used if you want to generate ClickHouseInstallationTemplate custom resources from files which are stored inside clickhouse-operator deployment"
Expand Down Expand Up @@ -318,6 +324,24 @@ spec:
1. abort - do nothing, just break the process and wait for admin.
2. rollback (default) - delete Pod and rollback StatefulSet to previous Generation. Pod would be recreated by StatefulSet based on rollback-ed configuration.
3. ignore - ignore error, pretend nothing happened and move on to the next StatefulSet.
recreate:
type: object
description: "Behavior during recreate StatefulSet"
properties:
onDataLoss:
type: string
description: |
What to do in case operator needs to recreate StatefulSet due to PVC data loss or missing volumes.
Possible options:
1. abort - abort the process, do nothing with the problematic StatefulSet.
2. recreate (default) - proceed and recreate StatefulSet.
onUpdateFailure:
type: string
description: |
What to do in case operator needs to recreate StatefulSet due to update failure or StatefulSet not ready.
Possible options:
1. abort - abort the process, do nothing with the problematic StatefulSet.
2. recreate (default) - proceed and recreate StatefulSet.
host:
type: object
description: |
Expand Down
Loading
Loading