typekro 0.23.0 → 0.24.1

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.
Files changed (70) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/core/deployment/kro-factory.d.ts +19 -0
  3. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  4. package/dist/core/deployment/kro-factory.js +60 -6
  5. package/dist/core/deployment/kro-factory.js.map +1 -1
  6. package/dist/core/proxy/create-resource.d.ts.map +1 -1
  7. package/dist/core/proxy/create-resource.js +37 -0
  8. package/dist/core/proxy/create-resource.js.map +1 -1
  9. package/dist/core/references/schema-proxy.d.ts.map +1 -1
  10. package/dist/core/references/schema-proxy.js +21 -5
  11. package/dist/core/references/schema-proxy.js.map +1 -1
  12. package/dist/factories/clickhouse/compositions/clickhouse-cluster.d.ts.map +1 -1
  13. package/dist/factories/clickhouse/compositions/clickhouse-cluster.js +47 -28
  14. package/dist/factories/clickhouse/compositions/clickhouse-cluster.js.map +1 -1
  15. package/dist/factories/clickhouse/types.d.ts +31 -0
  16. package/dist/factories/clickhouse/types.d.ts.map +1 -1
  17. package/dist/factories/clickhouse/types.js.map +1 -1
  18. package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts +248 -0
  19. package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts.map +1 -0
  20. package/dist/factories/clickstack/compositions/clickstack-bootstrap.js +257 -0
  21. package/dist/factories/clickstack/compositions/clickstack-bootstrap.js.map +1 -0
  22. package/dist/factories/clickstack/compositions/clickstack-helm-repository.d.ts +23 -0
  23. package/dist/factories/clickstack/compositions/clickstack-helm-repository.d.ts.map +1 -0
  24. package/dist/factories/clickstack/compositions/clickstack-helm-repository.js +36 -0
  25. package/dist/factories/clickstack/compositions/clickstack-helm-repository.js.map +1 -0
  26. package/dist/factories/clickstack/compositions/index.d.ts +5 -0
  27. package/dist/factories/clickstack/compositions/index.d.ts.map +1 -0
  28. package/dist/factories/clickstack/compositions/index.js +5 -0
  29. package/dist/factories/clickstack/compositions/index.js.map +1 -0
  30. package/dist/factories/clickstack/compositions/k8s-telemetry.d.ts +83 -0
  31. package/dist/factories/clickstack/compositions/k8s-telemetry.d.ts.map +1 -0
  32. package/dist/factories/clickstack/compositions/k8s-telemetry.js +134 -0
  33. package/dist/factories/clickstack/compositions/k8s-telemetry.js.map +1 -0
  34. package/dist/factories/clickstack/compositions/otel-helm-repository.d.ts +18 -0
  35. package/dist/factories/clickstack/compositions/otel-helm-repository.d.ts.map +1 -0
  36. package/dist/factories/clickstack/compositions/otel-helm-repository.js +31 -0
  37. package/dist/factories/clickstack/compositions/otel-helm-repository.js.map +1 -0
  38. package/dist/factories/clickstack/index.d.ts +40 -0
  39. package/dist/factories/clickstack/index.d.ts.map +1 -0
  40. package/dist/factories/clickstack/index.js +40 -0
  41. package/dist/factories/clickstack/index.js.map +1 -0
  42. package/dist/factories/clickstack/resources/helm.d.ts +78 -0
  43. package/dist/factories/clickstack/resources/helm.d.ts.map +1 -0
  44. package/dist/factories/clickstack/resources/helm.js +139 -0
  45. package/dist/factories/clickstack/resources/helm.js.map +1 -0
  46. package/dist/factories/clickstack/resources/index.d.ts +3 -0
  47. package/dist/factories/clickstack/resources/index.d.ts.map +1 -0
  48. package/dist/factories/clickstack/resources/index.js +3 -0
  49. package/dist/factories/clickstack/resources/index.js.map +1 -0
  50. package/dist/factories/clickstack/resources/mongo.d.ts +40 -0
  51. package/dist/factories/clickstack/resources/mongo.d.ts.map +1 -0
  52. package/dist/factories/clickstack/resources/mongo.js +122 -0
  53. package/dist/factories/clickstack/resources/mongo.js.map +1 -0
  54. package/dist/factories/clickstack/types.d.ts +485 -0
  55. package/dist/factories/clickstack/types.d.ts.map +1 -0
  56. package/dist/factories/clickstack/types.js +302 -0
  57. package/dist/factories/clickstack/types.js.map +1 -0
  58. package/dist/factories/clickstack/utils/helm-values-mapper.d.ts +118 -0
  59. package/dist/factories/clickstack/utils/helm-values-mapper.d.ts.map +1 -0
  60. package/dist/factories/clickstack/utils/helm-values-mapper.js +505 -0
  61. package/dist/factories/clickstack/utils/helm-values-mapper.js.map +1 -0
  62. package/dist/factories/clickstack/utils/index.d.ts +2 -0
  63. package/dist/factories/clickstack/utils/index.d.ts.map +1 -0
  64. package/dist/factories/clickstack/utils/index.js +2 -0
  65. package/dist/factories/clickstack/utils/index.js.map +1 -0
  66. package/dist/factories/index.d.ts +1 -0
  67. package/dist/factories/index.d.ts.map +1 -1
  68. package/dist/factories/index.js +4 -0
  69. package/dist/factories/index.js.map +1 -1
  70. package/package.json +5 -1
