typekro 0.22.1 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/core/deployment/kro-factory.d.ts +19 -0
- package/dist/core/deployment/kro-factory.d.ts.map +1 -1
- package/dist/core/deployment/kro-factory.js +60 -6
- package/dist/core/deployment/kro-factory.js.map +1 -1
- package/dist/core/proxy/create-resource.d.ts.map +1 -1
- package/dist/core/proxy/create-resource.js +37 -0
- package/dist/core/proxy/create-resource.js.map +1 -1
- package/dist/core/references/schema-proxy.d.ts.map +1 -1
- package/dist/core/references/schema-proxy.js +21 -5
- package/dist/core/references/schema-proxy.js.map +1 -1
- package/dist/factories/clickhouse/compositions/clickhouse-cluster.d.ts +78 -0
- package/dist/factories/clickhouse/compositions/clickhouse-cluster.d.ts.map +1 -0
- package/dist/factories/clickhouse/compositions/clickhouse-cluster.js +258 -0
- package/dist/factories/clickhouse/compositions/clickhouse-cluster.js.map +1 -0
- package/dist/factories/clickhouse/compositions/clickhouse-helm-repository.d.ts +22 -0
- package/dist/factories/clickhouse/compositions/clickhouse-helm-repository.d.ts.map +1 -0
- package/dist/factories/clickhouse/compositions/clickhouse-helm-repository.js +35 -0
- package/dist/factories/clickhouse/compositions/clickhouse-helm-repository.js.map +1 -0
- package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.d.ts +68 -0
- package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.d.ts.map +1 -0
- package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.js +137 -0
- package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.js.map +1 -0
- package/dist/factories/clickhouse/compositions/index.d.ts +4 -0
- package/dist/factories/clickhouse/compositions/index.d.ts.map +1 -0
- package/dist/factories/clickhouse/compositions/index.js +4 -0
- package/dist/factories/clickhouse/compositions/index.js.map +1 -0
- package/dist/factories/clickhouse/index.d.ts +70 -0
- package/dist/factories/clickhouse/index.d.ts.map +1 -0
- package/dist/factories/clickhouse/index.js +70 -0
- package/dist/factories/clickhouse/index.js.map +1 -0
- package/dist/factories/clickhouse/resources/helm.d.ts +62 -0
- package/dist/factories/clickhouse/resources/helm.d.ts.map +1 -0
- package/dist/factories/clickhouse/resources/helm.js +94 -0
- package/dist/factories/clickhouse/resources/helm.js.map +1 -0
- package/dist/factories/clickhouse/resources/index.d.ts +4 -0
- package/dist/factories/clickhouse/resources/index.d.ts.map +1 -0
- package/dist/factories/clickhouse/resources/index.js +4 -0
- package/dist/factories/clickhouse/resources/index.js.map +1 -0
- package/dist/factories/clickhouse/resources/installation.d.ts +83 -0
- package/dist/factories/clickhouse/resources/installation.d.ts.map +1 -0
- package/dist/factories/clickhouse/resources/installation.js +316 -0
- package/dist/factories/clickhouse/resources/installation.js.map +1 -0
- package/dist/factories/clickhouse/resources/keeper.d.ts +40 -0
- package/dist/factories/clickhouse/resources/keeper.d.ts.map +1 -0
- package/dist/factories/clickhouse/resources/keeper.js +107 -0
- package/dist/factories/clickhouse/resources/keeper.js.map +1 -0
- package/dist/factories/clickhouse/types.d.ts +552 -0
- package/dist/factories/clickhouse/types.d.ts.map +1 -0
- package/dist/factories/clickhouse/types.js +295 -0
- package/dist/factories/clickhouse/types.js.map +1 -0
- package/dist/factories/clickhouse/utils/helm-values-mapper.d.ts +65 -0
- package/dist/factories/clickhouse/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/clickhouse/utils/helm-values-mapper.js +80 -0
- package/dist/factories/clickhouse/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/clickhouse/utils/index.d.ts +4 -0
- package/dist/factories/clickhouse/utils/index.d.ts.map +1 -0
- package/dist/factories/clickhouse/utils/index.js +4 -0
- package/dist/factories/clickhouse/utils/index.js.map +1 -0
- package/dist/factories/clickhouse/utils/validation.d.ts +21 -0
- package/dist/factories/clickhouse/utils/validation.d.ts.map +1 -0
- package/dist/factories/clickhouse/utils/validation.js +27 -0
- package/dist/factories/clickhouse/utils/validation.js.map +1 -0
- package/dist/factories/clickhouse/utils/zone-layout.d.ts +74 -0
- package/dist/factories/clickhouse/utils/zone-layout.d.ts.map +1 -0
- package/dist/factories/clickhouse/utils/zone-layout.js +103 -0
- package/dist/factories/clickhouse/utils/zone-layout.js.map +1 -0
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts +248 -0
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts.map +1 -0
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.js +251 -0
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.js.map +1 -0
- package/dist/factories/clickstack/compositions/clickstack-helm-repository.d.ts +23 -0
- package/dist/factories/clickstack/compositions/clickstack-helm-repository.d.ts.map +1 -0
- package/dist/factories/clickstack/compositions/clickstack-helm-repository.js +36 -0
- package/dist/factories/clickstack/compositions/clickstack-helm-repository.js.map +1 -0
- package/dist/factories/clickstack/compositions/index.d.ts +5 -0
- package/dist/factories/clickstack/compositions/index.d.ts.map +1 -0
- package/dist/factories/clickstack/compositions/index.js +5 -0
- package/dist/factories/clickstack/compositions/index.js.map +1 -0
- package/dist/factories/clickstack/compositions/k8s-telemetry.d.ts +83 -0
- package/dist/factories/clickstack/compositions/k8s-telemetry.d.ts.map +1 -0
- package/dist/factories/clickstack/compositions/k8s-telemetry.js +134 -0
- package/dist/factories/clickstack/compositions/k8s-telemetry.js.map +1 -0
- package/dist/factories/clickstack/compositions/otel-helm-repository.d.ts +18 -0
- package/dist/factories/clickstack/compositions/otel-helm-repository.d.ts.map +1 -0
- package/dist/factories/clickstack/compositions/otel-helm-repository.js +31 -0
- package/dist/factories/clickstack/compositions/otel-helm-repository.js.map +1 -0
- package/dist/factories/clickstack/index.d.ts +40 -0
- package/dist/factories/clickstack/index.d.ts.map +1 -0
- package/dist/factories/clickstack/index.js +40 -0
- package/dist/factories/clickstack/index.js.map +1 -0
- package/dist/factories/clickstack/resources/helm.d.ts +78 -0
- package/dist/factories/clickstack/resources/helm.d.ts.map +1 -0
- package/dist/factories/clickstack/resources/helm.js +139 -0
- package/dist/factories/clickstack/resources/helm.js.map +1 -0
- package/dist/factories/clickstack/resources/index.d.ts +3 -0
- package/dist/factories/clickstack/resources/index.d.ts.map +1 -0
- package/dist/factories/clickstack/resources/index.js +3 -0
- package/dist/factories/clickstack/resources/index.js.map +1 -0
- package/dist/factories/clickstack/resources/mongo.d.ts +40 -0
- package/dist/factories/clickstack/resources/mongo.d.ts.map +1 -0
- package/dist/factories/clickstack/resources/mongo.js +122 -0
- package/dist/factories/clickstack/resources/mongo.js.map +1 -0
- package/dist/factories/clickstack/types.d.ts +483 -0
- package/dist/factories/clickstack/types.d.ts.map +1 -0
- package/dist/factories/clickstack/types.js +300 -0
- package/dist/factories/clickstack/types.js.map +1 -0
- package/dist/factories/clickstack/utils/helm-values-mapper.d.ts +118 -0
- package/dist/factories/clickstack/utils/helm-values-mapper.d.ts.map +1 -0
- package/dist/factories/clickstack/utils/helm-values-mapper.js +505 -0
- package/dist/factories/clickstack/utils/helm-values-mapper.js.map +1 -0
- package/dist/factories/clickstack/utils/index.d.ts +2 -0
- package/dist/factories/clickstack/utils/index.d.ts.map +1 -0
- package/dist/factories/clickstack/utils/index.js +2 -0
- package/dist/factories/clickstack/utils/index.js.map +1 -0
- package/dist/factories/index.d.ts +1 -0
- package/dist/factories/index.d.ts.map +1 -1
- package/dist/factories/index.js +4 -0
- package/dist/factories/index.js.map +1 -1
- package/package.json +9 -1
|
@@ -0,0 +1,552 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClickHouse (Altinity clickhouse-operator) Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* ArkType schemas as the single source of truth for config shapes, with types
|
|
5
|
+
* inferred via `typeof Schema.infer`. Status types remain hand-written
|
|
6
|
+
* interfaces, mirroring the CNPG factory family.
|
|
7
|
+
*
|
|
8
|
+
* Wraps the OFFICIAL Altinity clickhouse-operator (Apache-2.0):
|
|
9
|
+
* - Operator chart: `altinity-clickhouse-operator` from https://helm.altinity.com
|
|
10
|
+
* - CHI CRD: `clickhouseinstallations.clickhouse.altinity.com/v1`
|
|
11
|
+
* - CHK CRD: `clickhousekeeperinstallations.clickhouse-keeper.altinity.com/v1`
|
|
12
|
+
*
|
|
13
|
+
* @see https://github.com/Altinity/clickhouse-operator
|
|
14
|
+
* @see https://docs.altinity.com/altinitykubernetesoperator/
|
|
15
|
+
*/
|
|
16
|
+
import type { TypeKroChartValue } from '../../core/types/common.js';
|
|
17
|
+
/**
|
|
18
|
+
* ArkType schema for ClickHouseOperatorBootstrapConfig.
|
|
19
|
+
*
|
|
20
|
+
* Configuration for installing the Altinity clickhouse-operator via Helm.
|
|
21
|
+
* Used by the `clickhouseOperatorBootstrap` composition to deploy the
|
|
22
|
+
* operator controller into the cluster.
|
|
23
|
+
*
|
|
24
|
+
* IMPORTANT: the operator is CLUSTER-SCOPED and owns the ClickHouse CRDs —
|
|
25
|
+
* install exactly ONE per cluster. Multiple installs fight over CRD ownership
|
|
26
|
+
* and watch the same resources. The bootstrap defaults to `shared: true`
|
|
27
|
+
* (cluster-scoped resource tagging) accordingly.
|
|
28
|
+
*/
|
|
29
|
+
export declare const ClickHouseOperatorBootstrapConfigSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
30
|
+
name: string;
|
|
31
|
+
namespace?: string;
|
|
32
|
+
version?: string;
|
|
33
|
+
metrics?: {
|
|
34
|
+
enabled?: boolean;
|
|
35
|
+
};
|
|
36
|
+
crdHook?: {
|
|
37
|
+
enabled?: boolean;
|
|
38
|
+
};
|
|
39
|
+
resources?: {
|
|
40
|
+
requests?: {
|
|
41
|
+
cpu?: string;
|
|
42
|
+
memory?: string;
|
|
43
|
+
};
|
|
44
|
+
limits?: {
|
|
45
|
+
cpu?: string;
|
|
46
|
+
memory?: string;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
customValues?: Record<string, unknown>;
|
|
50
|
+
shared?: boolean;
|
|
51
|
+
}, {}>;
|
|
52
|
+
/** Configuration for installing the Altinity clickhouse-operator via Helm. */
|
|
53
|
+
export type ClickHouseOperatorBootstrapConfig = typeof ClickHouseOperatorBootstrapConfigSchema.infer;
|
|
54
|
+
/**
|
|
55
|
+
* Observed status of an Altinity clickhouse-operator deployment.
|
|
56
|
+
*/
|
|
57
|
+
export interface ClickHouseOperatorBootstrapStatus {
|
|
58
|
+
/** Overall deployment phase (derived from HelmRelease Ready condition). */
|
|
59
|
+
phase: 'Ready' | 'Installing';
|
|
60
|
+
/** Whether the operator is ready to manage installations. */
|
|
61
|
+
ready: boolean;
|
|
62
|
+
/** Deployed chart version. */
|
|
63
|
+
version?: string;
|
|
64
|
+
}
|
|
65
|
+
/** ArkType schema for ClickHouseOperatorBootstrapStatus. */
|
|
66
|
+
export declare const ClickHouseOperatorBootstrapStatusSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
67
|
+
phase: "Ready" | "Installing";
|
|
68
|
+
ready: boolean;
|
|
69
|
+
version?: string;
|
|
70
|
+
}, {}>;
|
|
71
|
+
/** Spec accepted by the shared ClickHouse HelmRepository singleton. */
|
|
72
|
+
export declare const ClickHouseHelmRepositorySingletonSpecSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
73
|
+
name: string;
|
|
74
|
+
namespace: string;
|
|
75
|
+
url: string;
|
|
76
|
+
}, {}>;
|
|
77
|
+
/** Status surfaced by the shared ClickHouse HelmRepository singleton. */
|
|
78
|
+
export declare const ClickHouseHelmRepositorySingletonStatusSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
79
|
+
ready: boolean;
|
|
80
|
+
}, {}>;
|
|
81
|
+
/**
|
|
82
|
+
* ArkType schema for ClickHouseHelmRepositoryConfig.
|
|
83
|
+
*
|
|
84
|
+
* Configuration for the Altinity Helm chart repository.
|
|
85
|
+
*/
|
|
86
|
+
export declare const ClickHouseHelmRepositoryConfigSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
87
|
+
name?: string;
|
|
88
|
+
namespace?: string;
|
|
89
|
+
url?: string;
|
|
90
|
+
interval?: string;
|
|
91
|
+
id?: string;
|
|
92
|
+
}, {}>;
|
|
93
|
+
/** Configuration for the Altinity Helm chart repository. */
|
|
94
|
+
export type ClickHouseHelmRepositoryConfig = typeof ClickHouseHelmRepositoryConfigSchema.infer;
|
|
95
|
+
/**
|
|
96
|
+
* ArkType schema for ClickHouseOperatorHelmReleaseConfig.
|
|
97
|
+
*
|
|
98
|
+
* Configuration for the altinity-clickhouse-operator Helm release.
|
|
99
|
+
*/
|
|
100
|
+
export declare const ClickHouseOperatorHelmReleaseConfigSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
101
|
+
name: string;
|
|
102
|
+
namespace?: string;
|
|
103
|
+
version?: string;
|
|
104
|
+
values?: object;
|
|
105
|
+
repositoryName?: string;
|
|
106
|
+
id?: string;
|
|
107
|
+
}, {}>;
|
|
108
|
+
/**
|
|
109
|
+
* Configuration for the altinity-clickhouse-operator Helm release.
|
|
110
|
+
*
|
|
111
|
+
* `values` is widened beyond the ArkType inference so a graph-aware
|
|
112
|
+
* {@link TypeKroChartValue} (including a runtime values-merge expression
|
|
113
|
+
* produced when `customValues` is a schema ref) flows through to the
|
|
114
|
+
* underlying `helmRelease` factory.
|
|
115
|
+
*/
|
|
116
|
+
export type ClickHouseOperatorHelmReleaseConfig = Omit<typeof ClickHouseOperatorHelmReleaseConfigSchema.infer, 'values'> & {
|
|
117
|
+
values?: TypeKroChartValue<Record<string, unknown>>;
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* ArkType schema for a single ClickHouse user entry.
|
|
121
|
+
*
|
|
122
|
+
* ARRAY shape (not a name-keyed map): user NAMES become CHI configuration
|
|
123
|
+
* PATH FRAGMENTS (`<user>/password_sha256_hex`), so they must be concrete
|
|
124
|
+
* strings at build time — a map keyed by schema proxies would serialize its
|
|
125
|
+
* keys as `__typekroSchemaKey/...` garbage. The array shape keeps names in a
|
|
126
|
+
* plain value position where the factory can validate them loudly, while
|
|
127
|
+
* `passwordSha256Hex`/`networksIp` are ordinary VALUES and may be schema
|
|
128
|
+
* references or CEL expressions.
|
|
129
|
+
*/
|
|
130
|
+
export declare const ClickHouseUserSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
131
|
+
name: string;
|
|
132
|
+
passwordSha256Hex?: string;
|
|
133
|
+
networksIp?: string[];
|
|
134
|
+
}, {}>;
|
|
135
|
+
/** A single ClickHouse user entry (see {@link ClickHouseUserSchema}). */
|
|
136
|
+
export type ClickHouseUser = typeof ClickHouseUserSchema.infer;
|
|
137
|
+
/**
|
|
138
|
+
* ArkType schema for ClickHouseInstallationConfig.
|
|
139
|
+
*
|
|
140
|
+
* HIGH-LEVEL configuration compiled by `clickHouseInstallation()` into a
|
|
141
|
+
* `clickhouse.altinity.com/v1` ClickHouseInstallation (CHI) spec. This is
|
|
142
|
+
* deliberately not a 1:1 CRD mirror: the typed factory exists to compile the
|
|
143
|
+
* zone-pinning layout the operator cannot express natively (see
|
|
144
|
+
* `utils/zone-layout.ts`).
|
|
145
|
+
*
|
|
146
|
+
* BUILD-TIME vs RUNTIME: `shards`, `replicas`, `zones`, and user NAMES are
|
|
147
|
+
* BUILD-TIME fields — the compiler enumerates pod templates and per-replica
|
|
148
|
+
* layout entries from them, so they must be concrete JS values (the factory
|
|
149
|
+
* throws loudly if any receives a KubernetesRef/CEL expression). Everything
|
|
150
|
+
* else (name, namespace, version, storage sizes, credentials, keeper host,
|
|
151
|
+
* ...) sits in plain VALUE positions and may be schema references. For
|
|
152
|
+
* schema-driven topology use `makeClickHouseCluster()`, which fixes the
|
|
153
|
+
* topology at construction time and exposes only ref-safe runtime spec.
|
|
154
|
+
*/
|
|
155
|
+
export declare const ClickHouseInstallationConfigSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
156
|
+
name: string;
|
|
157
|
+
version: string;
|
|
158
|
+
storage: {
|
|
159
|
+
size: string;
|
|
160
|
+
storageClassName?: string;
|
|
161
|
+
};
|
|
162
|
+
namespace?: string;
|
|
163
|
+
id?: string;
|
|
164
|
+
clusterName?: string;
|
|
165
|
+
image?: string;
|
|
166
|
+
shards?: number;
|
|
167
|
+
replicas?: number;
|
|
168
|
+
zones?: string[];
|
|
169
|
+
users?: {
|
|
170
|
+
name: string;
|
|
171
|
+
passwordSha256Hex?: string;
|
|
172
|
+
networksIp?: string[];
|
|
173
|
+
}[];
|
|
174
|
+
keeper?: {
|
|
175
|
+
host: string;
|
|
176
|
+
port?: number;
|
|
177
|
+
};
|
|
178
|
+
podResources?: {
|
|
179
|
+
requests?: {
|
|
180
|
+
cpu?: string;
|
|
181
|
+
memory?: string;
|
|
182
|
+
};
|
|
183
|
+
limits?: {
|
|
184
|
+
cpu?: string;
|
|
185
|
+
memory?: string;
|
|
186
|
+
};
|
|
187
|
+
};
|
|
188
|
+
}, {}>;
|
|
189
|
+
/** High-level configuration for a ClickHouseInstallation. */
|
|
190
|
+
export type ClickHouseInstallationConfig = typeof ClickHouseInstallationConfigSchema.infer;
|
|
191
|
+
/** A CHI pod template (`spec.templates.podTemplates[]`). */
|
|
192
|
+
export interface ChiPodTemplate {
|
|
193
|
+
name: string;
|
|
194
|
+
/** Kubernetes PodSpec — open CRD structure. */
|
|
195
|
+
spec?: Record<string, unknown>;
|
|
196
|
+
/** Operator zone sugar; the factory emits explicit nodeAffinity instead. */
|
|
197
|
+
zone?: {
|
|
198
|
+
key?: string;
|
|
199
|
+
values: string[];
|
|
200
|
+
};
|
|
201
|
+
podDistribution?: Record<string, unknown>[];
|
|
202
|
+
}
|
|
203
|
+
/** A CHI volume claim template (`spec.templates.volumeClaimTemplates[]`). */
|
|
204
|
+
export interface ChiVolumeClaimTemplate {
|
|
205
|
+
name: string;
|
|
206
|
+
/** Kubernetes PersistentVolumeClaimSpec — open CRD structure. */
|
|
207
|
+
spec: Record<string, unknown>;
|
|
208
|
+
}
|
|
209
|
+
/** Per-replica entry in a replica-first cluster layout. */
|
|
210
|
+
export interface ChiClusterLayoutReplica {
|
|
211
|
+
name?: string;
|
|
212
|
+
templates?: {
|
|
213
|
+
podTemplate?: string;
|
|
214
|
+
dataVolumeClaimTemplate?: string;
|
|
215
|
+
};
|
|
216
|
+
shardsCount?: number;
|
|
217
|
+
}
|
|
218
|
+
/** Cluster layout (`spec.configuration.clusters[].layout`). */
|
|
219
|
+
export interface ChiClusterLayout {
|
|
220
|
+
shardsCount?: number;
|
|
221
|
+
replicasCount?: number;
|
|
222
|
+
/** Replica-first explicit layout (used for zone pinning). */
|
|
223
|
+
replicas?: ChiClusterLayoutReplica[];
|
|
224
|
+
shards?: Record<string, unknown>[];
|
|
225
|
+
}
|
|
226
|
+
/** Logical cluster (`spec.configuration.clusters[]`). */
|
|
227
|
+
export interface ChiCluster {
|
|
228
|
+
name: string;
|
|
229
|
+
layout?: ChiClusterLayout;
|
|
230
|
+
templates?: {
|
|
231
|
+
podTemplate?: string;
|
|
232
|
+
dataVolumeClaimTemplate?: string;
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/** ClickHouseInstallation spec (`clickhouse.altinity.com/v1`). */
|
|
236
|
+
export interface ClickHouseInstallationSpec {
|
|
237
|
+
defaults?: {
|
|
238
|
+
templates?: {
|
|
239
|
+
podTemplate?: string;
|
|
240
|
+
dataVolumeClaimTemplate?: string;
|
|
241
|
+
serviceTemplate?: string;
|
|
242
|
+
};
|
|
243
|
+
};
|
|
244
|
+
configuration?: {
|
|
245
|
+
clusters?: ChiCluster[];
|
|
246
|
+
/** Keeper/ZooKeeper coordination nodes. */
|
|
247
|
+
zookeeper?: {
|
|
248
|
+
nodes?: {
|
|
249
|
+
host: string;
|
|
250
|
+
port?: number;
|
|
251
|
+
}[];
|
|
252
|
+
};
|
|
253
|
+
/** Path-keyed user settings (e.g. `admin/password_sha256_hex`). */
|
|
254
|
+
users?: Record<string, unknown>;
|
|
255
|
+
settings?: Record<string, unknown>;
|
|
256
|
+
files?: Record<string, string>;
|
|
257
|
+
};
|
|
258
|
+
templates?: {
|
|
259
|
+
podTemplates?: ChiPodTemplate[];
|
|
260
|
+
volumeClaimTemplates?: ChiVolumeClaimTemplate[];
|
|
261
|
+
serviceTemplates?: Record<string, unknown>[];
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Observed status of a ClickHouseInstallation.
|
|
266
|
+
*
|
|
267
|
+
* The reconcile state lives in `status.status`, one of:
|
|
268
|
+
* `InProgress` | `Completed` | `Aborted` | `Terminating`
|
|
269
|
+
* (source: clickhouse-operator
|
|
270
|
+
* `pkg/apis/clickhouse.altinity.com/v1/type_status.go`).
|
|
271
|
+
*/
|
|
272
|
+
export interface ClickHouseInstallationStatus {
|
|
273
|
+
/** Reconcile status: 'InProgress' | 'Completed' | 'Aborted' | 'Terminating'. */
|
|
274
|
+
status?: string;
|
|
275
|
+
/** Operator version that produced this status. */
|
|
276
|
+
chopVersion?: string;
|
|
277
|
+
clustersCount?: number;
|
|
278
|
+
shardsCount?: number;
|
|
279
|
+
hostsCount?: number;
|
|
280
|
+
hostsCompletedCount?: number;
|
|
281
|
+
taskID?: string;
|
|
282
|
+
/** Recent reconcile errors. */
|
|
283
|
+
errors?: string[];
|
|
284
|
+
/** Generated ClickHouse endpoint (service DNS name). */
|
|
285
|
+
endpoint?: string;
|
|
286
|
+
fqdns?: string[];
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* BUILD-TIME user declaration for {@link ClickHouseClusterTopology}.
|
|
290
|
+
*
|
|
291
|
+
* The user NAME becomes a CHI configuration path fragment
|
|
292
|
+
* (`<name>/password_sha256_hex`) and the allowed networks are part of the
|
|
293
|
+
* cluster's access topology — both are fixed at construction time. The
|
|
294
|
+
* password hash is env-specific and flows through the RUNTIME spec
|
|
295
|
+
* (`spec.users.<name>.passwordSha256Hex`), so it may be a schema reference.
|
|
296
|
+
*/
|
|
297
|
+
export interface ClickHouseClusterUserTopology {
|
|
298
|
+
/** User name — becomes a CHI config path fragment AND a runtime spec key. */
|
|
299
|
+
readonly name: string;
|
|
300
|
+
/** Allowed source networks (default: ['::/0']). */
|
|
301
|
+
readonly networksIp?: readonly string[];
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* BUILD-TIME topology for {@link makeClickHouseCluster}.
|
|
305
|
+
*
|
|
306
|
+
* These are resolved when the composition is CONSTRUCTED (real JS values),
|
|
307
|
+
* NOT KRO spec fields: the zone-pinned layout enumerates pod templates and
|
|
308
|
+
* per-replica entries, so zones/replicas/shards cannot be instance-dynamic.
|
|
309
|
+
* (Same pattern as `makeCaddyIngress` — build-time choices select the
|
|
310
|
+
* resource set statically.)
|
|
311
|
+
*/
|
|
312
|
+
export interface ClickHouseClusterTopology {
|
|
313
|
+
/**
|
|
314
|
+
* Availability zones to pin replicas to (round-robin when
|
|
315
|
+
* replicas > zones.length). WHY build-time AND why at all: EBS volumes are
|
|
316
|
+
* zonal, and the operator's own `podDistribution` supports only the
|
|
317
|
+
* `kubernetes.io/hostname` topologyKey (Altinity/clickhouse-operator#772),
|
|
318
|
+
* so per-zone spreading must be compiled as an explicit per-replica layout.
|
|
319
|
+
*/
|
|
320
|
+
readonly zones?: readonly string[];
|
|
321
|
+
/** Replicas per shard (default: 1). */
|
|
322
|
+
readonly replicas?: number;
|
|
323
|
+
/** Shard count (default: 1). */
|
|
324
|
+
readonly shards?: number;
|
|
325
|
+
/**
|
|
326
|
+
* Whether the cluster coordinates through (ClickHouse) Keeper. Structural:
|
|
327
|
+
* it decides whether the CHI has a `zookeeper` section and whether the
|
|
328
|
+
* runtime spec requires `keeper: { host }`. Default: `true` when
|
|
329
|
+
* `replicas > 1` (replicated tables need coordination), else `false`.
|
|
330
|
+
*/
|
|
331
|
+
readonly keeper?: boolean;
|
|
332
|
+
/** Declared ClickHouse users (names/networks build-time, passwords runtime). */
|
|
333
|
+
readonly users?: readonly ClickHouseClusterUserTopology[];
|
|
334
|
+
}
|
|
335
|
+
/** Runtime keeper connection spec (present iff the topology enables keeper). */
|
|
336
|
+
export interface ClickHouseClusterKeeperSpec {
|
|
337
|
+
/** Keeper client host, e.g. `keeper-<chk>.<ns>.svc.cluster.local`. */
|
|
338
|
+
host: string;
|
|
339
|
+
/** Keeper client port (default: 2181 — the operator's KpDefaultZKPortNumber). */
|
|
340
|
+
port?: number;
|
|
341
|
+
}
|
|
342
|
+
/** Runtime (proxy-safe) spec fields shared by every cluster topology. */
|
|
343
|
+
export interface ClickHouseClusterSpecBase {
|
|
344
|
+
/** Installation name (CHI metadata.name). */
|
|
345
|
+
name: string;
|
|
346
|
+
/** Target namespace — explicit, it anchors the derived service hostnames. */
|
|
347
|
+
namespace: string;
|
|
348
|
+
/** ClickHouse server image tag, e.g. '25.12.5'. */
|
|
349
|
+
version: string;
|
|
350
|
+
/**
|
|
351
|
+
* Logical cluster name inside the CHI (default: 'cluster').
|
|
352
|
+
* SIGNOZ COMPATIBILITY: SigNoz's migrations hardcode `cluster`.
|
|
353
|
+
*/
|
|
354
|
+
clusterName?: string;
|
|
355
|
+
/** Persistent storage for ClickHouse data. */
|
|
356
|
+
storage: {
|
|
357
|
+
/** Volume size (e.g. '100Gi'). */
|
|
358
|
+
size: string;
|
|
359
|
+
/** StorageClass name (EKS: WaitForFirstConsumer + expandable gp3). */
|
|
360
|
+
storageClassName?: string;
|
|
361
|
+
};
|
|
362
|
+
/** ClickHouse server container resources. */
|
|
363
|
+
podResources?: {
|
|
364
|
+
requests?: {
|
|
365
|
+
cpu?: string;
|
|
366
|
+
memory?: string;
|
|
367
|
+
};
|
|
368
|
+
limits?: {
|
|
369
|
+
cpu?: string;
|
|
370
|
+
memory?: string;
|
|
371
|
+
};
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Runtime spec for a cluster built by {@link makeClickHouseCluster}.
|
|
376
|
+
*
|
|
377
|
+
* `keeper` and `users` requiredness is enforced by the generated ArkType
|
|
378
|
+
* schema (keeper required iff the topology enables it; one `users.<name>`
|
|
379
|
+
* entry required per declared user) — the TS type keeps them optional-shaped
|
|
380
|
+
* because the effective keeper default (`replicas > 1`) is a runtime value.
|
|
381
|
+
*/
|
|
382
|
+
export type ClickHouseClusterSpec = ClickHouseClusterSpecBase & {
|
|
383
|
+
/** Keeper connection (required iff the topology enables keeper). */
|
|
384
|
+
keeper?: ClickHouseClusterKeeperSpec;
|
|
385
|
+
/** Per-declared-user runtime credentials, keyed by build-time user name. */
|
|
386
|
+
users?: Record<string, {
|
|
387
|
+
passwordSha256Hex: string;
|
|
388
|
+
}>;
|
|
389
|
+
};
|
|
390
|
+
/**
|
|
391
|
+
* Typed service contract exposed by {@link makeClickHouseCluster}.
|
|
392
|
+
*
|
|
393
|
+
* Connection details are DERIVED from the Altinity operator's actual naming
|
|
394
|
+
* conventions so downstream compositions never reconstruct hostnames by hand
|
|
395
|
+
* (verified against operator release-0.27.1 sources):
|
|
396
|
+
* - CR-level Service: `clickhouse-{chi-name}`, type ClusterIP
|
|
397
|
+
* (`pkg/model/chi/namer/patterns.go` patternCRServiceName +
|
|
398
|
+
* `pkg/model/chi/creator/service.go`)
|
|
399
|
+
* - per-host Services: `chi-{chi}-{cluster}-{shard}-{replica}`
|
|
400
|
+
* - ports: native TCP 9000 / HTTP 8123
|
|
401
|
+
* (`pkg/apis/clickhouse.altinity.com/v1/type_host.go`
|
|
402
|
+
* ChDefaultTCPPortNumber / ChDefaultHTTPPortNumber)
|
|
403
|
+
*
|
|
404
|
+
* KRO STATUS vs CLIENT-HYDRATED SPLIT: fields derived from the owned CHI
|
|
405
|
+
* resource serialize as KRO status CEL and appear on the live KRO CR's
|
|
406
|
+
* status (GitOps/KRO consumers can read them):
|
|
407
|
+
* `ready`, `phase`, `clickhouse.host`, `clickhouse.nativeUrl`,
|
|
408
|
+
* `clickhouse.httpUrl`, `clickhouse.clusterName`, `keeper.host`,
|
|
409
|
+
* `keeper.port`, `installation.*`.
|
|
410
|
+
* The remaining fields are BARE build-time constants with no resource
|
|
411
|
+
* anchor (KRO status CEL cannot reference schema.spec.* or literals-only
|
|
412
|
+
* expressions), so they are hydrated CLIENT-SIDE by TypeKro and are NOT on
|
|
413
|
+
* the KRO CR status: `clickhouse.port` (9000 — also visible inside the
|
|
414
|
+
* KRO-serialized `nativeUrl`), `clickhouse.database` ('default'), and
|
|
415
|
+
* `clickhouse.user` (first declared user name).
|
|
416
|
+
*
|
|
417
|
+
* NOTE: operator health is NOT surfaced here — the operator is separate
|
|
418
|
+
* one-per-cluster infrastructure installed by `clickhouseOperatorBootstrap`,
|
|
419
|
+
* whose own status carries `ready`/`phase`/`version` for it.
|
|
420
|
+
*
|
|
421
|
+
* `factory('direct')` LIMITATION (live-verified): the resource-anchored fields above are built via
|
|
422
|
+
* a raw `Cel.expr("...")` string over the CHI's `metadata`/`spec` (required — plain proxy access on
|
|
423
|
+
* `.metadata.*` is misclassified as schema-derived and dropped from KRO status entirely). That
|
|
424
|
+
* technique fixes `factory('kro')` reachability but is opaque to direct mode's live-status
|
|
425
|
+
* re-execution, which has no CEL interpreter and can only hydrate fields it evaluates as plain JS
|
|
426
|
+
* against the live resource. So in DIRECT MODE ONLY, `clickhouse.host`/`nativeUrl`/`httpUrl`/
|
|
427
|
+
* `clusterName`, `keeper.host`/`port`, and `installation.name`/`namespace` remain unresolved
|
|
428
|
+
* `CelExpression` markers (`isCelExpression(value)` is `true`) — a narrow typekro gap, not something
|
|
429
|
+
* this factory can paper over (tracked: typekro#94, "status derivations via the resources proxy
|
|
430
|
+
* silently degrade to schema refs"). **UPDATE:** the root cause is fixed in
|
|
431
|
+
* [typekro#97](https://github.com/yehudacohen/typekro/pull/97) (resource `.metadata.*` reads
|
|
432
|
+
* inside status builders no longer silently degrade to schema refs); once that lands and this
|
|
433
|
+
* factory bumps its typekro dependency, the raw `Cel.expr` workaround above can be dropped in
|
|
434
|
+
* favor of natural proxy syntax, and these fields will hydrate correctly in BOTH modes.
|
|
435
|
+
* `ready`/`phase`/`installation.endpoint`/`hostsCount`/
|
|
436
|
+
* `hostsCompletedCount` DO hydrate in direct mode (plain `clickhouse.status.*` property access).
|
|
437
|
+
* `factory('kro')` callers always get the full live contract on the CR status. Direct-mode callers
|
|
438
|
+
* needing the connection string can build it themselves — same naming rule, from `spec.name`/
|
|
439
|
+
* `spec.namespace`, which they already have synchronously.
|
|
440
|
+
*/
|
|
441
|
+
export interface ClickHouseClusterStatus {
|
|
442
|
+
/** True once the operator reports the CHI fully reconciled ('Completed'). */
|
|
443
|
+
ready: boolean;
|
|
444
|
+
/** Reconcile phase mapped from the operator status state machine. */
|
|
445
|
+
phase: 'Installing' | 'Ready' | 'Failed';
|
|
446
|
+
/** ClickHouse connection contract for downstream compositions. */
|
|
447
|
+
clickhouse: {
|
|
448
|
+
/** CR-level service DNS name: `clickhouse-{name}.{namespace}.svc.cluster.local`. */
|
|
449
|
+
host: string;
|
|
450
|
+
/** Native protocol port (9000). */
|
|
451
|
+
port: number;
|
|
452
|
+
/** Native protocol URL: `clickhouse://{host}:9000`. */
|
|
453
|
+
nativeUrl: string;
|
|
454
|
+
/** HTTP interface URL: `http://{host}:8123`. */
|
|
455
|
+
httpUrl: string;
|
|
456
|
+
/** Logical cluster name (SigNoz needs `cluster`). */
|
|
457
|
+
clusterName: string;
|
|
458
|
+
/** Default database. */
|
|
459
|
+
database: string;
|
|
460
|
+
/** First declared user name, when the topology declares users. */
|
|
461
|
+
user?: string;
|
|
462
|
+
};
|
|
463
|
+
/** Keeper connection echo (present iff the topology enables keeper). */
|
|
464
|
+
keeper?: {
|
|
465
|
+
host: string;
|
|
466
|
+
port: number;
|
|
467
|
+
};
|
|
468
|
+
/** Raw installation identity + operator progress counters. */
|
|
469
|
+
installation: {
|
|
470
|
+
name: string;
|
|
471
|
+
namespace: string;
|
|
472
|
+
/** Operator-reported endpoint (present once reconciled). */
|
|
473
|
+
endpoint?: string;
|
|
474
|
+
hostsCount?: number;
|
|
475
|
+
hostsCompletedCount?: number;
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
/** ArkType schema for {@link ClickHouseClusterStatus}. */
|
|
479
|
+
export declare const ClickHouseClusterStatusSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
480
|
+
ready: boolean;
|
|
481
|
+
phase: "Ready" | "Failed" | "Installing";
|
|
482
|
+
clickhouse: {
|
|
483
|
+
host: string;
|
|
484
|
+
port: number;
|
|
485
|
+
nativeUrl: string;
|
|
486
|
+
httpUrl: string;
|
|
487
|
+
clusterName: string;
|
|
488
|
+
database: string;
|
|
489
|
+
user?: string;
|
|
490
|
+
};
|
|
491
|
+
installation: {
|
|
492
|
+
name: string;
|
|
493
|
+
namespace: string;
|
|
494
|
+
endpoint?: string;
|
|
495
|
+
hostsCount?: number;
|
|
496
|
+
hostsCompletedCount?: number;
|
|
497
|
+
};
|
|
498
|
+
keeper?: {
|
|
499
|
+
host: string;
|
|
500
|
+
port: number;
|
|
501
|
+
};
|
|
502
|
+
}, {}>;
|
|
503
|
+
/**
|
|
504
|
+
* ArkType schema for ClickHouseKeeperInstallationConfig.
|
|
505
|
+
*
|
|
506
|
+
* Minimal high-level configuration compiled by
|
|
507
|
+
* `clickHouseKeeperInstallation()` into a `clickhouse-keeper.altinity.com/v1`
|
|
508
|
+
* ClickHouseKeeperInstallation (CHK) spec.
|
|
509
|
+
*/
|
|
510
|
+
export declare const ClickHouseKeeperInstallationConfigSchema: import("arktype/internal/variants/object.ts").ObjectType<{
|
|
511
|
+
name: string;
|
|
512
|
+
namespace?: string;
|
|
513
|
+
id?: string;
|
|
514
|
+
replicas?: number;
|
|
515
|
+
storage?: {
|
|
516
|
+
size: string;
|
|
517
|
+
storageClassName?: string;
|
|
518
|
+
};
|
|
519
|
+
}, {}>;
|
|
520
|
+
/** High-level configuration for a ClickHouseKeeperInstallation. */
|
|
521
|
+
export type ClickHouseKeeperInstallationConfig = typeof ClickHouseKeeperInstallationConfigSchema.infer;
|
|
522
|
+
/** ClickHouseKeeperInstallation spec (`clickhouse-keeper.altinity.com/v1`). */
|
|
523
|
+
export interface ClickHouseKeeperInstallationSpec {
|
|
524
|
+
defaults?: {
|
|
525
|
+
templates?: {
|
|
526
|
+
podTemplate?: string;
|
|
527
|
+
dataVolumeClaimTemplate?: string;
|
|
528
|
+
};
|
|
529
|
+
};
|
|
530
|
+
configuration?: {
|
|
531
|
+
clusters?: {
|
|
532
|
+
name: string;
|
|
533
|
+
layout?: {
|
|
534
|
+
replicasCount?: number;
|
|
535
|
+
};
|
|
536
|
+
}[];
|
|
537
|
+
settings?: Record<string, unknown>;
|
|
538
|
+
};
|
|
539
|
+
templates?: {
|
|
540
|
+
podTemplates?: ChiPodTemplate[];
|
|
541
|
+
volumeClaimTemplates?: ChiVolumeClaimTemplate[];
|
|
542
|
+
};
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Observed status of a ClickHouseKeeperInstallation.
|
|
546
|
+
*
|
|
547
|
+
* CHK reports the same reconcile state machine as CHI (`status.status`:
|
|
548
|
+
* 'InProgress' | 'Completed' | 'Aborted' | 'Terminating') — the status type
|
|
549
|
+
* is shared operator code.
|
|
550
|
+
*/
|
|
551
|
+
export type ClickHouseKeeperInstallationStatus = ClickHouseInstallationStatus;
|
|
552
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/clickhouse/types.ts"],"names":[],"mappings":"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"}
|