diff --git a/deploy/builder/templates-install-bundle/clickhouse-operator-install-yaml-template-01-section-crd-01-chi-chit.yaml b/deploy/builder/templates-install-bundle/clickhouse-operator-install-yaml-template-01-section-crd-01-chi-chit.yaml
index ad7327eee..af7fd8ca3 100644
--- a/deploy/builder/templates-install-bundle/clickhouse-operator-install-yaml-template-01-section-crd-01-chi-chit.yaml
+++ b/deploy/builder/templates-install-bundle/clickhouse-operator-install-yaml-template-01-section-crd-01-chi-chit.yaml
@@ -620,6 +620,9 @@ spec:
identity:
type: string
description: "optional access credentials string with `user:password` format used when use digest authorization in Zookeeper"
+ use_compression:
+ !!merge <<: *TypeStringBool
+ description: "Enables compression in Keeper protocol if set to true"
users:
type: object
description: |
diff --git a/deploy/helm/clickhouse-operator/crds/CustomResourceDefinition-clickhouseinstallations.clickhouse.altinity.com.yaml b/deploy/helm/clickhouse-operator/crds/CustomResourceDefinition-clickhouseinstallations.clickhouse.altinity.com.yaml
index 24f7f4a31..87bc39704 100644
--- a/deploy/helm/clickhouse-operator/crds/CustomResourceDefinition-clickhouseinstallations.clickhouse.altinity.com.yaml
+++ b/deploy/helm/clickhouse-operator/crds/CustomResourceDefinition-clickhouseinstallations.clickhouse.altinity.com.yaml
@@ -620,6 +620,9 @@ spec:
identity:
type: string
description: "optional access credentials string with `user:password` format used when use digest authorization in Zookeeper"
+ use_compression:
+ !!merge <<: *TypeStringBool
+ description: "Enables compression in Keeper protocol if set to true"
users:
type: object
description: |
diff --git a/deploy/helm/clickhouse-operator/crds/CustomResourceDefinition-clickhouseinstallationtemplates.clickhouse.altinity.com.yaml b/deploy/helm/clickhouse-operator/crds/CustomResourceDefinition-clickhouseinstallationtemplates.clickhouse.altinity.com.yaml
index 51ae50227..8f5b87ea7 100644
--- a/deploy/helm/clickhouse-operator/crds/CustomResourceDefinition-clickhouseinstallationtemplates.clickhouse.altinity.com.yaml
+++ b/deploy/helm/clickhouse-operator/crds/CustomResourceDefinition-clickhouseinstallationtemplates.clickhouse.altinity.com.yaml
@@ -620,6 +620,9 @@ spec:
identity:
type: string
description: "optional access credentials string with `user:password` format used when use digest authorization in Zookeeper"
+ use_compression:
+ !!merge <<: *TypeStringBool
+ description: "Enables compression in Keeper protocol if set to true"
users:
type: object
description: |
diff --git a/pkg/apis/clickhouse.altinity.com/v1/type_zookeeper.go b/pkg/apis/clickhouse.altinity.com/v1/type_zookeeper.go
index 7a3e5f8c2..91c6da080 100644
--- a/pkg/apis/clickhouse.altinity.com/v1/type_zookeeper.go
+++ b/pkg/apis/clickhouse.altinity.com/v1/type_zookeeper.go
@@ -15,19 +15,23 @@
package v1
import (
- "gopkg.in/d4l3k/messagediff.v1"
"strings"
+
+ "gopkg.in/d4l3k/messagediff.v1"
+
+ "github.com/altinity/clickhouse-operator/pkg/apis/common/types"
)
// ZookeeperConfig defines zookeeper section of .spec.configuration
// Refers to
-// https://clickhouse.yandex/docs/en/single/index.html?#server-settings_zookeeper
+// https://clickhouse.com/docs/operations/server-configuration-parameters/settings#zookeeper
type ZookeeperConfig struct {
- Nodes ZookeeperNodes `json:"nodes,omitempty" yaml:"nodes,omitempty"`
- SessionTimeoutMs int `json:"session_timeout_ms,omitempty" yaml:"session_timeout_ms,omitempty"`
- OperationTimeoutMs int `json:"operation_timeout_ms,omitempty" yaml:"operation_timeout_ms,omitempty"`
- Root string `json:"root,omitempty" yaml:"root,omitempty"`
- Identity string `json:"identity,omitempty" yaml:"identity,omitempty"`
+ Nodes ZookeeperNodes `json:"nodes,omitempty" yaml:"nodes,omitempty"`
+ SessionTimeoutMs int `json:"session_timeout_ms,omitempty" yaml:"session_timeout_ms,omitempty"`
+ OperationTimeoutMs int `json:"operation_timeout_ms,omitempty" yaml:"operation_timeout_ms,omitempty"`
+ Root string `json:"root,omitempty" yaml:"root,omitempty"`
+ Identity string `json:"identity,omitempty" yaml:"identity,omitempty"`
+ UseCompression *types.StringBool `json:"use_compression,omitempty" yaml:"use_compression,omitempty"`
}
type ZookeeperNodes []ZookeeperNode
@@ -114,6 +118,7 @@ func (zkc *ZookeeperConfig) MergeFrom(from *ZookeeperConfig, _type MergeType) *Z
if from.Identity != "" {
zkc.Identity = from.Identity
}
+ zkc.UseCompression = zkc.UseCompression.MergeFrom(from.UseCompression)
return zkc
}
diff --git a/pkg/model/chi/config/generator.go b/pkg/model/chi/config/generator.go
index 3f1365b01..9ec3f1355 100644
--- a/pkg/model/chi/config/generator.go
+++ b/pkg/model/chi/config/generator.go
@@ -165,6 +165,11 @@ func (c *Generator) getHostZookeeper(host *chi.Host) string {
util.Iline(b, 8, "%s", zk.Identity)
}
+ // Append use_compression
+ if zk.UseCompression != nil && zk.UseCompression.IsValid() {
+ util.Iline(b, 8, "%s", zk.UseCompression.String())
+ }
+
//
util.Iline(b, 4, "")