@@ -0,0 +1,505 @@
1
+ /**
2
+ * ClickStack Helm values mappers.
3
+ *
4
+ * Pure functions mapping typed factory config onto OFFICIAL chart values.
5
+ * Bootstrap-only fields (name, namespace, chart version, Flux repository
6
+ * names) stay in TypeKro resource configuration and are never forwarded.
7
+ *
8
+ * BUILD-TIME vs RUNTIME: the mappers take the runtime spec (proxy-safe VALUES
9
+ * only — concrete in direct mode, schema refs in KRO mode) plus concrete
10
+ * build-time options (`mongoMode`, static raw `values`). All plain-JS
11
+ * branching happens on the build-time options; runtime fields are only ever
12
+ * embedded as values or wrapped in explicit `has()`-guarded CEL.
13
+ *
14
+ * Values keys verified 2026-07-06 against
15
+ * https://github.com/ClickHouse/ClickStack-helm-charts
16
+ * charts/clickstack/values.yaml (chart 3.0.1, appVersion 2.29.0):
17
+ * - `hyperdx.config.*` env map: `CLICKHOUSE_ENDPOINT` (native, tcp://…),
18
+ * `CLICKHOUSE_SERVER_ENDPOINT` (host:port), `CLICKHOUSE_USER`,
19
+ * `HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE`, `MONGO_URI`, `FRONTEND_URL`.
20
+ * - `hyperdx.secrets.*`: `CLICKHOUSE_PASSWORD` (collector/ingest user),
21
+ * `CLICKHOUSE_APP_PASSWORD` (UI user), `HYPERDX_API_KEY`,
22
+ * `MONGODB_PASSWORD` (unused here — internal Mongo runs authless, external
23
+ * Mongo carries credentials in its URI).
24
+ * - DOC-VS-TEMPLATE DISCREPANCY: several docs describe `defaultConnections` /
25
+ * `defaultSources` directly under `hyperdx.*`, but the chart templates read
26
+ * them from `hyperdx.deployment.defaultConnections` /
27
+ * `hyperdx.deployment.defaultSources` (values.yaml lines 100/110) — the
28
+ * deployment block is what we set. The same block offers
29
+ * `useExistingConfigSecret`/`existingConfigSecret` for external secret
30
+ * management (reachable via the build-time `values` passthrough).
31
+ * - `clickhouse.enabled` / `mongodb.enabled`: both HARD-PINNED to false here.
32
+ * The bundled ClickHouse/Keeper are `ClickHouseCluster`/`KeeperCluster`
33
+ * CRDs and the bundled Mongo is a `MongoDBCommunity` CRD — all owned by the
34
+ * separate `clickstack-operators` prerequisite chart we refuse to install
35
+ * (ClickHouse Inc.'s operator CRDs would collide with our Altinity
36
+ * operator). These pins beat the raw `values` passthrough in BOTH modes
37
+ * because the merge happens at construction time on concrete objects.
38
+ * - `fullnameOverride`: pinned to the release name — the status contract's
39
+ * naming anchor. With it set, the chart's `clickstack.hyperdx.fullname`
40
+ * helper names the HyperDX app resources exactly `<release>` (no `-app`
41
+ * suffix), and the gateway Service stays `<release>-otel-collector`
42
+ * (subchart naming from `.Release.Name`), so the bootstrap status can
43
+ * derive endpoints deterministically.
44
+ * - `otel-collector.*`: the gateway subchart (alias) stays enabled with chart
45
+ * defaults; it reads the shared `clickstack-config` ConfigMap and
46
+ * `clickstack-secret` Secret via `extraEnvsFrom`, so the external-CH env
47
+ * above reconfigures it too (its goose migrations create the otel_* tables
48
+ * in the external ClickHouse at startup).
49
+ */
50
+ import { isValuesMergeExpression, mergeValuesExpression, } from '../../../core/aspects/values-merge.js';
51
+ import { Cel } from '../../../core/references/cel.js';
52
+ import { isCelExpression, isKubernetesRef } from '../../../utils/type-guards.js';
53
+ import { CLICKSTACK_MONGO_NAME_SUFFIX, CLICKSTACK_MONGO_PORT } from '../resources/mongo.js';
54
+ /** Default namespace for a ClickStack install. */
55
+ export const DEFAULT_CLICKSTACK_NAMESPACE = 'clickstack';
56
+ /** Default namespace for the k8s telemetry collectors. */
57
+ export const DEFAULT_CLICKSTACK_TELEMETRY_NAMESPACE = 'clickstack-telemetry';
58
+ /**
59
+ * Default OTLP/HTTP endpoint of the ClickStack gateway collector, assuming
60
+ * the canonical `clickstackBootstrap` install (release name 'clickstack' in
61
+ * namespace 'clickstack'). The chart names the gateway Service
62
+ * `<release>-otel-collector` (templates/_helpers.tpl `clickstack.otel.fullname`)
63
+ * and exposes otlp-http on servicePort 4318 (values.yaml `otel-collector.ports`).
64
+ * Prefer wiring `stack.status.gateway.otlpHttpEndpoint` instead of relying on
65
+ * this default.
66
+ */
67
+ export const DEFAULT_CLICKSTACK_GATEWAY_ENDPOINT = 'http://clickstack-otel-collector.clickstack.svc.cluster.local:4318';
68
+ /**
69
+ * Collector image for the k8s telemetry instances. The stock chart ships an
70
+ * empty `image.repository` on purpose; the ClickStack k8s ingestion docs use
71
+ * the contrib distribution (it carries the k8s receivers the presets enable).
72
+ */
73
+ export const DEFAULT_K8S_TELEMETRY_COLLECTOR_IMAGE = 'otel/opentelemetry-collector-contrib';
74
+ /** Name of the HyperDX connection emitted into `defaultConnections`/`defaultSources`. */
75
+ export const CLICKSTACK_CONNECTION_NAME = 'External ClickHouse';
76
+ // ============================================================================
77
+ // Shared helpers
78
+ // ============================================================================
79
+ /** `has()`-guard chain for a `schema.spec.…` path (dagster mapper pattern). */
80
+ function hasSchemaPath(path) {
81
+ const parts = path.split('.');
82
+ const guards = [];
83
+ for (let index = 2; index < parts.length; index++) {
84
+ guards.push(`has(${parts.slice(0, index + 1).join('.')})`);
85
+ }
86
+ return guards.join(' && ');
87
+ }
88
+ /** Resolve a possibly-ref runtime value with a fallback, in either mode. */
89
+ function resolve(value, fallback) {
90
+ if (isKubernetesRef(value)) {
91
+ return Cel.default(value, fallback);
92
+ }
93
+ return (value ?? fallback);
94
+ }
95
+ /**
96
+ * Graph-mode optional passthrough: emit the schema value when the instance
97
+ * sets it, `omit()` the key otherwise. `dyn()` wraps the present branch so the
98
+ * ternary type-checks against map-typed `omit()` (KRO has no mixed `_?_:_`
99
+ * overload — same trick as the dagster mapper).
100
+ */
101
+ function graphOptional(path) {
102
+ return Cel.expr(`${hasSchemaPath(path)} ? dyn(${path}) : omit()`);
103
+ }
104
+ function setIfDefined(target, key, value) {
105
+ if (value !== undefined) {
106
+ target[key] = value;
107
+ }
108
+ }
109
+ function isMergeObject(value) {
110
+ return (!!value &&
111
+ typeof value === 'object' &&
112
+ !Array.isArray(value) &&
113
+ !isKubernetesRef(value) &&
114
+ !isCelExpression(value) &&
115
+ !isValuesMergeExpression(value));
116
+ }
117
+ /** Deep merge (objects merge recursively, arrays/primitives replace, source wins). */
118
+ function deepMerge(target, source) {
119
+ for (const [key, sourceValue] of Object.entries(source)) {
120
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype')
121
+ continue;
122
+ const targetValue = target[key];
123
+ if (isMergeObject(targetValue) && isMergeObject(sourceValue)) {
124
+ deepMerge(targetValue, sourceValue);
125
+ }
126
+ else {
127
+ target[key] = sourceValue;
128
+ }
129
+ }
130
+ }
131
+ /**
132
+ * Merge overrides then re-apply the hard pins so the pins ALWAYS win.
133
+ *
134
+ * - Concrete override objects (build-time `values`, direct-mode
135
+ * `customValues`) deep-merge into the base; the pins deep-merge after them.
136
+ * - A graph-aware override (`customValues` arriving as a schema ref / CEL
137
+ * expression from an outer composition) routes through TypeKro's runtime
138
+ * values merge (`mergeValuesExpression`, the machinery the serializer
139
+ * compiles to a KRO runtime map-merge — same path as the dagster/ory
140
+ * families), with the pins overlay merged LAST so the hard pins beat the
141
+ * per-instance override in the KRO-serialized HelmRelease values too.
142
+ */
143
+ function mergeOverridesWithPinsLast(base, overrides, pins) {
144
+ let merged = base;
145
+ for (const override of overrides) {
146
+ if (override === undefined)
147
+ continue;
148
+ if (isKubernetesRef(override) ||
149
+ isCelExpression(override) ||
150
+ isValuesMergeExpression(override)) {
151
+ merged = mergeValuesExpression(merged, override);
152
+ }
153
+ else if (isMergeObject(override)) {
154
+ if (isValuesMergeExpression(merged)) {
155
+ merged = mergeValuesExpression(merged, override);
156
+ }
157
+ else {
158
+ deepMerge(merged, override);
159
+ }
160
+ }
161
+ }
162
+ // Hard pins LAST — they beat every passthrough in both modes.
163
+ if (isValuesMergeExpression(merged)) {
164
+ return mergeValuesExpression(merged, pins);
165
+ }
166
+ deepMerge(merged, pins);
167
+ return merged;
168
+ }
169
+ // ============================================================================
170
+ // HyperDX default connections / sources (external ClickHouse)
171
+ // ============================================================================
172
+ /**
173
+ * With `clickhouse.enabled: false` the chart still renders its default
174
+ * `defaultConnections`/`defaultSources` pointing at the (nonexistent) bundled
175
+ * ClickHouse Service, so both must be overridden for external mode. The
176
+ * sources below mirror the chart defaults (values.yaml `defaultSources`,
177
+ * chart 3.0.1) with the connection renamed and the database parameterized
178
+ * (`%s` slots filled per mode).
179
+ */
180
+ const DEFAULT_SOURCES_FORMAT = JSON.stringify([
181
+ {
182
+ from: { databaseName: '%s', tableName: 'otel_logs' },
183
+ kind: 'log',
184
+ timestampValueExpression: 'Timestamp',
185
+ name: 'Logs',
186
+ displayedTimestampValueExpression: 'Timestamp',
187
+ implicitColumnExpression: 'Body',
188
+ serviceNameExpression: 'ServiceName',
189
+ bodyExpression: 'Body',
190
+ eventAttributesExpression: 'LogAttributes',
191
+ resourceAttributesExpression: 'ResourceAttributes',
192
+ defaultTableSelectExpression: 'Timestamp,ServiceName,SeverityText,Body',
193
+ severityTextExpression: 'SeverityText',
194
+ traceIdExpression: 'TraceId',
195
+ spanIdExpression: 'SpanId',
196
+ connection: CLICKSTACK_CONNECTION_NAME,
197
+ traceSourceId: 'Traces',
198
+ sessionSourceId: 'Sessions',
199
+ metricSourceId: 'Metrics',
200
+ },
201
+ {
202
+ from: { databaseName: '%s', tableName: 'otel_traces' },
203
+ kind: 'trace',
204
+ timestampValueExpression: 'Timestamp',
205
+ name: 'Traces',
206
+ displayedTimestampValueExpression: 'Timestamp',
207
+ implicitColumnExpression: 'SpanName',
208
+ serviceNameExpression: 'ServiceName',
209
+ bodyExpression: 'SpanName',
210
+ eventAttributesExpression: 'SpanAttributes',
211
+ resourceAttributesExpression: 'ResourceAttributes',
212
+ defaultTableSelectExpression: 'Timestamp,ServiceName,StatusCode,round(Duration/1e6),SpanName',
213
+ traceIdExpression: 'TraceId',
214
+ spanIdExpression: 'SpanId',
215
+ durationExpression: 'Duration',
216
+ durationPrecision: 9,
217
+ parentSpanIdExpression: 'ParentSpanId',
218
+ spanNameExpression: 'SpanName',
219
+ spanKindExpression: 'SpanKind',
220
+ statusCodeExpression: 'StatusCode',
221
+ statusMessageExpression: 'StatusMessage',
222
+ connection: CLICKSTACK_CONNECTION_NAME,
223
+ logSourceId: 'Logs',
224
+ sessionSourceId: 'Sessions',
225
+ metricSourceId: 'Metrics',
226
+ },
227
+ {
228
+ from: { databaseName: '%s', tableName: '' },
229
+ kind: 'metric',
230
+ timestampValueExpression: 'TimeUnix',
231
+ name: 'Metrics',
232
+ resourceAttributesExpression: 'ResourceAttributes',
233
+ metricTables: {
234
+ gauge: 'otel_metrics_gauge',
235
+ histogram: 'otel_metrics_histogram',
236
+ sum: 'otel_metrics_sum',
237
+ _id: '682586a8b1f81924e628e808',
238
+ id: '682586a8b1f81924e628e808',
239
+ },
240
+ connection: CLICKSTACK_CONNECTION_NAME,
241
+ logSourceId: 'Logs',
242
+ traceSourceId: 'Traces',
243
+ sessionSourceId: 'Sessions',
244
+ },
245
+ {
246
+ from: { databaseName: '%s', tableName: 'hyperdx_sessions' },
247
+ kind: 'session',
248
+ timestampValueExpression: 'TimestampTime',
249
+ name: 'Sessions',
250
+ displayedTimestampValueExpression: 'Timestamp',
251
+ implicitColumnExpression: 'Body',
252
+ serviceNameExpression: 'ServiceName',
253
+ bodyExpression: 'Body',
254
+ eventAttributesExpression: 'LogAttributes',
255
+ resourceAttributesExpression: 'ResourceAttributes',
256
+ defaultTableSelectExpression: 'Timestamp,ServiceName,SeverityText,Body',
257
+ severityTextExpression: 'SeverityText',
258
+ traceIdExpression: 'TraceId',
259
+ spanIdExpression: 'SpanId',
260
+ connection: CLICKSTACK_CONNECTION_NAME,
261
+ logSourceId: 'Logs',
262
+ traceSourceId: 'Traces',
263
+ metricSourceId: 'Metrics',
264
+ },
265
+ ]);
266
+ /** `defaultConnections` JSON with %s slots: host, httpPort, httpPort, username, password. */
267
+ const DEFAULT_CONNECTIONS_FORMAT = `[{"name":"${CLICKSTACK_CONNECTION_NAME}","host":"http://%s:%s","port":%s,` +
268
+ '"username":"%s","password":"%s"}]';
269
+ // ============================================================================
270
+ // clickstackBootstrap values
271
+ // ============================================================================
272
+ /**
273
+ * Map typed ClickStack runtime config + build options into official
274
+ * clickstack chart values.
275
+ *
276
+ * Handles both composition modes: concrete config (direct mode) emits plain
277
+ * values; schema-proxy config (KRO mode) emits `has()`-guarded CEL so chart
278
+ * defaults resolve per instance.
279
+ */
280
+ export function mapClickStackConfigToHelmValues(config, options = {}) {
281
+ const isGraph = isKubernetesRef(config.name) || isKubernetesRef(config.clickhouse);
282
+ const mongoMode = options.mongoMode ?? 'internal';
283
+ const ch = config.clickhouse;
284
+ const hyperdxConfig = {};
285
+ const hyperdxSecrets = {};
286
+ const hyperdxDeployment = {};
287
+ if (isGraph) {
288
+ // Ports as string()-wrapped CEL so they compose into mixed string
289
+ // templates (KRO mixed templates want string-typed segments).
290
+ const nativePortStr = Cel.expr(`string(${hasSchemaPath('schema.spec.clickhouse.nativePort')} ? schema.spec.clickhouse.nativePort : 9000)`);
291
+ const httpPortStr = Cel.expr(`string(${hasSchemaPath('schema.spec.clickhouse.httpPort')} ? schema.spec.clickhouse.httpPort : 8123)`);
292
+ const appUsername = Cel.expr(`${hasSchemaPath('schema.spec.clickhouse.appUsername')} ? schema.spec.clickhouse.appUsername : ` +
293
+ `(${hasSchemaPath('schema.spec.clickhouse.username')} ? schema.spec.clickhouse.username : "default")`);
294
+ const appPassword = Cel.expr(`${hasSchemaPath('schema.spec.clickhouse.appPassword')} ? schema.spec.clickhouse.appPassword : ` +
295
+ `(${hasSchemaPath('schema.spec.clickhouse.password')} ? schema.spec.clickhouse.password : "")`);
296
+ hyperdxConfig.CLICKHOUSE_ENDPOINT = Cel.template('tcp://%s:%s?dial_timeout=10s', ch.host, nativePortStr);
297
+ hyperdxConfig.CLICKHOUSE_SERVER_ENDPOINT = Cel.template('%s:%s', ch.host, nativePortStr);
298
+ hyperdxConfig.CLICKHOUSE_USER = resolve(ch.username, 'default');
299
+ hyperdxConfig.HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE = resolve(ch.database, 'default');
300
+ hyperdxConfig.MONGO_URI =
301
+ mongoMode === 'external'
302
+ ? config.mongoUri
303
+ : Cel.template(`mongodb://%s${CLICKSTACK_MONGO_NAME_SUFFIX}.%s.svc.cluster.local:${CLICKSTACK_MONGO_PORT}/hyperdx`, config.name, resolve(config.namespace, DEFAULT_CLICKSTACK_NAMESPACE));
304
+ hyperdxConfig.FRONTEND_URL = graphOptional('schema.spec.hyperdx.frontendUrl');
305
+ hyperdxSecrets.CLICKHOUSE_PASSWORD = resolve(ch.password, '');
306
+ hyperdxSecrets.CLICKHOUSE_APP_PASSWORD = appPassword;
307
+ hyperdxSecrets.HYPERDX_API_KEY = graphOptional('schema.spec.apiKey');
308
+ hyperdxDeployment.replicas = graphOptional('schema.spec.hyperdx.replicas');
309
+ hyperdxDeployment.resources = graphOptional('schema.spec.hyperdx.resources');
310
+ hyperdxDeployment.image = graphOptional('schema.spec.hyperdx.image');
311
+ hyperdxDeployment.defaultConnections = Cel.template(DEFAULT_CONNECTIONS_FORMAT, ch.host, httpPortStr, httpPortStr, appUsername, appPassword);
312
+ const database = resolve(ch.database, 'default');
313
+ hyperdxDeployment.defaultSources = Cel.template(DEFAULT_SOURCES_FORMAT, database, database, database, database);
314
+ }
315
+ else {
316
+ const nativePort = ch.nativePort ?? 9000;
317
+ const httpPort = ch.httpPort ?? 8123;
318
+ const database = ch.database ?? 'default';
319
+ const username = ch.username ?? 'default';
320
+ const password = ch.password ?? '';
321
+ const appUsername = ch.appUsername ?? username;
322
+ const appPassword = ch.appPassword ?? password;
323
+ hyperdxConfig.CLICKHOUSE_ENDPOINT = `tcp://${ch.host}:${nativePort}?dial_timeout=10s`;
324
+ hyperdxConfig.CLICKHOUSE_SERVER_ENDPOINT = `${ch.host}:${nativePort}`;
325
+ hyperdxConfig.CLICKHOUSE_USER = username;
326
+ hyperdxConfig.HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE = database;
327
+ hyperdxConfig.MONGO_URI =
328
+ mongoMode === 'external'
329
+ ? config.mongoUri
330
+ : `mongodb://${config.name}${CLICKSTACK_MONGO_NAME_SUFFIX}.${config.namespace ?? DEFAULT_CLICKSTACK_NAMESPACE}.svc.cluster.local:${CLICKSTACK_MONGO_PORT}/hyperdx`;
331
+ setIfDefined(hyperdxConfig, 'FRONTEND_URL', config.hyperdx?.frontendUrl);
332
+ hyperdxSecrets.CLICKHOUSE_PASSWORD = password;
333
+ hyperdxSecrets.CLICKHOUSE_APP_PASSWORD = appPassword;
334
+ setIfDefined(hyperdxSecrets, 'HYPERDX_API_KEY', config.apiKey);
335
+ setIfDefined(hyperdxDeployment, 'replicas', config.hyperdx?.replicas);
336
+ setIfDefined(hyperdxDeployment, 'resources', config.hyperdx?.resources);
337
+ setIfDefined(hyperdxDeployment, 'image', config.hyperdx?.image);
338
+ hyperdxDeployment.defaultConnections = JSON.stringify([
339
+ {
340
+ name: CLICKSTACK_CONNECTION_NAME,
341
+ host: `http://${ch.host}:${httpPort}`,
342
+ port: httpPort,
343
+ username: appUsername,
344
+ password: appPassword,
345
+ },
346
+ ]);
347
+ hyperdxDeployment.defaultSources = DEFAULT_SOURCES_FORMAT.replace(/%s/g, () => database);
348
+ }
349
+ const values = {
350
+ hyperdx: {
351
+ config: hyperdxConfig,
352
+ secrets: hyperdxSecrets,
353
+ deployment: hyperdxDeployment,
354
+ },
355
+ };
356
+ // Hard pins (see module doc): external-only build-around + the status
357
+ // contract's naming anchor. Merged AFTER every passthrough so they always
358
+ // win — including over a graph-aware per-instance `customValues` override.
359
+ const pins = {
360
+ clickhouse: { enabled: false },
361
+ mongodb: { enabled: false },
362
+ fullnameOverride: config.name,
363
+ };
364
+ // Per-instance `customValues` is a DIRECT-mode-only convenience: only a CONCRETE object merges.
365
+ // In graph mode the schema proxy would fabricate a ref for the (deliberately undeclared — see
366
+ // types.ts) field, and the runtime map-merge cannot host this mapper's template leaves — the
367
+ // serialized CEL comes out syntactically invalid (verified empirically). So refs are EXCLUDED
368
+ // here by design; graph-mode chart tweaks go through the build-time `values` instead.
369
+ const concreteCustomValues = isMergeObject(config.customValues) ? config.customValues : undefined;
370
+ // Precedence (low → high): typed mapping < build-time `values`
371
+ // < concrete per-instance `customValues` (direct mode) < hard pins.
372
+ return mergeOverridesWithPinsLast(values, [options.values, concreteCustomValues], pins);
373
+ }
374
+ /**
375
+ * Map k8s telemetry runtime config + build options onto values for TWO stock
376
+ * `opentelemetry-collector` chart instances — the documented ClickStack
377
+ * Kubernetes ingestion pattern (verified 2026-07-06 against
378
+ * https://clickhouse.com/docs/use-cases/observability/clickstack/ingesting-data/kubernetes
379
+ * and the stock chart's values.yaml preset names).
380
+ *
381
+ * The API key reaches the exporter via OTel config `${env:HYPERDX_API_KEY}`
382
+ * expansion backed by a `secretKeyRef` env var — the key value itself never
383
+ * enters Helm values. In KRO mode the literal `${env:…}` would be parsed as a
384
+ * KRO CEL template, so it is emitted as the CEL concat `"$" + "{env:…}"`,
385
+ * which KRO evaluates back to the literal at instance materialization.
386
+ */
387
+ export function mapK8sTelemetryConfigToHelmValues(config, options = {}) {
388
+ const isGraph = isKubernetesRef(config.name);
389
+ const endpoint = resolve(config.endpoint, DEFAULT_CLICKSTACK_GATEWAY_ENDPOINT);
390
+ const authHeader = otelEnvExpansion(isGraph, 'HYPERDX_API_KEY');
391
+ const kubeletEndpoint = otelEnvExpansion(isGraph, 'K8S_NODE_NAME', ':10250');
392
+ const secretKey = resolve(config.apiKeySecret?.key, 'HYPERDX_API_KEY');
393
+ const extraEnvs = [
394
+ {
395
+ name: 'HYPERDX_API_KEY',
396
+ valueFrom: {
397
+ secretKeyRef: {
398
+ name: config.apiKeySecret?.name,
399
+ key: secretKey,
400
+ // REQUIRED (matches the schema): a missing Secret/key must fail the pod loudly at start,
401
+ // not launch a collector whose exporter silently ships unauthenticated requests.
402
+ optional: false,
403
+ },
404
+ },
405
+ },
406
+ ];
407
+ const exporters = {
408
+ otlphttp: {
409
+ endpoint,
410
+ headers: { authorization: authHeader },
411
+ compression: 'gzip',
412
+ },
413
+ };
414
+ const pipelines = {
415
+ logs: { exporters: ['otlphttp'] },
416
+ metrics: { exporters: ['otlphttp'] },
417
+ };
418
+ const daemonset = {
419
+ mode: 'daemonset',
420
+ image: { repository: DEFAULT_K8S_TELEMETRY_COLLECTOR_IMAGE },
421
+ // nodes/proxy access for the kubeletstats receiver (docs-faithful).
422
+ clusterRole: {
423
+ create: true,
424
+ rules: [{ apiGroups: [''], resources: ['nodes/proxy'], verbs: ['get'] }],
425
+ },
426
+ presets: {
427
+ logsCollection: { enabled: true },
428
+ hostMetrics: { enabled: true },
429
+ kubernetesAttributes: {
430
+ enabled: true,
431
+ extractAllPodLabels: true,
432
+ extractAllPodAnnotations: true,
433
+ },
434
+ kubeletMetrics: { enabled: true },
435
+ },
436
+ extraEnvs,
437
+ config: {
438
+ receivers: {
439
+ // Docs-recommended kubeletstats tuning: 20s interval + utilization metrics.
440
+ kubeletstats: {
441
+ collection_interval: '20s',
442
+ auth_type: 'serviceAccount',
443
+ endpoint: kubeletEndpoint,
444
+ insecure_skip_verify: true,
445
+ metrics: {
446
+ 'k8s.pod.cpu_limit_utilization': { enabled: true },
447
+ 'k8s.pod.cpu_request_utilization': { enabled: true },
448
+ 'k8s.pod.memory_limit_utilization': { enabled: true },
449
+ 'k8s.pod.memory_request_utilization': { enabled: true },
450
+ 'k8s.pod.uptime': { enabled: true },
451
+ 'k8s.node.uptime': { enabled: true },
452
+ 'k8s.container.cpu_limit_utilization': { enabled: true },
453
+ 'k8s.container.cpu_request_utilization': { enabled: true },
454
+ 'k8s.container.memory_limit_utilization': { enabled: true },
455
+ 'k8s.container.memory_request_utilization': { enabled: true },
456
+ 'container.uptime': { enabled: true },
457
+ },
458
+ },
459
+ },
460
+ exporters,
461
+ service: { pipelines },
462
+ },
463
+ };
464
+ const deployment = {
465
+ mode: 'deployment',
466
+ image: { repository: DEFAULT_K8S_TELEMETRY_COLLECTOR_IMAGE },
467
+ replicaCount: 1,
468
+ presets: {
469
+ kubernetesAttributes: {
470
+ enabled: true,
471
+ extractAllPodLabels: true,
472
+ extractAllPodAnnotations: true,
473
+ },
474
+ kubernetesEvents: { enabled: true },
475
+ clusterMetrics: { enabled: true },
476
+ },
477
+ extraEnvs,
478
+ config: {
479
+ exporters,
480
+ service: { pipelines },
481
+ },
482
+ };
483
+ return {
484
+ // `mode` is the identity of each instance — re-pinned after passthrough.
485
+ daemonset: mergeOverridesWithPinsLast(daemonset, [options.daemonset?.values], {
486
+ mode: 'daemonset',
487
+ }),
488
+ deployment: mergeOverridesWithPinsLast(deployment, [options.deployment?.values], {
489
+ mode: 'deployment',
490
+ }),
491
+ };
492
+ }
493
+ /**
494
+ * Emit an OTel-config env expansion (`${env:NAME}<suffix>`) safely per mode.
495
+ * Direct mode emits the literal; KRO mode emits `"$" + "{env:NAME}<suffix>"`
496
+ * because a literal `${…}` in an RGD template is parsed (and rejected) as a
497
+ * KRO CEL expression.
498
+ */
499
+ function otelEnvExpansion(isGraph, envVar, suffix = '') {
500
+ if (isGraph) {
501
+ return Cel.expr(`"$" + "{env:${envVar}}${suffix}"`);
502
+ }
503
+ return `\${env:${envVar}}${suffix}`;
504
+ }
505
+ //# sourceMappingURL=helm-values-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm-values-mapper.js","sourceRoot":"","sources":["../../../../src/factories/clickstack/utils/helm-values-mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './helm-values-mapper.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/clickstack/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './helm-values-mapper.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/clickstack/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -8,6 +8,7 @@
8
8
  export * as apisix from './apisix/index.js';
