ClickHouseCluster
clickhouseclusters API のスキーマです。
API バージョンと Kind
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
spec | ClickHouseClusterSpec | true | ||
status | ClickHouseClusterStatus | true |
ClickHouseClusterList
APIバージョンと Kind
| フィールド | Type | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
items | ClickHouseCluster の配列 | true |
ClickHouseClusterSpec
| Field | Type | Description | Required | Default |
|---|---|---|---|---|
replicas | integer | 単一分片内のレプリカ数。 | false | 3 |
shards | integer | クラスター内の分片数。 | false | 1 |
keeperClusterRef | KeeperClusterReference | ClickHouse のコーディネーションに使用される KeeperCluster への参照。 ネームスペースが省略された場合は、ClickHouseCluster のネームスペースが使用されます。 | true | |
podTemplate | PodTemplateSpec | ClickHouse ポッド仕様に渡されるパラメーター。 | false | |
containerTemplate | ContainerTemplateSpec | ClickHouse コンテナー仕様に渡されるパラメーター。 | false | |
dataVolumeClaimSpec | PersistentVolumeClaimSpec | ClickHouse データ用の永続ストレージ仕様。 | false | |
labels | object (keys:string, values:string) | リソースに追加されるラベル。 | false | |
annotations | object (keys:string, values:string) | リソースに追加されるアノテーション。 | false | |
podDisruptionBudget | PodDisruptionBudgetSpec | PodDisruptionBudget は、各分片に対して作成される PDB を設定します。 未設定の場合、オペレーターは単一レプリカの 分片では maxUnavailable=1、複数レプリカの分片では minAvailable=1 をデフォルトで使用します。 | false | |
settings | ClickHouseSettings | ClickHouse server の設定パラメーター。 | false | |
clusterDomain | string | ClusterDomain は、DNS 名前解決に使用される Kubernetes クラスターのドメイン接尾辞です。 | false | cluster.local |
upgradeChannel | string | UpgradeChannel は、メジャーバージョンのアップグレードチェックに使用するリリースチャネルを指定します。 空の場合は、マイナーアップデートのみが提案されます。指定できる値は stable、lts、または特定の major.minor バージョン (例: 25.8) です。 | false | |
versionProbeTemplate | VersionProbeTemplate | バージョン検出 Job に対する VersionProbeTemplate のオーバーライド。 | false | |
externalSecret | ExternalSecret | ExternalSecret は、クラスターのシークレットを含む外部管理された Secret への任意の参照です。 この Secret はクラスターと同じネームスペース内に存在している必要があります。 | false |
ClickHouseClusterStatus
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
conditions | Condition 配列 | false | ||
readyReplicas | integer | ReadyReplicas は、リクエストを処理できる状態にあるレプリカの総数です。 | false | |
configurationRevision | string | ConfigurationRevision は、各レプリカの対象構成リビジョンを示します。 | true | |
statefulSetRevision | string | StatefulSetRevision は、各レプリカの対象 StatefulSet リビジョンを示します。 | true | |
currentRevision | string | CurrentRevision は、最後に適用された ClickHouseCluster spec リビジョンを示します。 | true | |
updateRevision | string | UpdateRevision は、最後に要求された ClickHouseCluster spec リビジョンを示します。 | true | |
observedGeneration | integer | ObservedGeneration は、コントローラーが観測した最新の generation を示します。 | true | |
version | string | Version は、コンテナーイメージから報告されたバージョンを示します。 | false | |
versionProbeRevision | string | VersionProbeRevision は、最後に成功したバージョンプローブのイメージハッシュです。 これが現在のイメージハッシュと一致する場合は、cache された Version がそのまま使用されます。 | false |
ClickHouseSettings
| Field | Type | Description | Required | Default |
|---|---|---|---|---|
defaultUserPassword | DefaultPasswordSelector | default ClickHouse ユーザーのパスワードの取得元と種類を指定します。 | false | |
logger | LoggerConfig | ClickHouse server のログ設定です。 | false | |
tls | ClusterTLSSpec | TLS の設定です。ClickHouse server のセキュアなエンドポイントや証明書検証を構成できます。 | false | |
enableDatabaseSync | boolean | 新しく作成されたレプリカへの ClickHouse データベースの同期と、スケールダウン後の古くなったレプリカのクリーンアップを有効にします。 Replicated およびインテグレーションデータベースのみをサポートします。 | false | true |
extraConfig | RawExtension | デフォルト設定にマージされる追加の ClickHouse 設定です。 | false | |
extraUsersConfig | RawExtension | デフォルト設定にマージされる追加の ClickHouse ユーザー設定です。 | false |
ClusterTLSSpec
| Field | Type | Description | Required | Default |
|---|---|---|---|---|
enabled | boolean | Enabled は、TLS を有効にするかどうかを示し、セキュアなポートを開くかどうかを決定します。 | false | false |
required | boolean | Required は、すべての接続で TLS を必須にするかどうかを指定します。非セキュアポートは無効になります。 | false | false |
serverCertSecret | LocalObjectReference | ServerCertSecretRef は、サーバー証明書を含む TLS Secret への参照です。 Secret は cert-manager によって生成される証明書と同じ構造であることが想定されており、 証明書と秘密鍵はそれぞれ “tls.crt” と “tls.key” キーに格納されます。 | false | |
caBundle | SecretKeySelector | CABundle は、CA バンドルを含む TLS Secret への参照です。 空で、ServerCertSecret が指定されている場合は、証明書に含まれる CA バンドルが使用されます。 それ以外の場合は、システムで信頼されている CA バンドルが使用されます。 指定がない場合、Key のデフォルト値は “ca.crt” です。 | false |
ConfigMapKeySelector
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
name | string | 選択元の、クラスターのネームスペース内にある ConfigMap の名前。 | true | |
key | string | 選択する ConfigMap のキー。有効なキーである必要があります。 | true |
ContainerImage
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
repository | String | コンテナーイメージのレジストリ名 例: docker.io/clickhouse/clickhouse | false | |
tag | String | コンテナーイメージのタグ。hash と同時には指定できません。例: 25.3 | false | |
hash | String | コンテナーイメージのハッシュ。tag と同時には指定できません。 | false |
ContainerTemplateSpec
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
image | ContainerImage | Image は、デプロイするコンテナーイメージです。 | true | |
imagePullPolicy | PullPolicy | image の ImagePullPolicy です。デフォルトは IfNotPresent です。 | false | |
resources | ResourceRequirements | Resources は、サーバーコンテナーのリソース要件です。 SMP によりオペレーターのデフォルトとディープマージされます。個々の limits と requests は一致する キーのみを上書きし、未設定のフィールドではオペレーターのデフォルトが保持されます。 | false | |
volumeMounts | VolumeMount array | VolumeMounts は、コンテナーのボリュームマウントの一覧です。 オペレーターが生成したマウントと連結されます。オペレーターのマウントと mountPath を共有するエントリは、projected volume にマージされます。 | false | |
env | EnvVar array | Env は、コンテナーに設定する環境変数の一覧です。 名前を基準にオペレーターのデフォルトとマージされます。 | false | |
securityContext | SecurityContext | SecurityContext は、コンテナーの実行時に使用するセキュリティオプションを定義します。 nil ではない SecurityContext を指定すると、オペレーターのデフォルトは完全に置き換えられます。つまり、 構造体全体の管理はユーザー側の責任となります。nil の場合は、オペレーターのデフォルトが保持されます。 詳細: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ | false | |
livenessProbe | Probe | LivenessProbe は、オペレーターのデフォルトの liveness probe をオーバーライドします。 | false | |
readinessProbe | Probe | ReadinessProbe は、オペレーターのデフォルトの readiness probe をオーバーライドします。 | false |
DefaultPasswordSelector
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
passwordType | string | 指定したパスワードの種類です。設定可能な値については https://clickhouse.com/docs/operations/settings/settings-users#user-namepassword のドキュメントを参照してください | true | password |
secret | SecretKeySelector | Secret のキーからパスワード値を選択します | false | |
configMap | ConfigMapKeySelector | ConfigMap のキーからパスワード値を選択します | false |
ExternalSecret
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
name | string | Secret の名前。 | true | |
policy | ExternalSecretPolicy | ポリシーは、オペレーター が Secret の内容をどのように扱うかを制御します。 Observe (デフォルト) : 必須の key がいずれか不足している場合、reconciliation を停止します。 Manage: 不足している必須の key を既存の Secret に生成します。 | false | Observe |
ExternalSecretPolicy
| フィールド | 説明 |
|---|---|
Observe | ExternalSecretPolicyObserve はデフォルトのポリシーで、オペレーター は secret を読み取って検証します。 必要なキーが 1 つでも欠けている場合、reconciliation はブロックされます。 不足している必須キーとその想定フォーマットは、実行時に ExternalSecretValid ステータス条件を通じて報告されます。 |
Manage | ExternalSecretPolicyManage は、オペレーター が不足している必須キーを補うために、 その値を生成するポリシーです。secret は更新されますが、オペレーター が所有したり削除したりすることはありません。 |
KeeperCluster
keeperclusters API のスキーマです。
APIバージョンと Kind
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
spec | KeeperClusterSpec | true | ||
status | KeeperClusterStatus | true |
KeeperClusterList
APIバージョンとKind
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
items | KeeperCluster 配列 | true |
KeeperClusterReference
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
name | string | KeeperCluster リソースの名前。 | true | |
namespace | string | KeeperCluster リソースのネームスペース。 省略した場合は ClickHouseCluster のネームスペースが使用されます。 | false |
KeeperClusterSpec
| Field | Type | Description | Required | Default |
|---|---|---|---|---|
replicas | integer | クラスター内のレプリカ数 | false | 3 |
podTemplate | PodTemplateSpec | Keeper ポッド仕様に渡されるパラメーター。 | false | |
containerTemplate | ContainerTemplateSpec | Keeper コンテナー仕様に渡されるパラメーター。 | false | |
dataVolumeClaimSpec | PersistentVolumeClaimSpec | ClickHouse Keeper データ用の永続ストレージ仕様。 | false | |
labels | object (keys:string, values:string) | リソースに追加されるラベル。 | false | |
annotations | object (keys:string, values:string) | リソースに追加される annotations。 | false | |
podDisruptionBudget | PodDisruptionBudgetSpec | PodDisruptionBudget は、Keeper クラスター用に作成される PDB を設定します。 未設定の場合、オペレーターは既定で maxUnavailable=replicas/2 を使用します (2F+1 クラスターでクォーラムを維持するため)。 | false | |
settings | KeeperSettings | ClickHouse Keeper サーバーの設定パラメーター。 | false | |
clusterDomain | string | ClusterDomain は、DNS 名前解決に使用される Kubernetes クラスターのドメイン接尾辞です。 | false | cluster.local |
upgradeChannel | string | UpgradeChannel は、メジャーバージョンのアップグレード確認に使用するリリースチャネルを指定します。 空の場合、マイナーアップデートのみが提案されます。指定可能な値は stable、lts、または特定の major.minor バージョン (例: 25.8) です。 | false | |
versionProbeTemplate | VersionProbeTemplate | バージョン検出ジョブ用の VersionProbeTemplate を上書きします。 | false |
KeeperClusterStatus
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
conditions | Condition array | false | ||
readyReplicas | integer | ReadyReplicas は、リクエストを処理できる状態にあるレプリカの総数です。 | false | |
configurationRevision | string | ConfigurationRevision は、各レプリカの目標構成リビジョンを示します。 | true | |
statefulSetRevision | string | StatefulSetRevision は、各レプリカの目標 StatefulSet リビジョンを示します。 | true | |
currentRevision | string | CurrentRevision は、最後に適用された KeeperCluster spec リビジョンを示します。 | true | |
updateRevision | string | UpdateRevision は、最後に要求された KeeperCluster spec リビジョンを示します。 | true | |
observedGeneration | integer | ObservedGeneration は、コントローラーが最後に観測した generation を示します。 | true | |
version | string | Version は、コンテナーイメージから報告されたバージョンを示します。 | false | |
versionProbeRevision | string | VersionProbeRevision は、最後に成功したバージョンプローブのイメージハッシュです。 これが現在のイメージハッシュと一致する場合は、キャッシュされた Version がそのまま使用されます。 | false |
KeeperSettings
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
logger | LoggerConfig | ClickHouse Keeper サーバーのログ設定。 | false | |
tls | ClusterTLSSpec | TLS 設定。ClickHouse Keeper サーバー向けに、安全なエンドポイントと証明書検証を構成できます。 | false | |
extraConfig | RawExtension | デフォルト設定にマージされる追加の ClickHouse Keeper 設定。 | false |
LoggerConfig
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
logToFile | boolean | false の場合、ファイルへのログ出力をすべて無効にします。 | false | true |
jsonLogs | boolean | true の場合、JSONフォーマットでログを出力します。 | false | false |
level | string | サーバーロガーの詳細レベル。 | false | trace |
size | string | ログファイルの最大サイズ。 | false | 1000M |
count | integer | 保持するログファイルの最大数。 | false | 50 |
PDBPolicy
| フィールド | 説明 |
|---|---|
Enabled | PDBPolicyEnabled は、オペレーター による PodDisruptionBudget の作成を有効にします。 |
Disabled | PDBPolicyDisabled は PodDisruptionBudget を無効にし、オペレーター は一致するラベルを持つリソースを削除します。 |
Ignored | PDBPolicyIgnored は PodDisruptionBudget を無視します。オペレーター は PDB の作成や削除を行わず、既存の PDB は変更されません。 |
PodDisruptionBudgetSpec
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
policy | PDBPolicy | Policy は、オペレーターが PodDisruptionBudget を作成するかどうかを制御します。 未設定の場合、デフォルトは “Enabled” です。PDB の作成をスキップするには (たとえば開発環境では) 、“Disabled” に設定します。 | false | Enabled |
minAvailable | IntOrString | MinAvailable は、障害発生時にも利用可能な状態を維持する必要がある最小のポッド数です。 | false | |
maxUnavailable | IntOrString | MaxUnavailable は、障害発生時に利用不可となってよいポッドの最大数です。 | false | |
unhealthyPodEvictionPolicy | UnhealthyPodEvictionPolicyType | UnhealthyPodEvictionPolicy は、異常なポッドを エビクション対象と見なす条件を定義します。 有効な値は “IfReady” と “AlwaysAllow” です。 | false |
PodTemplateSpec
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
terminationGracePeriodSeconds | 整数 | ポッドが正常に終了するまでの猶予時間を秒単位で指定する省略可能な値です。削除リクエスト時には短縮される場合があります。 値は 0 以上の整数である必要があります。値が 0 の場合は、kill シグナルにより 即座に停止することを示します (正常終了の機会はありません) 。 この値が nil の場合は、代わりにデフォルトの猶予期間が使用されます。 猶予期間とは、ポッド内で実行中のプロセスに終了シグナルが送られてから、 kill シグナルによってプロセスが強制終了されるまでの秒単位の時間です。 この値は、プロセスで想定されるクリーンアップ時間より長く設定してください。 デフォルトは 30 秒です。 | false | |
topologySpreadConstraints | TopologySpreadConstraint 配列 | TopologySpreadConstraints は、ポッドのグループをトポロジー ドメイン全体にどのように分散すべきかを示します。スケジューラは、制約を満たすようにポッドをスケジュールします。 すべての topologySpreadConstraints は AND 条件で適用されます。 topologyKey によって operator のデフォルト値とマージされます。 | false | |
imagePullSecrets | LocalObjectReference 配列 | ImagePullSecrets は、この PodSpec で使用される任意のイメージの取得に使用する、同じネームスペース内の Secret への参照のオプションのリストです。 指定した場合、これらの Secret は各 puller 実装に渡され、そこで使用されます。 詳細情報: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod 名前をキーに operator のデフォルトとマージされます。 | false | |
nodeSelector | オブジェクト (キー:string, 値:string) | NodeSelector は、ポッドをノードに配置できるようにするために満たされている必要があるセレクターです。 ポッドをそのノードにスケジュールするには、ノードのラベルに一致している必要があるセレクターです。 詳細: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | false | |
affinity | アフィニティ | 指定した場合、ポッドのスケジューリング制約です。 operator のデフォルトに追加されます。スケジューリング条件のリストは連結されます。 | false | |
tolerations | Toleration の配列 | 指定した場合、ポッドの Tolerations です。 | false | |
schedulerName | string | 指定した場合、ポッドは指定したスケジューラによってスケジューリングされます。 指定しない場合、ポッドはデフォルトのスケジューラによってスケジューリングされます。 | false | |
serviceAccountName | string | ServiceAccountName は、このポッドの実行に使用する ServiceAccount の名前です。 詳細: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ | false | |
priorityClassName | string | PriorityClassName は、ポッドで使用する PriorityClass の名前です。 | false | |
runtimeClassName | 文字列 | RuntimeClassName は、ポッドで使用する RuntimeClass の名前です。 | false | |
volumes | Volume の配列 | Volumes は、ポッドに属するコンテナがマウントできるボリュームの一覧を定義します。 詳細: https://kubernetes.io/docs/concepts/storage/volumes 名前ごとにオペレーターのデフォルト設定とマージされます。同じ名前のオペレーターのボリュームがある場合は、ユーザー定義のボリュームで置き換えられます。 | false | |
securityContext | PodSecurityContext | SecurityContext は、ポッドレベルのセキュリティ属性と共通のコンテナー設定を保持します。 SecurityContext に nil 以外を指定すると、オペレーターのデフォルト設定は完全に置き換えられ、 構造体全体の管理はユーザーの責任となります。nil の場合は、オペレーターのデフォルト設定が維持されます。 | false | |
topologyZoneKey | string | TopologyZoneKey はノードラベルのキーです。 このキーを持ち、値が同一のラベルが設定されたノードは、同じトポロジーゾーンに属するとみなされます。 これを設定すると、デフォルトの TopologySpreadConstraints および Affinity ルールが有効になり、ポッドが各ゾーンに分散配置されます。 “topology.kubernetes.io/zone” に設定することを推奨します | false | |
nodeHostnameKey | string | NodeHostnameKey はノードラベルのキーです。 このキーを持ち、かつその値が同じラベルを持つノードは、同一ノード上にあると見なされます。 これを設定すると、異なる分片のレプリカをノード間に分散配置するためのデフォルトの AntiAffinity ルールが有効になります。 “kubernetes.io/hostname” に設定することを推奨します。 | false | |
initContainers | Container の配列 | InitContainers は、メインのサーバーコンテナーが起動する前に実行される init コンテナーの一覧です。 名前を基準に operator のデフォルト設定とマージされます。 同名のもの同士が対象です。 | false |
SecretKeySelector
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
name | string | 選択元の、クラスターのネームスペース内にある Secret の名前。 | true | |
key | string | 選択する Secret のキー。有効なシークレットキーである必要があります。 | true |
TemplateMeta
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
labels | object (keys:string, values:string) | ラベルは、テンプレートオブジェクトに適用されるラベルです。 | false | |
annotations | object (keys:string, values:string) | アノテーションは、テンプレートオブジェクトに適用されるアノテーションです。 | false |
VersionProbeContainer
| Field | Type | Description | Required | Default |
|---|---|---|---|---|
name | string | コンテナー名。空の場合、オペレーターがバージョンプローブコンテナー名を設定します。 | true | version-probe |
resources | ResourceRequirements | バージョンプローブコンテナーに必要なコンピュートリソース要件です。 SMP により、オペレーターのデフォルト設定とディープマージされます。 | false | |
securityContext | SecurityContext | バージョンプローブコンテナーのセキュリティオプションを定義する SecurityContext です。 SMP により、オペレーターのデフォルト設定とディープマージされます。 | false |
VersionProbeJobSpec
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
ttlSecondsAfterFinished | integer | TTLSecondsAfterFinished は、完了した Job の存続期間を制限します。 | false | |
template | VersionProbePodTemplate | Template は、バージョンプローブ Job 用に作成されるポッドを記述します。 | false |
VersionProbePodSpec
| Field | Type | Description | Required | Default |
|---|---|---|---|---|
nodeSelector | object (keys:string, values:string) | NodeSelector は、一致するラベルを持つノードでのみバージョンプローブのポッドが実行されるよう制限します。 | false | |
tolerations | Toleration array | バージョンプローブのポッドに対する Tolerations。 | false | |
securityContext | PodSecurityContext | SecurityContext は、バージョンプローブのポッドに対するポッドレベルのセキュリティ属性を保持します。 | false | |
containers | VersionProbeContainer array | バージョンプローブのポッドに対する Containers のオーバーライドです。 name フィールドは省略可能で、オペレーター によってデフォルトのコンテナー名が補完されます。 別の名前を持つ追加コンテナーを指定することもできます。 | false |
VersionProbePodTemplate
| フィールド | 型 | 説明 | 必須 | デフォルト |
|---|---|---|---|---|
metadata | TemplateMeta | metadata の各フィールドについては、Kubernetes API のドキュメントを参照してください。 | false | |
spec | VersionProbePodSpec | バージョンプローブ用ポッドの望ましい動作の仕様。 | false |
VersionProbeTemplate
| Field | Type | Description | Required | Default |
|---|---|---|---|---|
metadata | TemplateMeta | metadata のフィールドについては、Kubernetes API のドキュメントを参照してください。 | false | |
spec | VersionProbeJobSpec | バージョンプローブ Job の期待される動作を定義する仕様。 | false |