typekro 0.38.2 → 0.39.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/factories/clickstack/compositions/clickstack-bootstrap.d.ts +29 -2
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts.map +1 -1
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.js +298 -46
- package/dist/factories/clickstack/compositions/clickstack-bootstrap.js.map +1 -1
- package/dist/factories/clickstack/hyperdx-oidc/index.d.ts +2 -2
- package/dist/factories/clickstack/hyperdx-oidc/index.d.ts.map +1 -1
- package/dist/factories/clickstack/hyperdx-oidc/index.js +25 -8
- package/dist/factories/clickstack/hyperdx-oidc/index.js.map +1 -1
- package/dist/factories/clickstack/hyperdx-oidc/plugin-bundle.generated.d.ts.map +1 -1
- package/dist/factories/clickstack/hyperdx-oidc/plugin-bundle.generated.js +4 -4
- package/dist/factories/clickstack/hyperdx-oidc/plugin-bundle.generated.js.map +1 -1
- package/dist/factories/clickstack/types.d.ts +106 -1
- package/dist/factories/clickstack/types.d.ts.map +1 -1
- package/dist/factories/clickstack/types.js +123 -1
- package/dist/factories/clickstack/types.js.map +1 -1
- package/dist/factories/clickstack/utils/helm-values-mapper.d.ts +71 -2
- package/dist/factories/clickstack/utils/helm-values-mapper.d.ts.map +1 -1
- package/dist/factories/clickstack/utils/helm-values-mapper.js +112 -111
- package/dist/factories/clickstack/utils/helm-values-mapper.js.map +1 -1
- package/dist/factories/clickstack/utils/team-defaults.d.ts +87 -0
- package/dist/factories/clickstack/utils/team-defaults.d.ts.map +1 -0
- package/dist/factories/clickstack/utils/team-defaults.js +462 -0
- package/dist/factories/clickstack/utils/team-defaults.js.map +1 -0
- package/package.json +2 -1
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
* @see https://github.com/ClickHouse/ClickStack-helm-charts
|
|
40
40
|
* @see https://clickhouse.com/docs/use-cases/observability/clickstack
|
|
41
41
|
*/
|
|
42
|
+
import { isIPv6 } from 'node:net';
|
|
42
43
|
import { type } from 'arktype';
|
|
43
44
|
import { CRONJOB_NAME_MAX_LENGTH, DNS_LABEL_MAX_LENGTH, DNS_SUBDOMAIN_MAX_LENGTH, deriveNameLengthLimit, HELM_RELEASE_NAME_MAX_LENGTH, validateDnsSubdomainName, validateSecretDataKey, } from '../../core/kubernetes/naming.js';
|
|
44
45
|
import { CLICKSTACK_GATEWAY_NAME_SUFFIX } from './resources/helm.js';
|
|
@@ -110,6 +111,118 @@ export const DEFAULT_CLICKSTACK_INITIAL_USER_PASSWORD_KEY = 'HYPERDX_INITIAL_USE
|
|
|
110
111
|
* with a future upstream field.
|
|
111
112
|
*/
|
|
112
113
|
export const CLICKSTACK_BOOTSTRAP_MARKER_COLLECTION = 'typekro_bootstrap';
|
|
114
|
+
/**
|
|
115
|
+
* The CEL rule the generated CRD carries on `spec.clickhouse.host`: a
|
|
116
|
+
* SYNTACTIC pre-check. A bracketed host may hold only hex digits, `.` and at
|
|
117
|
+
* least one `:`; any other host only ASCII letters, digits, `.`, `-` and `_`.
|
|
118
|
+
* That refuses every scheme, port, path, userinfo, whitespace, backslash,
|
|
119
|
+
* percent-encoding and non-ASCII host. It does not parse IPv6 or normalise
|
|
120
|
+
* IPv4 (Kubernetes' CEL IP library needs a newer API server than TypeKro
|
|
121
|
+
* requires), so `[:::]` and `127.1` pass admission.
|
|
122
|
+
* {@link validateClickStackClickhouseHost} (render time) and the seed's runtime
|
|
123
|
+
* check are the authoritative ones.
|
|
124
|
+
*
|
|
125
|
+
* KRO carries it into the CRD only when it creates the CRD fresh (see the KRO
|
|
126
|
+
* caveat in the docs).
|
|
127
|
+
*/
|
|
128
|
+
export const CLICKSTACK_CLICKHOUSE_HOST_VALIDATION_RULE = "self.startsWith('[') ? self.matches('^[[][0-9A-Fa-f.]*:[0-9A-Fa-f:.]*[]]$') : " +
|
|
129
|
+
"self.matches('^[A-Za-z0-9._-]+$')";
|
|
130
|
+
/**
|
|
131
|
+
* Check a concrete `clickhouse.host` by what breaks the `http://` / `tcp://`
|
|
132
|
+
* URLs it is built into, with a reason a person can act on. Accepts a short
|
|
133
|
+
* name, an FQDN (with or without a trailing dot), an IPv4 address and a
|
|
134
|
+
* bracketed IPv6 address, in any case.
|
|
135
|
+
*
|
|
136
|
+
* A bracketed host must be an IPv6 address by `net.isIPv6`. Any other host
|
|
137
|
+
* must be ASCII letters, digits, `.`, `-` and `_` only (so no `\`, which URL
|
|
138
|
+
* parsers read as a path separator, no percent-encoding and no non-ASCII),
|
|
139
|
+
* and must survive WHATWG URL parsing unchanged
|
|
140
|
+
* (`new URL('http://<host>/').hostname` equals the host, lower-cased), which
|
|
141
|
+
* refuses shorthand IPv4 such as `127.1`. Each of those would make consumers
|
|
142
|
+
* reach a different host from the one checked.
|
|
143
|
+
* The seed runs the same checks at runtime ({@link CLICKSTACK_CLICKHOUSE_HOST_URL_CHECK_SOURCE}).
|
|
144
|
+
*
|
|
145
|
+
* @returns A reason the host is unusable, or `undefined` when it is valid
|
|
146
|
+
*/
|
|
147
|
+
export function validateClickStackClickhouseHost(host) {
|
|
148
|
+
if (typeof host !== 'string' || host.length === 0)
|
|
149
|
+
return 'must be a non-empty string';
|
|
150
|
+
if (host.includes('://'))
|
|
151
|
+
return 'must not include a scheme (drop the "http://" or "tcp://")';
|
|
152
|
+
if (/[\t\n\v\f\r /?#@\\]/.test(host)) {
|
|
153
|
+
return 'must not contain whitespace, "/", "\\", "?", "#" or "@" (no path, query or userinfo)';
|
|
154
|
+
}
|
|
155
|
+
if (host.startsWith('[')) {
|
|
156
|
+
return host.endsWith(']') && isIPv6(host.slice(1, -1))
|
|
157
|
+
? undefined
|
|
158
|
+
: 'must be a valid IPv6 address when it is in brackets, e.g. "[fd00::1]"';
|
|
159
|
+
}
|
|
160
|
+
if (host.includes('[') || host.includes(']')) {
|
|
161
|
+
return 'must not contain "[" or "]" except around an IPv6 address';
|
|
162
|
+
}
|
|
163
|
+
if (host.includes(':')) {
|
|
164
|
+
return (host.match(/:/g) ?? []).length > 1
|
|
165
|
+
? 'looks like an IPv6 address: write it in brackets, e.g. "[fd00::1]"'
|
|
166
|
+
: 'must not include a port (set clickhouse.httpPort / clickhouse.nativePort instead)';
|
|
167
|
+
}
|
|
168
|
+
if (!/^[A-Za-z0-9._-]+$/.test(host)) {
|
|
169
|
+
return 'must contain only ASCII letters, digits, ".", "-" and "_" (or be a bracketed IPv6 address)';
|
|
170
|
+
}
|
|
171
|
+
let parsed;
|
|
172
|
+
try {
|
|
173
|
+
parsed = new URL(`http://${host}/`).hostname;
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
return 'is not a valid URL host';
|
|
177
|
+
}
|
|
178
|
+
if (parsed !== host.toLowerCase()) {
|
|
179
|
+
return `is not a plain host name: URL parsing reads it as ${JSON.stringify(parsed)}`;
|
|
180
|
+
}
|
|
181
|
+
return undefined;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* The seed's runtime host check, as mongosh source: given the connection URL
|
|
185
|
+
* the CronJob carries (`http://<host>:<port>`), the reason its host would
|
|
186
|
+
* break the connection, or `null`. The same checks as
|
|
187
|
+
* {@link validateClickStackClickhouseHost}, with mongosh's Node `net` and
|
|
188
|
+
* `URL` (a unit test holds the two to one sample set). It exists because KRO
|
|
189
|
+
* 0.9.2 never adds the CRD rule to a CRD it already created, and the CRD rule
|
|
190
|
+
* is only syntactic anyway.
|
|
191
|
+
*/
|
|
192
|
+
export const CLICKSTACK_CLICKHOUSE_HOST_URL_CHECK_SOURCE = String.raw `(url) => {
|
|
193
|
+
const match = /^http:\/\/(.*):([0-9]+)$/.exec(url);
|
|
194
|
+
if (match === null) return 'is not of the form http://<host>:<port>';
|
|
195
|
+
const host = match[1];
|
|
196
|
+
if (host.length === 0) return 'has an empty host';
|
|
197
|
+
if (/[\t\n\v\f\r /?#@\\]/.test(host)) return 'has whitespace, "/", "\\", "?", "#" or "@" in its host';
|
|
198
|
+
if (host.startsWith('[')) return host.endsWith(']') && require('net').isIPv6(host.slice(1, -1)) ? null : 'has a bracketed host that is not a valid IPv6 address';
|
|
199
|
+
if (host.includes('[') || host.includes(']') || host.includes(':')) return 'has a scheme, a port or an unbracketed IPv6 address in its host';
|
|
200
|
+
if (!/^[A-Za-z0-9._-]+$/.test(host)) return 'has characters other than ASCII letters, digits, ".", "-" and "_" in its host';
|
|
201
|
+
let parsed;
|
|
202
|
+
try {
|
|
203
|
+
parsed = new URL('http://' + host + '/').hostname;
|
|
204
|
+
} catch (error) {
|
|
205
|
+
return 'has a host that is not a valid URL host';
|
|
206
|
+
}
|
|
207
|
+
if (parsed !== host.toLowerCase()) return 'has a host that URL parsing reads as ' + JSON.stringify(parsed);
|
|
208
|
+
return null;
|
|
209
|
+
}`;
|
|
210
|
+
/** Name of the HyperDX Team the bootstrap creates when `teamName` is not set. */
|
|
211
|
+
export const DEFAULT_CLICKSTACK_TEAM_NAME = 'ClickStack';
|
|
212
|
+
/**
|
|
213
|
+
* Resolve the build-time `teamName`: `undefined` means "leave the name alone"
|
|
214
|
+
* (only with `initialUser`, where HyperDX's registration names the Team).
|
|
215
|
+
*
|
|
216
|
+
* @throws Error when the name is empty or longer than HyperDX accepts (100)
|
|
217
|
+
*/
|
|
218
|
+
export function resolveClickStackTeamName(context, teamName, hasInitialUser) {
|
|
219
|
+
if (teamName === undefined)
|
|
220
|
+
return hasInitialUser ? undefined : DEFAULT_CLICKSTACK_TEAM_NAME;
|
|
221
|
+
if (typeof teamName !== 'string' || teamName.trim().length === 0 || teamName.length > 100) {
|
|
222
|
+
throw new Error(`${context}: teamName must be a non-empty string of at most 100 characters (HyperDX's own limit for a Team name).`);
|
|
223
|
+
}
|
|
224
|
+
return teamName;
|
|
225
|
+
}
|
|
113
226
|
/** `_id` of the marker document recording that initial-user bootstrap is done. */
|
|
114
227
|
export const CLICKSTACK_INITIAL_USER_MARKER_ID = 'initial-user';
|
|
115
228
|
/**
|
|
@@ -244,6 +357,13 @@ export function resolveClickStackInitialUser(context, chartSecretName, options)
|
|
|
244
357
|
* from {@link clickStackInitialUserVersionValidationRule}, so a consumer who
|
|
245
358
|
* sets an unaudited version on the custom resource at apply time is rejected by
|
|
246
359
|
* ADMISSION, where there is no build to fail.
|
|
360
|
+
*
|
|
361
|
+
* KRO CAVEAT. KRO 0.9.2 compares no `x-kubernetes-validations` when it
|
|
362
|
+
* reconciles a CRD, so it adds that rule only to a CRD it creates fresh (or
|
|
363
|
+
* patches for some other, compared change), never to one that predates the
|
|
364
|
+
* rule. The Team-defaults seed therefore re-checks the chart version at
|
|
365
|
+
* runtime (`CLICKSTACK_CHART_VERSION`); `initialUser` and `hyperdxOidc` have
|
|
366
|
+
* only the build-time and CRD halves.
|
|
247
367
|
*/
|
|
248
368
|
export const CLICKSTACK_INITIAL_USER_VALIDATED_CHART_VERSIONS = ['3.2.0'];
|
|
249
369
|
/** HyperDX appVersion the registration contract above was verified against. */
|
|
@@ -264,7 +384,9 @@ export function isClickStackInitialUserValidatedChartVersion(version) {
|
|
|
264
384
|
* This is the KRO-mode half of the allowlist: the rule becomes an
|
|
265
385
|
* `x-kubernetes-validations` entry on the field, so the API server refuses a CR
|
|
266
386
|
* carrying an unaudited version instead of admitting it and leaving the
|
|
267
|
-
* CronJob to patch `teams.apiKey` on a schema nobody has read.
|
|
387
|
+
* CronJob to patch `teams.apiKey` on a schema nobody has read. Only on CRDs KRO
|
|
388
|
+
* creates fresh: see the KRO caveat on
|
|
389
|
+
* {@link CLICKSTACK_INITIAL_USER_VALIDATED_CHART_VERSIONS}.
|
|
268
390
|
*
|
|
269
391
|
* @returns A CEL expression over `self`, the submitted `spec.version`
|
|
270
392
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/clickstack/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/clickstack/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,8 +71,7 @@ export declare const DEFAULT_CLICKSTACK_GATEWAY_ENDPOINT = "http://clickstack-ot
|
|
|
71
71
|
* the contrib distribution (it carries the k8s receivers the presets enable).
|
|
72
72
|
*/
|
|
73
73
|
export declare const DEFAULT_K8S_TELEMETRY_COLLECTOR_IMAGE = "otel/opentelemetry-collector-contrib";
|
|
74
|
-
|
|
75
|
-
export declare const CLICKSTACK_CONNECTION_NAME = "External ClickHouse";
|
|
74
|
+
export { CLICKSTACK_CONNECTION_NAME } from './team-defaults.js';
|
|
76
75
|
/**
|
|
77
76
|
* The ClickStack image runs under the OpAMP supervisor. Its built-in remote
|
|
78
77
|
* configuration declares the OTLP receiver but, without an overlay, does not
|
|
@@ -120,6 +119,76 @@ export interface ClickStackK8sTelemetryValues {
|
|
|
120
119
|
daemonset: OtelCollectorMappedHelmValues;
|
|
121
120
|
deployment: OtelCollectorMappedHelmValues;
|
|
122
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* With `clickhouse.enabled: false` the chart still renders its default
|
|
124
|
+
* `defaultConnections`/`defaultSources` pointing at the (nonexistent) bundled
|
|
125
|
+
* ClickHouse Service, so both must be overridden for external mode. The
|
|
126
|
+
* sources below mirror the chart defaults (values.yaml `defaultSources`,
|
|
127
|
+
* chart 3.2.0) with the connection renamed and the database a Helm template.
|
|
128
|
+
*/
|
|
129
|
+
/**
|
|
130
|
+
* The connection and database the Team bootstrap seeds, derived exactly as
|
|
131
|
+
* `defaultConnections` / `defaultSources` derive them: `http://<host>:<httpPort>`,
|
|
132
|
+
* the UI user (`appUsername`, else `username`, else `default`) and the OTel
|
|
133
|
+
* database. Concrete values in direct mode, CEL in KRO mode. The password is
|
|
134
|
+
* not here: the CronJob reads it from the chart-owned Secret.
|
|
135
|
+
*/
|
|
136
|
+
export declare function clickStackDefaultConnectionTarget(config: ClickStackBootstrapRuntimeConfig): {
|
|
137
|
+
host: string;
|
|
138
|
+
username: string;
|
|
139
|
+
database: string;
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* The chart value HyperDX's `DEFAULT_CONNECTIONS` password is read from in
|
|
143
|
+
* `secretValues` mode, as a Helm template. The chart runs `tpl` over
|
|
144
|
+
* `hyperdx.deployment.defaultConnections` with the release's merged values
|
|
145
|
+
* (its own default uses `{{ .Values.hyperdx.secrets.CLICKHOUSE_APP_PASSWORD }}`),
|
|
146
|
+
* so the caller's `valuesFrom` fragment supplies the password while TypeKro
|
|
147
|
+
* supplies the topology. `toJson` quotes and escapes it as a JSON string.
|
|
148
|
+
*/
|
|
149
|
+
export declare const CLICKSTACK_APP_PASSWORD_VALUE_TEMPLATE = "{{ .Values.hyperdx.secrets.CLICKHOUSE_APP_PASSWORD | toJson }}";
|
|
150
|
+
/** Key of the values document in the `secretValues` default-connections ConfigMap. */
|
|
151
|
+
export declare const CLICKSTACK_DEFAULT_CONNECTIONS_VALUES_KEY = "values.yaml";
|
|
152
|
+
/**
|
|
153
|
+
* Where, in the HelmRelease's own `spec.values`, TypeKro puts the non-secret
|
|
154
|
+
* values HyperDX's default connection and sources are built from: host URL,
|
|
155
|
+
* port and user under `.defaultConnection`, the OTel database under
|
|
156
|
+
* `.defaultSources`. The chart ignores the key; the templates below read it.
|
|
157
|
+
*/
|
|
158
|
+
export declare const CLICKSTACK_DEFAULTS_VALUES_PATH = "typekro.clickstack";
|
|
159
|
+
/** @deprecated Use {@link CLICKSTACK_DEFAULTS_VALUES_PATH}; kept for the `.defaultConnection` path. */
|
|
160
|
+
export declare const CLICKSTACK_DEFAULT_CONNECTION_VALUES_PATH = "typekro.clickstack.defaultConnection";
|
|
161
|
+
/**
|
|
162
|
+
* HyperDX's `defaultConnections`, in BOTH credential modes: a Helm template
|
|
163
|
+
* the chart runs `tpl` over (with the release's merged values) when it sets
|
|
164
|
+
* `DEFAULT_CONNECTIONS`. Every field is serialised by `toJson`: the host,
|
|
165
|
+
* port and user from {@link CLICKSTACK_DEFAULTS_VALUES_PATH}, the password
|
|
166
|
+
* from `hyperdx.secrets.CLICKHOUSE_APP_PASSWORD` (rendered by TypeKro inline,
|
|
167
|
+
* supplied by the values fragment with `secretValues`). Nothing user-supplied
|
|
168
|
+
* is ever interpolated into JSON by hand, so a quote, backslash or space in
|
|
169
|
+
* any field stays valid JSON, in direct and KRO mode alike.
|
|
170
|
+
*/
|
|
171
|
+
export declare const CLICKSTACK_DEFAULT_CONNECTIONS_TEMPLATE: string;
|
|
172
|
+
/**
|
|
173
|
+
* HyperDX's `defaultSources`: {@link CLICKSTACK_DEFAULT_SOURCES} with every
|
|
174
|
+
* `databaseName` a `toJson` template of the OTel database, for the same
|
|
175
|
+
* reason as {@link CLICKSTACK_DEFAULT_CONNECTIONS_TEMPLATE}.
|
|
176
|
+
*/
|
|
177
|
+
export declare const CLICKSTACK_DEFAULT_SOURCES_TEMPLATE: string;
|
|
178
|
+
/**
|
|
179
|
+
* The `secretValues`-mode values document that sets
|
|
180
|
+
* `hyperdx.deployment.defaultConnections` to
|
|
181
|
+
* {@link CLICKSTACK_DEFAULT_CONNECTIONS_TEMPLATE}.
|
|
182
|
+
*
|
|
183
|
+
* WHY A SEPARATE DOCUMENT. TypeKro renders no `defaultConnections` in
|
|
184
|
+
* `spec.values` in this mode, because Flux applies `spec.values` last and it
|
|
185
|
+
* would override a `defaultConnections` in the caller's fragment. Without one
|
|
186
|
+
* the chart falls back to its own "Local ClickHouse" at the bundled ClickHouse
|
|
187
|
+
* Service TypeKro disables, which HyperDX's registration (`initialUser`) would
|
|
188
|
+
* provision. The composition hands this document to Flux as a ConfigMap
|
|
189
|
+
* `valuesFrom` entry BEFORE the caller's Secret, so the fragment still wins.
|
|
190
|
+
*/
|
|
191
|
+
export declare const CLICKSTACK_SECRET_VALUES_DEFAULT_CONNECTIONS_DOCUMENT: string;
|
|
123
192
|
/**
|
|
124
193
|
* Map typed ClickStack runtime config + build options into official
|
|
125
194
|
* clickstack chart values.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm-values-mapper.d.ts","sourceRoot":"","sources":["../../../../src/factories/clickstack/utils/helm-values-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAOH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,OAAO,EAAE,KAAK,uBAAuB,EAAyB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"helm-values-mapper.d.ts","sourceRoot":"","sources":["../../../../src/factories/clickstack/utils/helm-values-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAOH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,OAAO,EAAE,KAAK,uBAAuB,EAAyB,MAAM,uBAAuB,CAAC;AAE5F,OAAO,EACL,KAAK,yBAAyB,EAI/B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAEV,gCAAgC,EAEhC,oBAAoB,EACpB,4BAA4B,EAC5B,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AAErB,kDAAkD;AAClD,eAAO,MAAM,4BAA4B,eAAe,CAAC;AAEzD,0DAA0D;AAC1D,eAAO,MAAM,sCAAsC,yBAAyB,CAAC;AAE7E;;;;;;;;GAQG;AACH,eAAO,MAAM,mCAAmC,uEACsB,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,yCAAyC,CAAC;AAE5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oCAAoC,EAAE,uBAQlD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,kCAAkC,QAE7C,CAAC;AAEH,2EAA2E;AAC3E,MAAM,WAAW,6BAA6B;IAC5C,mEAAmE;IACnE,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACpC,sFAAsF;IACtF,MAAM,CAAC,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAClD,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;IAC7C;;;;OAIG;IACH,OAAO,CAAC,EAAE,yBAAyB,CAAC;CACrC;AAED,yDAAyD;AACzD,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,6BAA6B,CAAC;IACzC,UAAU,EAAE,6BAA6B,CAAC;CAC3C;AAmHD;;;;;;GAMG;AAGH;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,gCAAgC,GAAG;IAC3F,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAoBA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,sCAAsC,mEACe,CAAC;AAEnE,sFAAsF;AACtF,eAAO,MAAM,yCAAyC,gBAAgB,CAAC;AAEvE;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,uBAAuB,CAAC;AACpE,uGAAuG;AACvG,eAAO,MAAM,yCAAyC,yCAAyD,CAAC;AAKhH;;;;;;;;;GASG;AACH,eAAO,MAAM,uCAAuC,QAGhD,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,QAEkD,CAAC;AAEnG;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qDAAqD,QAMtD,CAAC;AA4Bb;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,gCAAgC,EACxC,OAAO,GAAE,6BAAkC,GAC1C,0BAA0B,CA6I5B;AAMD,2EAA2E;AAC3E,MAAM,WAAW,mCAAmC;IAClD,SAAS,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,CAAA;KAAE,CAAC;IACrE,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,kBAAkB,CAAC,uBAAuB,CAAC,CAAA;KAAE,CAAC;CACvE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,4BAA4B,EACpC,OAAO,GAAE,mCAAwC,GAChD,4BAA4B,CAgH9B"}
|
|
@@ -52,6 +52,7 @@ import { Cel } from '../../../core/references/cel.js';
|
|
|
52
52
|
import { isCelExpression, isKubernetesRef } from '../../../utils/type-guards.js';
|
|
53
53
|
import { CLICKSTACK_MONGO_NAME_SUFFIX, CLICKSTACK_MONGO_PORT } from '../resources/mongo.js';
|
|
54
54
|
import { renderCollectorConfig } from './collector-config.js';
|
|
55
|
+
import { CLICKSTACK_CONNECTION_NAME, CLICKSTACK_DEFAULT_SOURCES } from './team-defaults.js';
|
|
55
56
|
import { clickStackQueueClaimName, persistentQueueConfigFragment, renderPersistentQueueValues, } from './storage.js';
|
|
56
57
|
/** Default namespace for a ClickStack install. */
|
|
57
58
|
export const DEFAULT_CLICKSTACK_NAMESPACE = 'clickstack';
|
|
@@ -73,8 +74,7 @@ export const DEFAULT_CLICKSTACK_GATEWAY_ENDPOINT = 'http://clickstack-otel-colle
|
|
|
73
74
|
* the contrib distribution (it carries the k8s receivers the presets enable).
|
|
74
75
|
*/
|
|
75
76
|
export const DEFAULT_K8S_TELEMETRY_COLLECTOR_IMAGE = 'otel/opentelemetry-collector-contrib';
|
|
76
|
-
|
|
77
|
-
export const CLICKSTACK_CONNECTION_NAME = 'External ClickHouse';
|
|
77
|
+
export { CLICKSTACK_CONNECTION_NAME } from './team-defaults.js';
|
|
78
78
|
/**
|
|
79
79
|
* The ClickStack image runs under the OpAMP supervisor. Its built-in remote
|
|
80
80
|
* configuration declares the OTLP receiver but, without an overlay, does not
|
|
@@ -213,98 +213,110 @@ function mergeOverridesWithPinsLast(base, overrides, pins) {
|
|
|
213
213
|
* `defaultConnections`/`defaultSources` pointing at the (nonexistent) bundled
|
|
214
214
|
* ClickHouse Service, so both must be overridden for external mode. The
|
|
215
215
|
* sources below mirror the chart defaults (values.yaml `defaultSources`,
|
|
216
|
-
* chart 3.2.0) with the connection renamed and the database
|
|
217
|
-
* (`%s` slots filled per mode).
|
|
216
|
+
* chart 3.2.0) with the connection renamed and the database a Helm template.
|
|
218
217
|
*/
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
218
|
+
// The JSON itself is a Helm template, built below (CLICKSTACK_DEFAULT_SOURCES_TEMPLATE).
|
|
219
|
+
/**
|
|
220
|
+
* The connection and database the Team bootstrap seeds, derived exactly as
|
|
221
|
+
* `defaultConnections` / `defaultSources` derive them: `http://<host>:<httpPort>`,
|
|
222
|
+
* the UI user (`appUsername`, else `username`, else `default`) and the OTel
|
|
223
|
+
* database. Concrete values in direct mode, CEL in KRO mode. The password is
|
|
224
|
+
* not here: the CronJob reads it from the chart-owned Secret.
|
|
225
|
+
*/
|
|
226
|
+
export function clickStackDefaultConnectionTarget(config) {
|
|
227
|
+
const ch = config.clickhouse;
|
|
228
|
+
if (isKubernetesRef(config.name) || isKubernetesRef(ch)) {
|
|
229
|
+
const httpPortStr = Cel.expr(`string(${hasSchemaPath('schema.spec.clickhouse.httpPort')} ? schema.spec.clickhouse.httpPort : 8123)`);
|
|
230
|
+
return {
|
|
231
|
+
host: Cel.template('http://%s:%s', ch.host, httpPortStr),
|
|
232
|
+
username: Cel.expr(`${hasSchemaPath('schema.spec.clickhouse.appUsername')} ? schema.spec.clickhouse.appUsername : ` +
|
|
233
|
+
`(${hasSchemaPath('schema.spec.clickhouse.username')} ? schema.spec.clickhouse.username : "default")`),
|
|
234
|
+
database: resolve(ch.database, 'default'),
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
return {
|
|
238
|
+
host: `http://${ch.host}:${ch.httpPort ?? 8123}`,
|
|
239
|
+
username: ch.appUsername ?? ch.username ?? 'default',
|
|
240
|
+
database: ch.database ?? 'default',
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* The chart value HyperDX's `DEFAULT_CONNECTIONS` password is read from in
|
|
245
|
+
* `secretValues` mode, as a Helm template. The chart runs `tpl` over
|
|
246
|
+
* `hyperdx.deployment.defaultConnections` with the release's merged values
|
|
247
|
+
* (its own default uses `{{ .Values.hyperdx.secrets.CLICKHOUSE_APP_PASSWORD }}`),
|
|
248
|
+
* so the caller's `valuesFrom` fragment supplies the password while TypeKro
|
|
249
|
+
* supplies the topology. `toJson` quotes and escapes it as a JSON string.
|
|
250
|
+
*/
|
|
251
|
+
export const CLICKSTACK_APP_PASSWORD_VALUE_TEMPLATE = '{{ .Values.hyperdx.secrets.CLICKHOUSE_APP_PASSWORD | toJson }}';
|
|
252
|
+
/** Key of the values document in the `secretValues` default-connections ConfigMap. */
|
|
253
|
+
export const CLICKSTACK_DEFAULT_CONNECTIONS_VALUES_KEY = 'values.yaml';
|
|
254
|
+
/**
|
|
255
|
+
* Where, in the HelmRelease's own `spec.values`, TypeKro puts the non-secret
|
|
256
|
+
* values HyperDX's default connection and sources are built from: host URL,
|
|
257
|
+
* port and user under `.defaultConnection`, the OTel database under
|
|
258
|
+
* `.defaultSources`. The chart ignores the key; the templates below read it.
|
|
259
|
+
*/
|
|
260
|
+
export const CLICKSTACK_DEFAULTS_VALUES_PATH = 'typekro.clickstack';
|
|
261
|
+
/** @deprecated Use {@link CLICKSTACK_DEFAULTS_VALUES_PATH}; kept for the `.defaultConnection` path. */
|
|
262
|
+
export const CLICKSTACK_DEFAULT_CONNECTION_VALUES_PATH = `${CLICKSTACK_DEFAULTS_VALUES_PATH}.defaultConnection`;
|
|
263
|
+
/** A Helm template that serialises one chart value as JSON. */
|
|
264
|
+
const toJsonTemplate = (path) => `{{ .Values.${path} | toJson }}`;
|
|
265
|
+
/**
|
|
266
|
+
* HyperDX's `defaultConnections`, in BOTH credential modes: a Helm template
|
|
267
|
+
* the chart runs `tpl` over (with the release's merged values) when it sets
|
|
268
|
+
* `DEFAULT_CONNECTIONS`. Every field is serialised by `toJson`: the host,
|
|
269
|
+
* port and user from {@link CLICKSTACK_DEFAULTS_VALUES_PATH}, the password
|
|
270
|
+
* from `hyperdx.secrets.CLICKHOUSE_APP_PASSWORD` (rendered by TypeKro inline,
|
|
271
|
+
* supplied by the values fragment with `secretValues`). Nothing user-supplied
|
|
272
|
+
* is ever interpolated into JSON by hand, so a quote, backslash or space in
|
|
273
|
+
* any field stays valid JSON, in direct and KRO mode alike.
|
|
274
|
+
*/
|
|
275
|
+
export const CLICKSTACK_DEFAULT_CONNECTIONS_TEMPLATE = (() => {
|
|
276
|
+
const connection = `${CLICKSTACK_DEFAULTS_VALUES_PATH}.defaultConnection`;
|
|
277
|
+
return `[{"name":${JSON.stringify(CLICKSTACK_CONNECTION_NAME)},"host":${toJsonTemplate(`${connection}.host`)},"port":${toJsonTemplate(`${connection}.port`)},"username":${toJsonTemplate(`${connection}.username`)},"password":${CLICKSTACK_APP_PASSWORD_VALUE_TEMPLATE}}]`;
|
|
278
|
+
})();
|
|
279
|
+
/**
|
|
280
|
+
* HyperDX's `defaultSources`: {@link CLICKSTACK_DEFAULT_SOURCES} with every
|
|
281
|
+
* `databaseName` a `toJson` template of the OTel database, for the same
|
|
282
|
+
* reason as {@link CLICKSTACK_DEFAULT_CONNECTIONS_TEMPLATE}.
|
|
283
|
+
*/
|
|
284
|
+
export const CLICKSTACK_DEFAULT_SOURCES_TEMPLATE = JSON.stringify(CLICKSTACK_DEFAULT_SOURCES).replaceAll('"%s"', toJsonTemplate(`${CLICKSTACK_DEFAULTS_VALUES_PATH}.defaultSources.database`));
|
|
285
|
+
/**
|
|
286
|
+
* The `secretValues`-mode values document that sets
|
|
287
|
+
* `hyperdx.deployment.defaultConnections` to
|
|
288
|
+
* {@link CLICKSTACK_DEFAULT_CONNECTIONS_TEMPLATE}.
|
|
289
|
+
*
|
|
290
|
+
* WHY A SEPARATE DOCUMENT. TypeKro renders no `defaultConnections` in
|
|
291
|
+
* `spec.values` in this mode, because Flux applies `spec.values` last and it
|
|
292
|
+
* would override a `defaultConnections` in the caller's fragment. Without one
|
|
293
|
+
* the chart falls back to its own "Local ClickHouse" at the bundled ClickHouse
|
|
294
|
+
* Service TypeKro disables, which HyperDX's registration (`initialUser`) would
|
|
295
|
+
* provision. The composition hands this document to Flux as a ConfigMap
|
|
296
|
+
* `valuesFrom` entry BEFORE the caller's Secret, so the fragment still wins.
|
|
297
|
+
*/
|
|
298
|
+
export const CLICKSTACK_SECRET_VALUES_DEFAULT_CONNECTIONS_DOCUMENT = [
|
|
299
|
+
'hyperdx:',
|
|
300
|
+
' deployment:',
|
|
301
|
+
' defaultConnections: |',
|
|
302
|
+
` ${CLICKSTACK_DEFAULT_CONNECTIONS_TEMPLATE}`,
|
|
303
|
+
'',
|
|
304
|
+
].join('\n');
|
|
305
|
+
/**
|
|
306
|
+
* The typed values the templates read (see {@link CLICKSTACK_DEFAULTS_VALUES_PATH}):
|
|
307
|
+
* the same host, port, user and database the seed uses.
|
|
308
|
+
*/
|
|
309
|
+
function clickStackDefaultsValues(config) {
|
|
310
|
+
const target = clickStackDefaultConnectionTarget(config);
|
|
311
|
+
const ch = config.clickhouse;
|
|
312
|
+
const port = isKubernetesRef(config.name) || isKubernetesRef(ch)
|
|
313
|
+
? Cel.expr(`${hasSchemaPath('schema.spec.clickhouse.httpPort')} ? schema.spec.clickhouse.httpPort : 8123`)
|
|
314
|
+
: (ch.httpPort ?? 8123);
|
|
315
|
+
return {
|
|
316
|
+
defaultConnection: { host: target.host, port, username: target.username },
|
|
317
|
+
defaultSources: { database: target.database },
|
|
318
|
+
};
|
|
319
|
+
}
|
|
308
320
|
// ============================================================================
|
|
309
321
|
// clickstackBootstrap values
|
|
310
322
|
// ============================================================================
|
|
@@ -328,7 +340,6 @@ export function mapClickStackConfigToHelmValues(config, options = {}) {
|
|
|
328
340
|
// Ports as string()-wrapped CEL so they compose into mixed string
|
|
329
341
|
// templates (KRO mixed templates want string-typed segments).
|
|
330
342
|
const nativePortStr = Cel.expr(`string(${hasSchemaPath('schema.spec.clickhouse.nativePort')} ? schema.spec.clickhouse.nativePort : 9000)`);
|
|
331
|
-
const httpPortStr = Cel.expr(`string(${hasSchemaPath('schema.spec.clickhouse.httpPort')} ? schema.spec.clickhouse.httpPort : 8123)`);
|
|
332
343
|
hyperdxConfig.CLICKHOUSE_ENDPOINT = Cel.template('tcp://%s:%s?dial_timeout=10s', ch.host, nativePortStr);
|
|
333
344
|
hyperdxConfig.CLICKHOUSE_SERVER_ENDPOINT = Cel.template('%s:%s', ch.host, nativePortStr);
|
|
334
345
|
hyperdxConfig.CLICKHOUSE_USER = resolve(ch.username, 'default');
|
|
@@ -341,24 +352,20 @@ export function mapClickStackConfigToHelmValues(config, options = {}) {
|
|
|
341
352
|
if (credentialSource === 'inline') {
|
|
342
353
|
const inlineConfig = config;
|
|
343
354
|
const inlineClickhouse = inlineConfig.clickhouse;
|
|
344
|
-
const appUsername = Cel.expr(`${hasSchemaPath('schema.spec.clickhouse.appUsername')} ? schema.spec.clickhouse.appUsername : ` +
|
|
345
|
-
`(${hasSchemaPath('schema.spec.clickhouse.username')} ? schema.spec.clickhouse.username : "default")`);
|
|
346
355
|
const appPassword = Cel.expr(`${hasSchemaPath('schema.spec.clickhouse.appPassword')} ? schema.spec.clickhouse.appPassword : ` +
|
|
347
356
|
`(${hasSchemaPath('schema.spec.clickhouse.password')} ? schema.spec.clickhouse.password : "")`);
|
|
348
357
|
hyperdxSecrets.CLICKHOUSE_PASSWORD = resolve(inlineClickhouse.password, '');
|
|
349
358
|
hyperdxSecrets.CLICKHOUSE_APP_PASSWORD = appPassword;
|
|
350
359
|
hyperdxSecrets.HYPERDX_API_KEY = inlineConfig.apiKey;
|
|
351
|
-
hyperdxDeployment.defaultConnections =
|
|
360
|
+
hyperdxDeployment.defaultConnections = CLICKSTACK_DEFAULT_CONNECTIONS_TEMPLATE;
|
|
352
361
|
}
|
|
353
362
|
hyperdxDeployment.replicas = graphOptional('schema.spec.hyperdx.replicas');
|
|
354
363
|
hyperdxDeployment.resources = graphOptional('schema.spec.hyperdx.resources');
|
|
355
364
|
hyperdxDeployment.image = graphOptional('schema.spec.hyperdx.image');
|
|
356
|
-
|
|
357
|
-
hyperdxDeployment.defaultSources = Cel.template(DEFAULT_SOURCES_FORMAT, database, database, database, database);
|
|
365
|
+
hyperdxDeployment.defaultSources = CLICKSTACK_DEFAULT_SOURCES_TEMPLATE;
|
|
358
366
|
}
|
|
359
367
|
else {
|
|
360
368
|
const nativePort = ch.nativePort ?? 9000;
|
|
361
|
-
const httpPort = ch.httpPort ?? 8123;
|
|
362
369
|
const database = ch.database ?? 'default';
|
|
363
370
|
const username = ch.username ?? 'default';
|
|
364
371
|
hyperdxConfig.CLICKHOUSE_ENDPOINT = `tcp://${ch.host}:${nativePort}?dial_timeout=10s`;
|
|
@@ -374,25 +381,16 @@ export function mapClickStackConfigToHelmValues(config, options = {}) {
|
|
|
374
381
|
const inlineConfig = config;
|
|
375
382
|
const inlineClickhouse = inlineConfig.clickhouse;
|
|
376
383
|
const password = inlineClickhouse.password ?? '';
|
|
377
|
-
const appUsername = inlineClickhouse.appUsername ?? username;
|
|
378
384
|
const appPassword = inlineClickhouse.appPassword ?? password;
|
|
379
385
|
hyperdxSecrets.CLICKHOUSE_PASSWORD = password;
|
|
380
386
|
hyperdxSecrets.CLICKHOUSE_APP_PASSWORD = appPassword;
|
|
381
387
|
hyperdxSecrets.HYPERDX_API_KEY = inlineConfig.apiKey;
|
|
382
|
-
hyperdxDeployment.defaultConnections =
|
|
383
|
-
{
|
|
384
|
-
name: CLICKSTACK_CONNECTION_NAME,
|
|
385
|
-
host: `http://${ch.host}:${httpPort}`,
|
|
386
|
-
port: httpPort,
|
|
387
|
-
username: appUsername,
|
|
388
|
-
password: appPassword,
|
|
389
|
-
},
|
|
390
|
-
]);
|
|
388
|
+
hyperdxDeployment.defaultConnections = CLICKSTACK_DEFAULT_CONNECTIONS_TEMPLATE;
|
|
391
389
|
}
|
|
392
390
|
setIfDefined(hyperdxDeployment, 'replicas', config.hyperdx?.replicas);
|
|
393
391
|
setIfDefined(hyperdxDeployment, 'resources', config.hyperdx?.resources);
|
|
394
392
|
setIfDefined(hyperdxDeployment, 'image', config.hyperdx?.image);
|
|
395
|
-
hyperdxDeployment.defaultSources =
|
|
393
|
+
hyperdxDeployment.defaultSources = CLICKSTACK_DEFAULT_SOURCES_TEMPLATE;
|
|
396
394
|
}
|
|
397
395
|
const values = {
|
|
398
396
|
hyperdx: {
|
|
@@ -400,6 +398,9 @@ export function mapClickStackConfigToHelmValues(config, options = {}) {
|
|
|
400
398
|
...(credentialSource === 'inline' ? { secrets: hyperdxSecrets } : {}),
|
|
401
399
|
deployment: hyperdxDeployment,
|
|
402
400
|
},
|
|
401
|
+
// The non-secret values the defaultConnections / defaultSources templates
|
|
402
|
+
// read (both credential modes).
|
|
403
|
+
typekro: { clickstack: clickStackDefaultsValues(config) },
|
|
403
404
|
};
|
|
404
405
|
// Hard pins (see module doc): external-only build-around + the status
|
|
405
406
|
// contract's naming anchor. Merged AFTER every passthrough so they always
|