9
9
  export * as certManager from './cert-manager/index.js';
10
10
  export * from './cilium/index.js';
11
+ export * as clickstack from './clickstack/index.js';
11
12
  export * as externalDns from './external-dns/index.js';
12
13
  export * from './flux/index.js';
13
14
  export type { HelmReleaseConfig, HelmReleaseSpec, HelmReleaseStatus, HelmRepositoryConfig, HelmRepositorySpec, HelmRepositoryStatus, } from './helm/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factories/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAI5C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AAIvD,cAAc,mBAAmB,CAAC;AAIlC,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AAIvD,cAAc,iBAAiB,CAAC;AAChC,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EACL,yCAAyC,EACzC,oCAAoC,EACpC,gCAAgC,EAChC,mCAAmC,EACnC,iCAAiC,EACjC,WAAW,EACX,6BAA6B,EAC7B,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAIzB,cAAc,gBAAgB,CAAC;AAI/B,cAAc,uBAAuB,CAAC;AAItC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AAItC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAQ5C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,mBAAmB,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factories/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAI5C,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AAIvD,cAAc,mBAAmB,CAAC;AAIlC,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AAIpD,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AAIvD,cAAc,iBAAiB,CAAC;AAChC,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EACL,yCAAyC,EACzC,oCAAoC,EACpC,gCAAgC,EAChC,mCAAmC,EACnC,iCAAiC,EACjC,WAAW,EACX,6BAA6B,EAC7B,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAIzB,cAAc,gBAAgB,CAAC;AAI/B,cAAc,uBAAuB,CAAC;AAItC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AAItC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAQ5C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,mBAAmB,mBAAmB,CAAC"}
