Перейти к основному содержанию
В этом документе содержится подробный справочник по API пользовательских ресурсов ClickHouse Operator.

ClickHouseCluster

ClickHouseCluster — это схема API clickhouseclusters.

Версия API и Kind

apiVersion: clickhouse.com/v1alpha1
kind: ClickHouseCluster
ПолеТипОписаниеОбязательноеПо умолчанию
specClickHouseClusterSpectrue
statusClickHouseClusterStatustrue
Входит в:

ClickHouseClusterList

ClickHouseClusterList содержит список объектов ClickHouseCluster.

Версия API и Kind

apiVersion: clickhouse.com/v1alpha1
kind: ClickHouseClusterList
ПолеТипОписаниеОбязательноПо умолчанию
itemsмассив ClickHouseClustertrue

ClickHouseClusterSpec

ClickHouseClusterSpec определяет желаемое состояние ClickHouseCluster.
ПолеТипОписаниеОбязательноПо умолчанию
replicasintegerКоличество реплик в одном сегменте.false3
shardsintegerКоличество сегментов в кластере.false1
keeperClusterRefKeeperClusterReferenceСсылка на KeeperCluster, используемый для координации ClickHouse.
Если пространство имен не указано, используется пространство имен ClickHouseCluster.
true
podTemplatePodTemplateSpecПараметры, передаваемые в спецификацию пода ClickHouse.false
containerTemplateContainerTemplateSpecПараметры, передаваемые в спецификацию контейнера ClickHouse.false
dataVolumeClaimSpecPersistentVolumeClaimSpecСпецификация постоянного хранилища для данных ClickHouse.false
labelsobject (keys:string, values:string)Дополнительные метки, добавляемые к ресурсам.false
annotationsobject (keys:string, values:string)Дополнительные аннотации, добавляемые к ресурсам.false
podDisruptionBudgetPodDisruptionBudgetSpecPodDisruptionBudget настраивает PDB, создаваемый для каждого сегмента.
Если значение не задано, оператор по умолчанию использует maxUnavailable=1 для сегментов
с одной репликой и minAvailable=1 для сегментов с несколькими репликами.
false
settingsClickHouseSettingsПараметры конфигурации для сервера ClickHouse.false
clusterDomainstringClusterDomain — это суффикс домена кластера Kubernetes, используемый для DNS-разрешения.falsecluster.local
upgradeChannelstringUpgradeChannel задает канал выпуска для проверок обновлений мажорных версий.
Если значение пустое, будут предлагаться только минорные обновления. Допустимые значения: stable, lts или конкретная версия major.minor (например, 25.8).
false
versionProbeTemplateVersionProbeTemplateПереопределения VersionProbeTemplate для задачи определения версии.false
externalSecretExternalSecretExternalSecret — это необязательная ссылка на Secret под внешним управлением, содержащий секреты кластера.
Этот Secret должен находиться в том же пространстве имен, что и кластер.
false
Встречается в:

ClickHouseClusterStatus

ClickHouseClusterStatus определяет наблюдаемое состояние ClickHouseCluster.
ПолеТипОписаниеОбязательноПо умолчанию
conditionsCondition массивfalse
readyReplicasintegerReadyReplicas — общее количество реплик, готовых обслуживать запросы.false
configurationRevisionstringConfigurationRevision указывает целевую ревизию конфигурации для каждой реплики.true
statefulSetRevisionstringStatefulSetRevision указывает целевую ревизию StatefulSet для каждой реплики.true
currentRevisionstringCurrentRevision указывает последнюю применённую ревизию спецификации ClickHouseCluster.true
updateRevisionstringUpdateRevision указывает последнюю запрошенную ревизию спецификации ClickHouseCluster.true
observedGenerationintegerObservedGeneration указывает последнее поколение, зафиксированное контроллером.true
versionstringVersion указывает версию, указанную в образе контейнера.false
versionProbeRevisionstringVersionProbeRevision — хэш образа последней успешной проверки версии.
Когда он совпадает с текущим хэшем образа, кэшированная Version используется напрямую.
false
Встречается в:

ClickHouseSettings

ClickHouseSettings определяет параметры настройки сервера ClickHouse.
ПолеТипОписаниеОбязательноПо умолчанию
defaultUserPasswordDefaultPasswordSelectorУказывает источник и тип пароля для пользователя default в ClickHouse.false
loggerLoggerConfigКонфигурация логирования сервера ClickHouse.false
tlsClusterTLSSpecНастройки TLS, позволяющие настроить защищенные конечные точки и проверку сертификатов для сервера ClickHouse.false
enableDatabaseSyncbooleanВключает синхронизацию баз данных ClickHouse с вновь созданными репликами и очистку устаревших реплик
после уменьшения числа реплик.
Поддерживаются только базы данных Replicated и базы данных интеграций.
falsetrue
extraConfigRawExtensionДополнительная конфигурация ClickHouse, которая будет объединена с конфигурацией по умолчанию.false
extraUsersConfigRawExtensionДополнительная конфигурация пользователей ClickHouse, которая будет объединена с конфигурацией по умолчанию.false
Используется в:

ClusterTLSSpec

ClusterTLSSpec определяет настройки TLS для кластера.
ПолеТипОписаниеОбязательноПо умолчанию
enabledbooleanEnabled указывает, включен ли TLS, и определяет, нужно ли открывать защищённые порты.falsefalse
requiredbooleanRequired указывает, должен ли TLS быть обязательным для всех соединений. Отключает незащищённые порты.falsefalse
serverCertSecretLocalObjectReferenceServerCertSecretRef — ссылка на TLS Secret, содержащий сертификат сервера.
Ожидается, что Secret имеет ту же структуру, что и сертификаты, сгенерированные cert-manager:
сертификат и приватный ключ должны храниться под ключами “tls.crt” и “tls.key” соответственно.
false
caBundleSecretKeySelectorCABundle — ссылка на TLS Secret, содержащий набор сертификатов CA.
Если значение пустое и указан ServerCertSecret, будет использоваться набор CA из сертификата.
В противном случае будет использоваться системный набор доверенных сертификатов CA.
Если ключ не указан, по умолчанию используется “ca.crt”.
false
Используется в:

ConfigMapKeySelector

ConfigMapKeySelector выбирает ключ в ConfigMap.
ПолеТипОписаниеОбязательноПо умолчанию
namestringИмя ConfigMap в пространстве имен кластера, из которой выполняется выбор.true
keystringКлюч ConfigMap, который нужно выбрать. Должен быть допустимым ключом.true
Встречается в:

ContainerImage

ContainerImage задаёт образ контейнера с указанием repository, tag или hash.
ПолеТипОписаниеОбязательноПо умолчанию
repositorystringИмя реестра образа контейнера
Пример: docker.io/clickhouse/clickhouse
false
tagstringТег образа контейнера; взаимоисключается с ‘hash’.
Пример: 25.3
false
hashstringХэш образа контейнера; взаимоисключается с ‘tag’.false
Встречается в:

ContainerTemplateSpec

ContainerTemplateSpec описывает переопределения конфигурации контейнеров кластера.
ПолеТипОписаниеОбязательноПо умолчанию
imageContainerImageImage — образ контейнера, который будет развернут.true
imagePullPolicyPullPolicyImagePullPolicy для образа; по умолчанию используется IfNotPresent.false
resourcesResourceRequirementsResources — требования к ресурсам для контейнера сервера.
Рекурсивно объединяются со значениями оператора по умолчанию через SMP. Отдельные limits и requests переопределяют только совпадающие
ключи; для незаданных полей сохраняются значения по умолчанию оператора.
false
volumeMountsVolumeMount arrayVolumeMounts — список монтирований томов для контейнера.
Конкатенируется с монтированиями, сгенерированными оператором. Записи с тем же mountPath, что и у монтирования
оператора, объединяются в projected volume.
false
envEnvVar arrayEnv — список переменных окружения, задаваемых в контейнере.
Объединяется со значениями оператора по умолчанию по имени.
false
securityContextSecurityContextSecurityContext определяет параметры безопасности, с которыми должен запускаться контейнер.
Ненулевой SecurityContext полностью заменяет значения оператора по умолчанию; пользователь управляет
всей структурой целиком. Если значение nil, сохраняются значения оператора по умолчанию.
Подробнее: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
false
livenessProbeProbeLivenessProbe переопределяет стандартную проверку работоспособности оператора.false
readinessProbeProbeReadinessProbe переопределяет стандартную проверку готовности оператора.false
Встречается в:

DefaultPasswordSelector

DefaultPasswordSelector задает источник пароля пользователя по умолчанию.
ПолеТипОписаниеОбязательноПо умолчанию
passwordTypestringТип заданного пароля. Возможные значения см. в документации: https://clickhouse.com/docs/operations/settings/settings-users#user-namepasswordtruepassword
secretSecretKeySelectorВыбор значения пароля из ключа Secretfalse
configMapConfigMapKeySelectorВыбор значения пароля из ключа ConfigMapfalse
Используется в:

ExternalSecret

ExternalSecret — это ссылка на Secret в том же пространстве имен.
ПолеТипОписаниеОбязательноПо умолчанию
namestringИмя Secret.true
policyExternalSecretPolicyПолитика определяет, как оператор обращается с содержимым секрета.
Observe (по умолчанию): блокирует реконсиляцию, если отсутствует любой обязательный ключ.
Manage: добавляет отсутствующие обязательные ключи в существующий секрет.
falseObserve
Встречается в:

ExternalSecretPolicy

ExternalSecretPolicy определяет, как оператор обрабатывает содержимое внешнего Secret.
ПолеОписание
ObserveExternalSecretPolicyObserve — политика по умолчанию: оператор считывает и проверяет Secret;
реконсиляция блокируется, если отсутствует какой-либо обязательный ключ.
Отсутствующие обязательные ключи и ожидаемые для них форматы указываются через условие состояния ExternalSecretValid в процессе работы.
ManageExternalSecretPolicyManage — политика, при которой оператор добавляет недостающие обязательные ключи, генерируя
для них значения. Secret обновляется, но оператор никогда не становится его владельцем и не удаляет его.
Встречается в:

KeeperCluster

KeeperCluster — схема API keeperclusters.

Версия API и kind

apiVersion: clickhouse.com/v1alpha1
kind: KeeperCluster
ПолеТипОписаниеОбязательноПо умолчанию
specKeeperClusterSpectrue
statusKeeperClusterStatustrue
Встречается в:

KeeperClusterList

KeeperClusterList содержит список KeeperCluster.

Версия API и Kind

apiVersion: clickhouse.com/v1alpha1
kind: KeeperClusterList
ПолеТипОписаниеОбязательноПо умолчанию
itemsмассив KeeperClustertrue

KeeperClusterReference

KeeperClusterReference указывает на KeeperCluster, используемый в ClickHouseCluster.
ПолеТипОписаниеОбязательноПо умолчанию
namestringИмя ресурса KeeperCluster.true
namespacestringПространство имен ресурса KeeperCluster.
Если не указано, используется пространство имен ClickHouseCluster.
false
Встречается в:

KeeperClusterSpec

KeeperClusterSpec определяет желаемое состояние KeeperCluster.
ПолеТипОписаниеОбязательноеПо умолчанию
replicasintegerКоличество реплик в кластереfalse3
podTemplatePodTemplateSpecПараметры, передаваемые в спецификацию пода Keeper.false
containerTemplateContainerTemplateSpecПараметры, передаваемые в спецификацию контейнера Keeper.false
dataVolumeClaimSpecPersistentVolumeClaimSpecСпецификация постоянного хранилища для данных ClickHouse Keeper.false
labelsobject (keys:string, values:string)Дополнительные метки, добавляемые к ресурсам.false
annotationsobject (keys:string, values:string)Дополнительные аннотации, добавляемые к ресурсам.false
podDisruptionBudgetPodDisruptionBudgetSpecPodDisruptionBudget настраивает PDB, создаваемый для кластера Keeper.
Если не задан, оператор по умолчанию использует maxUnavailable=replicas/2
(сохраняя кворум для кластера 2F+1).
false
settingsKeeperSettingsПараметры конфигурации для сервера ClickHouse Keeper.false
clusterDomainstringClusterDomain — это суффикс домена кластера Kubernetes, используемый для DNS-разрешения.falsecluster.local
upgradeChannelstringUpgradeChannel задаёт канал релизов для проверки обновлений мажорной версии.
Если значение пустое, будут предлагаться только минорные обновления. Допустимые значения: stable, lts или конкретная версия major.minor (например, 25.8).
false
versionProbeTemplateVersionProbeTemplateПереопределения VersionProbeTemplate для задачи определения версии.false
Встречается в:

KeeperClusterStatus

KeeperClusterStatus определяет наблюдаемое состояние KeeperCluster.
ПолеТипОписаниеОбязательноеПо умолчанию
conditionsCondition массивfalse
readyReplicasintegerReadyReplicas — общее число реплик, готовых обслуживать запросы.false
configurationRevisionstringConfigurationRevision указывает целевую ревизию конфигурации для каждой реплики.true
statefulSetRevisionstringStatefulSetRevision указывает целевую ревизию StatefulSet для каждой реплики.true
currentRevisionstringCurrentRevision указывает последнюю применённую ревизию спецификации KeeperCluster.true
updateRevisionstringUpdateRevision указывает последнюю запрошенную ревизию спецификации KeeperCluster.true
observedGenerationintegerObservedGeneration указывает последнее поколение, зафиксированное контроллером.true
versionstringVersion указывает версию, которую сообщает образ контейнера.false
versionProbeRevisionstringVersionProbeRevision — хеш образа последней успешной проверки версии.
Когда он совпадает с текущим хешем образа, кэшированное значение Version используется напрямую.
false
Встречается в:

KeeperSettings

KeeperSettings определяет конфигурацию сервера ClickHouse Keeper.
ПолеТипОписаниеОбязательноПо умолчанию
loggerLoggerConfigКонфигурация логирования сервера ClickHouse Keeper.false
tlsClusterTLSSpecНастройки TLS, позволяющие настроить защищённые конечные точки и проверку сертификатов для сервера ClickHouse Keeper.false
extraConfigRawExtensionДополнительная конфигурация ClickHouse Keeper, которая будет объединена с конфигурацией по умолчанию.false
Встречается в:

LoggerConfig

LoggerConfig задаёт конфигурацию логирования сервера.
ПолеТипОписаниеОбязательноПо умолчанию
logToFilebooleanЕсли false, отключает запись журналов в файл.falsetrue
jsonLogsbooleanЕсли true, журналы записываются в формате JSON.falsefalse
levelstringУровень детализации логгера сервера.falsetrace
sizestringМаксимальный размер файла журнала.false1000M
countintegerМаксимальное количество сохраняемых файлов журнала.false50
Встречается в:

PDBPolicy

PDBPolicy определяет, будут ли создаваться объекты PodDisruptionBudget.
ПолеОписание
EnabledPDBPolicyEnabled включает создание объектов PodDisruptionBudget оператором.
DisabledPDBPolicyDisabled отключает объекты PodDisruptionBudget; оператор удалит ресурс с соответствующими метками.
IgnoredPDBPolicyIgnored игнорирует объекты PodDisruptionBudget; оператор не будет создавать или удалять PDB, а существующие PDB останутся без изменений.
Встречается в:

PodDisruptionBudgetSpec

PodDisruptionBudgetSpec настраивает PDB, создаваемый для кластера. Можно задать только один из параметров: MinAvailable или MaxUnavailable. Если не задан ни один из них, оператор выбирает безопасное значение по умолчанию на основе количества реплик.
ПолеТипОписаниеОбязательноПо умолчанию
policyPDBPolicyПолитика определяет, будет ли оператор создавать PodDisruptionBudget.
Если значение не задано, по умолчанию используется “Enabled”. Установите “Disabled”, чтобы не создавать PDB (например, в средах разработки).
falseEnabled
minAvailableIntOrStringMinAvailable — минимальное количество подов, которые должны оставаться доступными при нарушении работы.false
maxUnavailableIntOrStringMaxUnavailable — максимальное количество подов, которые могут быть недоступны при нарушении работы.false
unhealthyPodEvictionPolicyUnhealthyPodEvictionPolicyTypeUnhealthyPodEvictionPolicy определяет критерии, по которым неработоспособные поды
следует рассматривать для выселения.
Допустимые значения: “IfReady” и “AlwaysAllow”.
false
Встречается в:

