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, "")