@@ -18,6 +18,10 @@ export * as certManager from './cert-manager/index.js';
18
18
  // =============================================================================
19
19
  export * from './cilium/index.js';
20
20
  // =============================================================================
21
+ // CLICKSTACK (HYPERDX) ECOSYSTEM
22
+ // =============================================================================
23
+ export * as clickstack from './clickstack/index.js';
24
+ // =============================================================================
21
25
  // EXTERNAL-DNS ECOSYSTEM
22
26
  // =============================================================================
23
27
  export * as externalDns from './external-dns/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/factories/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAChF,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AACvD,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,cAAc,mBAAmB,CAAC;AAClC,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAChF,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AACvD,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAChF,cAAc,iBAAiB,CAAC;AAShC,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAChF,OAAO,EACL,yCAAyC,EACzC,oCAAoC,EACpC,gCAAgC,EAChC,mCAAmC,EACnC,iCAAiC,EACjC,WAAW,EACX,6BAA6B,EAC7B,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAChF,cAAc,gBAAgB,CAAC;AAC/B,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAChF,cAAc,uBAAuB,CAAC;AACtC,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAChF,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,gFAAgF;AAChF,oCAAoC;AACpC,gFAAgF;AAChF,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,6EAA6E;AAC7E,+EAA+E;AAC/E,iFAAiF;AACjF,oDAAoD;AACpD,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,gFAAgF;AAChF,oDAAoD;AACpD,gFAAgF;AAChF,qDAAqD;AACrD,wEAAwE;AACxE,oEAAoE;AACpE,uEAAuE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/factories/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAChF,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AACvD,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,cAAc,mBAAmB,CAAC;AAClC,gFAAgF;AAChF,iCAAiC;AACjC,gFAAgF;AAChF,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAChF,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AACvD,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAChF,cAAc,iBAAiB,CAAC;AAShC,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAChF,OAAO,EACL,yCAAyC,EACzC,oCAAoC,EACpC,gCAAgC,EAChC,mCAAmC,EACnC,iCAAiC,EACjC,WAAW,EACX,6BAA6B,EAC7B,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAChF,cAAc,gBAAgB,CAAC;AAC/B,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAChF,cAAc,uBAAuB,CAAC;AACtC,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAChF,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,gFAAgF;AAChF,oCAAoC;AACpC,gFAAgF;AAChF,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,6EAA6E;AAC7E,+EAA+E;AAC/E,iFAAiF;AACjF,oDAAoD;AACpD,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,gFAAgF;AAChF,oDAAoD;AACpD,gFAAgF;AAChF,qDAAqD;AACrD,wEAAwE;AACxE,oEAAoE;AACpE,uEAAuE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typekro",
3
- "version": "0.23.0",
3
+ "version": "0.24.1",
4
4
  "description": "A control plane aware framework for orchestrating kubernetes resources like a programmer.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -70,6 +70,10 @@
70
70
  "import": "./dist/factories/dagster/index.js",
71
71
  "types": "./dist/factories/dagster/index.d.ts"
72
72
  },
73
+ "./clickstack": {
74
+ "import": "./dist/factories/clickstack/index.js",
75
+ "types": "./dist/factories/clickstack/index.d.ts"
76
+ },
73
77
  "./caddy": {
74
78
  "import": "./dist/factories/caddy/index.js",
75
79
  "types": "./dist/factories/caddy/index.d.ts"