PodTemplateSpec

PodTemplateSpec описывает переопределения конфигурации подов кластера.
ПолеТипОписаниеОбязательноПо умолчанию
terminationGracePeriodSecondsцелое числоНеобязательная длительность в секундах, необходимая поду для корректного завершения работы. Может быть уменьшена в запросе на удаление.
Значение должно быть неотрицательным целым числом. Значение 0 означает немедленную остановку с помощью
сигнала kill (без возможности штатного завершения работы).
Если это значение равно nil, вместо него будет использоваться период ожидания по умолчанию.
Период ожидания — это длительность в секундах между отправкой процессам, выполняющимся в поде,
сигнала завершения и моментом, когда процессы будут принудительно остановлены сигналом kill.
Установите это значение больше ожидаемого времени очистки для процесса.
По умолчанию — 30 секунд.
false
topologySpreadConstraintsTopologySpreadConstraint массивTopologySpreadConstraints описывает, как группа подов должна быть распределена между доменами
топологии. Планировщик будет размещать поды в соответствии с этими ограничениями.
Все topologySpreadConstraints объединяются логическим И.
Объединяется со значениями по умолчанию оператора по topologyKey.
false
imagePullSecretsLocalObjectReference массивImagePullSecrets — это необязательный список ссылок на секреты в том же пространстве имен, используемый для загрузки любых образов, применяемых в этом PodSpec.
Если указано, эти секреты будут переданы отдельным реализациям загрузки для использования.
Подробнее: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
Объединяется со значениями оператора по умолчанию по имени.
false
nodeSelectorобъект (ключи:string, значения:string)NodeSelector — это селектор, условия которого должны выполняться, чтобы под можно было разместить на узле.
Селектор, который должен соответствовать меткам узла, чтобы под был назначен на этот узел.
Подробнее: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
false
affinityАффинностьЕсли указано, задаёт ограничения на планирование пода.
Добавляется к значениям по умолчанию оператора: списки условий планирования объединяются.
false
tolerationsToleration массивЕсли указано, задает допуски пода.false
schedulerNamestringЕсли указано, для пода будет использоваться указанный планировщик.
Если не указано, для пода будет использоваться планировщик по умолчанию.
false
serviceAccountNamestringServiceAccountName — это имя ServiceAccount, используемое для запуска этого пода.
Подробнее: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
false
priorityClassNamestringPriorityClassName — имя PriorityClass, используемого для пода.false
runtimeClassNamestringRuntimeClassName — имя RuntimeClass, используемого для пода.false
volumesмассив VolumeVolumes определяет список томов, которые могут быть смонтированы в контейнерах, входящих в под.
Подробнее: https://kubernetes.io/docs/concepts/storage/volumes
Объединяется с томами оператора по имени; пользовательский том заменяет любой том оператора с тем же именем.
false
securityContextPodSecurityContextSecurityContext содержит атрибуты безопасности на уровне пода и общие настройки контейнеров.
Если SecurityContext не равен nil, он полностью заменяет значения по умолчанию, заданные оператором; пользователь отвечает за всю
структуру целиком. Если значение равно nil, сохраняются значения по умолчанию оператора.
false
topologyZoneKeystringTopologyZoneKey — это ключ меток узлов.
Узлы с меткой с этим ключом и одинаковыми значениями считаются находящимися в одной и той же топологической зоне.
Задайте его, чтобы включить правила TopologySpreadConstraints и Affinity по умолчанию для распределения подов по зонам.
Рекомендуется задать значение “topology.kubernetes.io/zone”
false
nodeHostnameKeystringNodeHostnameKey — это ключ меток узла.
Узлы с меткой с этим ключом и одинаковыми значениями считаются находящимися на одном и том же узле.
Укажите его, чтобы включить правила AntiAffinity по умолчанию и распределять реплики из разных сегментов по узлам.
Рекомендуется установить значение “kubernetes.io/hostname”
false
initContainersмассив ContainerInitContainers — это список init-контейнеров, запускаемых до запуска основного контейнера сервера.
Объединяется со значениями по умолчанию оператора
для контейнеров с тем же именем.
false
Используется в:

SecretKeySelector

SecretKeySelector выбирает ключ объекта Secret.
ПолеТипОписаниеОбязательноПо умолчанию
namestringИмя Secret в пространстве имен кластера, из которого выбирается значение.true
keystringКлюч Secret, который нужно выбрать. Должен быть допустимым ключом Secret.true
Встречается в:

TemplateMeta

TemplateMeta определяет поддерживаемые параметры метаданных для объектов шаблона.
ПолеТипОписаниеОбязательноПо умолчанию
labelsobject (keys:string, values:string)Метки, применяемые к объектам шаблона.false
annotationsobject (keys:string, values:string)annotations, применяемые к объектам шаблона.false
Используется в:

VersionProbeContainer

VersionProbeContainer задаёт переопределения для проверки версии на уровне контейнера. Имена полей и JSON-теги соответствуют corev1.Container, чтобы SMP выполнял слияние по имени.
ПолеТипОписаниеОбязательноеПо умолчанию
namestringИмя контейнера. Если не указано, оператор задаёт имя контейнера для проверки версии.trueversion-probe
resourcesResourceRequirementsРесурсы, необходимые контейнеру проверки версии для вычислений.
Объединяются со значениями оператора по умолчанию через глубокое слияние SMP.
false
securityContextSecurityContextSecurityContext определяет параметры безопасности для контейнера проверки версии.
Объединяется со значениями оператора по умолчанию через глубокое слияние SMP.
false
Встречается в:

VersionProbeJobSpec

VersionProbeJobSpec задаёт переопределения на уровне задачи для проверки версии.
ПолеТипОписаниеОбязательноПо умолчанию
ttlSecondsAfterFinishedintegerTTLSecondsAfterFinished ограничивает время существования завершённой задачи.false
templateVersionProbePodTemplateШаблон описывает под, который будет создан для задачи проверки версии.false
Встречается в:

VersionProbePodSpec

VersionProbePodSpec задаёт переопределения на уровне пода для проверки версии. Имена полей и JSON-теги соответствуют corev1.PodSpec для совместимости со strategic merge patch.
ПолеТипОписаниеОбязательноеПо умолчанию
nodeSelectorobject (keys:string, values:string)NodeSelector ограничивает запуск пода проверки версии узлами с соответствующими метками.false
tolerationsToleration arrayTolerations для пода проверки версии.false
securityContextPodSecurityContextSecurityContext содержит атрибуты безопасности на уровне пода для пода проверки версии.false
containersVersionProbeContainer arrayПереопределения контейнеров для пода проверки версии.
Поле name необязательно — оператор заполняет его именем контейнера по умолчанию.
Также можно указать дополнительный контейнер с другим именем.
false
Используется в:

VersionProbePodTemplate

VersionProbePodTemplate описывает переопределения для пода проверки версии.
ПолеТипОписаниеОбязательноПо умолчанию
metadataTemplateMetaОписание полей metadata см. в документации Kubernetes API.false
specVersionProbePodSpecСпецификация требуемого поведения пода проверки версии.false
Встречается в:

VersionProbeTemplate

VersionProbeTemplate задает переопределения для задачи определения версии. Структура повторяет batchv1.JobTemplateSpec и содержит только поддерживаемые поля.
ПолеТипОписаниеОбязательноеПо умолчанию
metadataTemplateMetaОписание полей metadata см. в документации Kubernetes API.false
specVersionProbeJobSpecСпецификация требуемого поведения задачи проверки версии.false
Встречается в:
Последнее изменение 10 июня 2026 г.