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,36 @@
|
|
|
1
|
+
import { kubernetesComposition } from '../../../core/composition/imperative.js';
|
|
2
|
+
import { Cel } from '../../../core/references/cel.js';
|
|
3
|
+
import { clickstackHelmRepository } from '../resources/helm.js';
|
|
4
|
+
import { ClickStackHelmRepositorySingletonSpecSchema, ClickStackHelmRepositorySingletonStatusSchema, } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Shared ClickStack HelmRepository singleton.
|
|
7
|
+
*
|
|
8
|
+
* The official ClickStack chart repository
|
|
9
|
+
* (https://clickhouse.github.io/ClickStack-helm-charts) is a single
|
|
10
|
+
* cluster-level Flux source — the same URL serves every consumer. Deploying it
|
|
11
|
+
* inline in the `clickstackBootstrap` RGD would make each instance's KRO
|
|
12
|
+
* ApplySet try to *own* the HelmRepository exclusively, so a second instance
|
|
13
|
+
* of the RGD fails to reconcile ("resource belongs to a different ApplySet
|
|
14
|
+
* ... cannot reassign"). Modelling the repository as its own composition lets
|
|
15
|
+
* the bootstrap consume it via `singleton(...)`, so one shared HelmRepository
|
|
16
|
+
* is owned outside any single instance's ApplySet and every instance's
|
|
17
|
+
* HelmRelease references it by the same `sourceRef`. (Same pattern as the
|
|
18
|
+
* dagster/clickhouse bootstraps' shared repositories.)
|
|
19
|
+
*/
|
|
20
|
+
export const clickstackHelmRepositoryBootstrap = kubernetesComposition({
|
|
21
|
+
name: 'clickstack-helm-repository',
|
|
22
|
+
kind: 'ClickStackHelmRepository',
|
|
23
|
+
spec: ClickStackHelmRepositorySingletonSpecSchema,
|
|
24
|
+
status: ClickStackHelmRepositorySingletonStatusSchema,
|
|
25
|
+
}, (spec) => {
|
|
26
|
+
const repository = clickstackHelmRepository({
|
|
27
|
+
name: spec.name,
|
|
28
|
+
namespace: spec.namespace,
|
|
29
|
+
url: spec.url,
|
|
30
|
+
id: 'repository',
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
ready: Cel.expr(repository.status.conditions, '.exists(c, c.type == "Ready" && c.status == "True")'),
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=clickstack-helm-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clickstack-helm-repository.js","sourceRoot":"","sources":["../../../../src/factories/clickstack/compositions/clickstack-helm-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EACL,2CAA2C,EAC3C,6CAA6C,GAC9C,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,qBAAqB,CACpE;IACE,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,2CAA2C;IACjD,MAAM,EAAE,6CAA6C;CACtD,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,UAAU,GAAG,wBAAwB,CAAC;QAC1C,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,EAAE,EAAE,YAAY;KACjB,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,IAAI,CACb,UAAU,CAAC,MAAM,CAAC,UAAU,EAC5B,qDAAqD,CACtD;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/clickstack/compositions/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/clickstack/compositions/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClickStack Kubernetes Telemetry Composition.
|
|
3
|
+
*
|
|
4
|
+
* The documented ClickStack pattern for collecting cluster telemetry
|
|
5
|
+
* (https://clickhouse.com/docs/use-cases/observability/clickstack/ingesting-data/kubernetes):
|
|
6
|
+
* TWO instances of the STOCK `opentelemetry-collector` chart from
|
|
7
|
+
* https://open-telemetry.github.io/opentelemetry-helm-charts —
|
|
8
|
+
*
|
|
9
|
+
* 1. A DAEMONSET instance on every node: presets `logsCollection`,
|
|
10
|
+
* `hostMetrics`, `kubernetesAttributes`, `kubeletMetrics` (+ the
|
|
11
|
+
* docs-recommended kubeletstats utilization metrics).
|
|
12
|
+
* 2. A DEPLOYMENT instance (single replica): presets `kubernetesAttributes`,
|
|
13
|
+
* `kubernetesEvents`, `clusterMetrics`.
|
|
14
|
+
*
|
|
15
|
+
* Both export `otlphttp` to the ClickStack gateway collector (default: the
|
|
16
|
+
* in-cluster `clickstack-otel-collector` Service on 4318 — prefer wiring
|
|
17
|
+
* `stack.status.gateway.otlpHttpEndpoint` from the bootstrap's status
|
|
18
|
+
* contract) authenticated with an `authorization: <HYPERDX_API_KEY>` header.
|
|
19
|
+
* The key is delivered via a `secretKeyRef` env var and referenced through
|
|
20
|
+
* OTel `${env:…}` config expansion, so the key value never lands in Helm
|
|
21
|
+
* values.
|
|
22
|
+
*
|
|
23
|
+
* BUILD-TIME vs RUNTIME: per-instance raw chart values are BUILD-TIME options
|
|
24
|
+
* on `makeClickstackK8sTelemetry(...)` (a free-form values tree cannot be
|
|
25
|
+
* represented per-instance in a KRO schema without silently dropping it);
|
|
26
|
+
* the runtime spec carries only proxy-safe values (name, namespace, version,
|
|
27
|
+
* endpoint, apiKeySecret coordinates).
|
|
28
|
+
*
|
|
29
|
+
* This is deliberately NOT the clickstack chart — the gateway collector ships
|
|
30
|
+
* with `clickstackBootstrap`; these are the per-cluster edge collectors.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const factory = clickstackK8sTelemetry.factory('kro', {
|
|
35
|
+
* namespace: 'clickstack-telemetry',
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* await factory.deploy({
|
|
39
|
+
* name: 'clickstack-telemetry',
|
|
40
|
+
* apiKeySecret: { name: 'hyperdx-secret' },
|
|
41
|
+
* endpoint: stack.status.gateway.otlpHttpEndpoint,
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
import { type ClickStackK8sTelemetryBuildOptions } from '../types.js';
|
|
46
|
+
/**
|
|
47
|
+
* Construct a k8s telemetry composition. Build-time options bake static raw
|
|
48
|
+
* chart values per collector instance; everything per-instance stays in the
|
|
49
|
+
* runtime spec.
|
|
50
|
+
*/
|
|
51
|
+
export declare function makeClickstackK8sTelemetry(options?: ClickStackK8sTelemetryBuildOptions): import("../../../index.js").CallableComposition<{
|
|
52
|
+
name: string;
|
|
53
|
+
apiKeySecret: {
|
|
54
|
+
name: string;
|
|
55
|
+
key?: string;
|
|
56
|
+
};
|
|
57
|
+
namespace?: string;
|
|
58
|
+
version?: string;
|
|
59
|
+
endpoint?: string;
|
|
60
|
+
}, {
|
|
61
|
+
ready: boolean;
|
|
62
|
+
phase: "Ready" | "Installing";
|
|
63
|
+
}>;
|
|
64
|
+
/** Composition type for the k8s telemetry pair. */
|
|
65
|
+
export type ClickStackK8sTelemetryComposition = ReturnType<typeof makeClickstackK8sTelemetry>;
|
|
66
|
+
/**
|
|
67
|
+
* The default k8s telemetry composition (no build-time value overrides).
|
|
68
|
+
* Use `makeClickstackK8sTelemetry(...)` to bake per-instance raw chart values.
|
|
69
|
+
*/
|
|
70
|
+
export declare const clickstackK8sTelemetry: import("../../../index.js").CallableComposition<{
|
|
71
|
+
name: string;
|
|
72
|
+
apiKeySecret: {
|
|
73
|
+
name: string;
|
|
74
|
+
key?: string;
|
|
75
|
+
};
|
|
76
|
+
namespace?: string;
|
|
77
|
+
version?: string;
|
|
78
|
+
endpoint?: string;
|
|
79
|
+
}, {
|
|
80
|
+
ready: boolean;
|
|
81
|
+
phase: "Ready" | "Installing";
|
|
82
|
+
}>;
|
|
83
|
+
//# sourceMappingURL=k8s-telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8s-telemetry.d.ts","sourceRoot":"","sources":["../../../../src/factories/clickstack/compositions/k8s-telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAcH,OAAO,EACL,KAAK,kCAAkC,EAIxC,MAAM,aAAa,CAAC;AAOrB;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,kCAAuC;;;;;;;;;;;;GAoF1F;AAED,mDAAmD;AACnD,MAAM,MAAM,iCAAiC,GAAG,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9F;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAA+B,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClickStack Kubernetes Telemetry Composition.
|
|
3
|
+
*
|
|
4
|
+
* The documented ClickStack pattern for collecting cluster telemetry
|
|
5
|
+
* (https://clickhouse.com/docs/use-cases/observability/clickstack/ingesting-data/kubernetes):
|
|
6
|
+
* TWO instances of the STOCK `opentelemetry-collector` chart from
|
|
7
|
+
* https://open-telemetry.github.io/opentelemetry-helm-charts —
|
|
8
|
+
*
|
|
9
|
+
* 1. A DAEMONSET instance on every node: presets `logsCollection`,
|
|
10
|
+
* `hostMetrics`, `kubernetesAttributes`, `kubeletMetrics` (+ the
|
|
11
|
+
* docs-recommended kubeletstats utilization metrics).
|
|
12
|
+
* 2. A DEPLOYMENT instance (single replica): presets `kubernetesAttributes`,
|
|
13
|
+
* `kubernetesEvents`, `clusterMetrics`.
|
|
14
|
+
*
|
|
15
|
+
* Both export `otlphttp` to the ClickStack gateway collector (default: the
|
|
16
|
+
* in-cluster `clickstack-otel-collector` Service on 4318 — prefer wiring
|
|
17
|
+
* `stack.status.gateway.otlpHttpEndpoint` from the bootstrap's status
|
|
18
|
+
* contract) authenticated with an `authorization: <HYPERDX_API_KEY>` header.
|
|
19
|
+
* The key is delivered via a `secretKeyRef` env var and referenced through
|
|
20
|
+
* OTel `${env:…}` config expansion, so the key value never lands in Helm
|
|
21
|
+
* values.
|
|
22
|
+
*
|
|
23
|
+
* BUILD-TIME vs RUNTIME: per-instance raw chart values are BUILD-TIME options
|
|
24
|
+
* on `makeClickstackK8sTelemetry(...)` (a free-form values tree cannot be
|
|
25
|
+
* represented per-instance in a KRO schema without silently dropping it);
|
|
26
|
+
* the runtime spec carries only proxy-safe values (name, namespace, version,
|
|
27
|
+
* endpoint, apiKeySecret coordinates).
|
|
28
|
+
*
|
|
29
|
+
* This is deliberately NOT the clickstack chart — the gateway collector ships
|
|
30
|
+
* with `clickstackBootstrap`; these are the per-cluster edge collectors.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const factory = clickstackK8sTelemetry.factory('kro', {
|
|
35
|
+
* namespace: 'clickstack-telemetry',
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* await factory.deploy({
|
|
39
|
+
* name: 'clickstack-telemetry',
|
|
40
|
+
* apiKeySecret: { name: 'hyperdx-secret' },
|
|
41
|
+
* endpoint: stack.status.gateway.otlpHttpEndpoint,
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
import { kubernetesComposition } from '../../../core/composition/imperative.js';
|
|
46
|
+
import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
|
|
47
|
+
import { Cel } from '../../../core/references/cel.js';
|
|
48
|
+
import { singleton } from '../../../core/singleton/singleton.js';
|
|
49
|
+
import { containsKubernetesRefs, isKubernetesRef } from '../../../utils/type-guards.js';
|
|
50
|
+
import { namespace } from '../../kubernetes/core/namespace.js';
|
|
51
|
+
import { DEFAULT_OTEL_COLLECTOR_VERSION, DEFAULT_OTEL_REPO_NAME, DEFAULT_OTEL_REPO_URL, otelCollectorHelmRelease, } from '../resources/helm.js';
|
|
52
|
+
import { ClickStackK8sTelemetryConfigSchema, ClickStackK8sTelemetryStatusSchema, } from '../types.js';
|
|
53
|
+
import { DEFAULT_CLICKSTACK_TELEMETRY_NAMESPACE, mapK8sTelemetryConfigToHelmValues, } from '../utils/helm-values-mapper.js';
|
|
54
|
+
import { otelHelmRepositoryBootstrap } from './otel-helm-repository.js';
|
|
55
|
+
/**
|
|
56
|
+
* Construct a k8s telemetry composition. Build-time options bake static raw
|
|
57
|
+
* chart values per collector instance; everything per-instance stays in the
|
|
58
|
+
* runtime spec.
|
|
59
|
+
*/
|
|
60
|
+
export function makeClickstackK8sTelemetry(options = {}) {
|
|
61
|
+
// Build-time options must be CONCRETE (see makeClickstackBootstrap): per-instance values belong
|
|
62
|
+
// in the runtime spec.
|
|
63
|
+
if (containsKubernetesRefs(options)) {
|
|
64
|
+
throw new Error('makeClickstackK8sTelemetry: build-time options contain a schema/resource reference. ' +
|
|
65
|
+
'Move per-instance values into the runtime spec instead.');
|
|
66
|
+
}
|
|
67
|
+
return kubernetesComposition({
|
|
68
|
+
name: options.name ?? 'clickstack-k8s-telemetry',
|
|
69
|
+
kind: options.kind ?? 'ClickStackK8sTelemetry',
|
|
70
|
+
spec: ClickStackK8sTelemetryConfigSchema,
|
|
71
|
+
status: ClickStackK8sTelemetryStatusSchema,
|
|
72
|
+
}, (spec) => {
|
|
73
|
+
const resolvedNamespace = isKubernetesRef(spec.namespace)
|
|
74
|
+
? Cel.default(spec.namespace, DEFAULT_CLICKSTACK_TELEMETRY_NAMESPACE)
|
|
75
|
+
: (spec.namespace ?? DEFAULT_CLICKSTACK_TELEMETRY_NAMESPACE);
|
|
76
|
+
const resolvedVersion = isKubernetesRef(spec.version)
|
|
77
|
+
? Cel.default(spec.version, DEFAULT_OTEL_COLLECTOR_VERSION)
|
|
78
|
+
: (spec.version ?? DEFAULT_OTEL_COLLECTOR_VERSION);
|
|
79
|
+
const { daemonset: daemonsetValues, deployment: deploymentValues } = mapK8sTelemetryConfigToHelmValues(spec, {
|
|
80
|
+
...(options.daemonset !== undefined && { daemonset: options.daemonset }),
|
|
81
|
+
...(options.deployment !== undefined && { deployment: options.deployment }),
|
|
82
|
+
});
|
|
83
|
+
const _telemetryNamespace = namespace({
|
|
84
|
+
metadata: {
|
|
85
|
+
name: resolvedNamespace,
|
|
86
|
+
labels: {
|
|
87
|
+
'app.kubernetes.io/name': 'clickstack-k8s-telemetry',
|
|
88
|
+
'app.kubernetes.io/instance': spec.name,
|
|
89
|
+
'app.kubernetes.io/managed-by': 'typekro',
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
id: 'clickstackTelemetryNamespace',
|
|
93
|
+
});
|
|
94
|
+
// Shared cluster-level OTel chart repository singleton (ApplySet
|
|
95
|
+
// ownership rationale documented on otelHelmRepositoryBootstrap).
|
|
96
|
+
const _otelHelmRepository = singleton(otelHelmRepositoryBootstrap, {
|
|
97
|
+
id: 'opentelemetry-helm-repository',
|
|
98
|
+
spec: {
|
|
99
|
+
name: DEFAULT_OTEL_REPO_NAME,
|
|
100
|
+
namespace: DEFAULT_FLUX_NAMESPACE,
|
|
101
|
+
url: DEFAULT_OTEL_REPO_URL,
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
// Template-literal names work in both modes: concrete strings in direct
|
|
105
|
+
// mode, marker tokens rewritten to CEL in KRO mode (searxng precedent).
|
|
106
|
+
const _daemonsetRelease = otelCollectorHelmRelease({
|
|
107
|
+
name: `${spec.name}-daemonset`,
|
|
108
|
+
namespace: resolvedNamespace,
|
|
109
|
+
version: resolvedVersion,
|
|
110
|
+
values: daemonsetValues,
|
|
111
|
+
id: 'clickstackTelemetryDaemonset',
|
|
112
|
+
});
|
|
113
|
+
const _deploymentRelease = otelCollectorHelmRelease({
|
|
114
|
+
name: `${spec.name}-deployment`,
|
|
115
|
+
namespace: resolvedNamespace,
|
|
116
|
+
version: resolvedVersion,
|
|
117
|
+
values: deploymentValues,
|
|
118
|
+
id: 'clickstackTelemetryDeployment',
|
|
119
|
+
});
|
|
120
|
+
return {
|
|
121
|
+
ready: Cel.expr('clickstackTelemetryDaemonset.status.conditions.exists(c, c.type == "Ready" && c.status == "True") && ' +
|
|
122
|
+
'clickstackTelemetryDeployment.status.conditions.exists(c, c.type == "Ready" && c.status == "True")'),
|
|
123
|
+
phase: Cel.expr('clickstackTelemetryDaemonset.status.conditions.exists(c, c.type == "Ready" && c.status == "True") && ' +
|
|
124
|
+
'clickstackTelemetryDeployment.status.conditions.exists(c, c.type == "Ready" && c.status == "True") ' +
|
|
125
|
+
'? "Ready" : "Installing"'),
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* The default k8s telemetry composition (no build-time value overrides).
|
|
131
|
+
* Use `makeClickstackK8sTelemetry(...)` to bake per-instance raw chart values.
|
|
132
|
+
*/
|
|
133
|
+
export const clickstackK8sTelemetry = makeClickstackK8sTelemetry();
|
|
134
|
+
//# sourceMappingURL=k8s-telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8s-telemetry.js","sourceRoot":"","sources":["../../../../src/factories/clickstack/compositions/k8s-telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared OpenTelemetry HelmRepository singleton.
|
|
3
|
+
*
|
|
4
|
+
* The official OpenTelemetry chart repository
|
|
5
|
+
* (https://open-telemetry.github.io/opentelemetry-helm-charts) is a single
|
|
6
|
+
* cluster-level Flux source shared by every `clickstackK8sTelemetry` instance
|
|
7
|
+
* (and any other OTel chart consumer). Owned via `singleton(...)` for the
|
|
8
|
+
* same ApplySet-ownership reason documented on
|
|
9
|
+
* `clickstackHelmRepositoryBootstrap`.
|
|
10
|
+
*/
|
|
11
|
+
export declare const otelHelmRepositoryBootstrap: import("../../../index.js").CallableComposition<{
|
|
12
|
+
name: string;
|
|
13
|
+
namespace: string;
|
|
14
|
+
url: string;
|
|
15
|
+
}, {
|
|
16
|
+
ready: boolean;
|
|
17
|
+
}>;
|
|
18
|
+
//# sourceMappingURL=otel-helm-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel-helm-repository.d.ts","sourceRoot":"","sources":["../../../../src/factories/clickstack/compositions/otel-helm-repository.ts"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B;;;;;;EAsBvC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { kubernetesComposition } from '../../../core/composition/imperative.js';
|
|
2
|
+
import { Cel } from '../../../core/references/cel.js';
|
|
3
|
+
import { otelHelmRepository } from '../resources/helm.js';
|
|
4
|
+
import { OtelHelmRepositorySingletonSpecSchema, OtelHelmRepositorySingletonStatusSchema, } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Shared OpenTelemetry HelmRepository singleton.
|
|
7
|
+
*
|
|
8
|
+
* The official OpenTelemetry chart repository
|
|
9
|
+
* (https://open-telemetry.github.io/opentelemetry-helm-charts) is a single
|
|
10
|
+
* cluster-level Flux source shared by every `clickstackK8sTelemetry` instance
|
|
11
|
+
* (and any other OTel chart consumer). Owned via `singleton(...)` for the
|
|
12
|
+
* same ApplySet-ownership reason documented on
|
|
13
|
+
* `clickstackHelmRepositoryBootstrap`.
|
|
14
|
+
*/
|
|
15
|
+
export const otelHelmRepositoryBootstrap = kubernetesComposition({
|
|
16
|
+
name: 'opentelemetry-helm-repository',
|
|
17
|
+
kind: 'OpenTelemetryHelmRepository',
|
|
18
|
+
spec: OtelHelmRepositorySingletonSpecSchema,
|
|
19
|
+
status: OtelHelmRepositorySingletonStatusSchema,
|
|
20
|
+
}, (spec) => {
|
|
21
|
+
const repository = otelHelmRepository({
|
|
22
|
+
name: spec.name,
|
|
23
|
+
namespace: spec.namespace,
|
|
24
|
+
url: spec.url,
|
|
25
|
+
id: 'repository',
|
|
26
|
+
});
|
|
27
|
+
return {
|
|
28
|
+
ready: Cel.expr(repository.status.conditions, '.exists(c, c.type == "Ready" && c.status == "True")'),
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=otel-helm-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel-helm-repository.js","sourceRoot":"","sources":["../../../../src/factories/clickstack/compositions/otel-helm-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,qCAAqC,EACrC,uCAAuC,GACxC,MAAM,aAAa,CAAC;AAErB;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,qBAAqB,CAC9D;IACE,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,qCAAqC;IAC3C,MAAM,EAAE,uCAAuC;CAChD,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,UAAU,GAAG,kBAAkB,CAAC;QACpC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,EAAE,EAAE,YAAY;KACjB,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,IAAI,CACb,UAAU,CAAC,MAAM,CAAC,UAAU,EAC5B,qDAAqD,CACtD;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClickStack (HyperDX) Integration for TypeKro — EXTERNAL ClickHouse only.
|
|
3
|
+
*
|
|
4
|
+
* Type-safe deployment primitives for ClickStack observability on Kubernetes
|
|
5
|
+
* via the OFFICIAL `clickstack` Helm chart (MIT) from
|
|
6
|
+
* https://clickhouse.github.io/ClickStack-helm-charts, wired to an EXTERNAL
|
|
7
|
+
* ClickHouse (e.g. an Altinity-operator-managed ClickHouseInstallation).
|
|
8
|
+
* The chart's bundled ClickHouse and MongoDB are hard-disabled — their CRDs
|
|
9
|
+
* belong to the `clickstack-operators` prerequisite chart, whose ClickHouse
|
|
10
|
+
* operator would collide with the Altinity operator.
|
|
11
|
+
*
|
|
12
|
+
* ## Compositions
|
|
13
|
+
* - `clickstackBootstrap` — Namespace + shared HelmRepository singleton +
|
|
14
|
+
* optional internal Mongo (StatefulSet/Service) + clickstack HelmRelease
|
|
15
|
+
* (HyperDX UI/API/OpAMP + OTel gateway collector).
|
|
16
|
+
* - `clickstackK8sTelemetry` — the documented k8s ingestion pattern: a
|
|
17
|
+
* daemonset + a deployment instance of the STOCK `opentelemetry-collector`
|
|
18
|
+
* chart exporting otlphttp to the ClickStack gateway.
|
|
19
|
+
*
|
|
20
|
+
* ## Resources
|
|
21
|
+
* - `clickstackHelmRepository()` / `otelHelmRepository()` — chart repositories
|
|
22
|
+
* - `clickstackHelmRelease()` / `otelCollectorHelmRelease()` — releases
|
|
23
|
+
* - `clickstackMongoStatefulSet()` / `clickstackMongoService()` — internal Mongo
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* import { clickstackBootstrap } from 'typekro/clickstack';
|
|
28
|
+
*
|
|
29
|
+
* const factory = clickstackBootstrap.factory('kro', { namespace: 'clickstack' });
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @see https://github.com/ClickHouse/ClickStack-helm-charts
|
|
33
|
+
* @see https://clickhouse.com/docs/use-cases/observability/clickstack
|
|
34
|
+
* @module
|
|
35
|
+
*/
|
|
36
|
+
export * from './compositions/index.js';
|
|
37
|
+
export * from './resources/index.js';
|
|
38
|
+
export * from './types.js';
|
|
39
|
+
export * from './utils/index.js';
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/clickstack/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClickStack (HyperDX) Integration for TypeKro — EXTERNAL ClickHouse only.
|
|
3
|
+
*
|
|
4
|
+
* Type-safe deployment primitives for ClickStack observability on Kubernetes
|
|
5
|
+
* via the OFFICIAL `clickstack` Helm chart (MIT) from
|
|
6
|
+
* https://clickhouse.github.io/ClickStack-helm-charts, wired to an EXTERNAL
|
|
7
|
+
* ClickHouse (e.g. an Altinity-operator-managed ClickHouseInstallation).
|
|
8
|
+
* The chart's bundled ClickHouse and MongoDB are hard-disabled — their CRDs
|
|
9
|
+
* belong to the `clickstack-operators` prerequisite chart, whose ClickHouse
|
|
10
|
+
* operator would collide with the Altinity operator.
|
|
11
|
+
*
|
|
12
|
+
* ## Compositions
|
|
13
|
+
* - `clickstackBootstrap` — Namespace + shared HelmRepository singleton +
|
|
14
|
+
* optional internal Mongo (StatefulSet/Service) + clickstack HelmRelease
|
|
15
|
+
* (HyperDX UI/API/OpAMP + OTel gateway collector).
|
|
16
|
+
* - `clickstackK8sTelemetry` — the documented k8s ingestion pattern: a
|
|
17
|
+
* daemonset + a deployment instance of the STOCK `opentelemetry-collector`
|
|
18
|
+
* chart exporting otlphttp to the ClickStack gateway.
|
|
19
|
+
*
|
|
20
|
+
* ## Resources
|
|
21
|
+
* - `clickstackHelmRepository()` / `otelHelmRepository()` — chart repositories
|
|
22
|
+
* - `clickstackHelmRelease()` / `otelCollectorHelmRelease()` — releases
|
|
23
|
+
* - `clickstackMongoStatefulSet()` / `clickstackMongoService()` — internal Mongo
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* import { clickstackBootstrap } from 'typekro/clickstack';
|
|
28
|
+
*
|
|
29
|
+
* const factory = clickstackBootstrap.factory('kro', { namespace: 'clickstack' });
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @see https://github.com/ClickHouse/ClickStack-helm-charts
|
|
33
|
+
* @see https://clickhouse.com/docs/use-cases/observability/clickstack
|
|
34
|
+
* @module
|
|
35
|
+
*/
|
|
36
|
+
export * from './compositions/index.js';
|
|
37
|
+
export * from './resources/index.js';
|
|
38
|
+
export * from './types.js';
|
|
39
|
+
export * from './utils/index.js';
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/clickstack/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClickStack Helm Resource Factories
|
|
3
|
+
*
|
|
4
|
+
* Wrappers around the generic Flux Helm factories with ClickStack- and
|
|
5
|
+
* OpenTelemetry-specific defaults (build-around: we wrap the OFFICIAL charts,
|
|
6
|
+
* never hand-rolled manifests).
|
|
7
|
+
*
|
|
8
|
+
* Charts:
|
|
9
|
+
* - `clickstack` from https://clickhouse.github.io/ClickStack-helm-charts
|
|
10
|
+
* (classic Helm repo, MIT). NOT the archived hyperdxio/helm-charts repo and
|
|
11
|
+
* NOT the deprecated `hdx-oss-v2` chart.
|
|
12
|
+
* - `opentelemetry-collector` from
|
|
13
|
+
* https://open-telemetry.github.io/opentelemetry-helm-charts (the stock
|
|
14
|
+
* chart used by the documented ClickStack k8s ingestion pattern; it is also
|
|
15
|
+
* the clickstack chart's only dependency, vendored as alias `otel-collector`).
|
|
16
|
+
*
|
|
17
|
+
* Both chart repositories are cluster-level Flux sources shared by every
|
|
18
|
+
* consumer, so the bootstrap compositions deploy them via `singleton(...)`
|
|
19
|
+
* (see compositions/*-helm-repository.ts). NOTE from the clickhouse family:
|
|
20
|
+
* direct-mode `toYaml()` omits singleton-owned resources — tests must assert
|
|
21
|
+
* repository URLs on the KRO instance bundle instead.
|
|
22
|
+
*/
|
|
23
|
+
import type { Composable, Enhanced } from '../../../core/types/index.js';
|
|
24
|
+
import { type HelmRepositorySpec, type HelmRepositoryStatus } from '../../helm/helm-repository.js';
|
|
25
|
+
import type { HelmReleaseSpec, HelmReleaseStatus } from '../../helm/types.js';
|
|
26
|
+
import type { ClickStackHelmReleaseConfig, ClickStackHelmRepositoryConfig, OtelCollectorHelmReleaseConfig } from '../types.js';
|
|
27
|
+
/** Official ClickStack Helm chart repository URL (classic repo, not OCI). */
|
|
28
|
+
export declare const DEFAULT_CLICKSTACK_REPO_URL = "https://clickhouse.github.io/ClickStack-helm-charts";
|
|
29
|
+
/** Default Flux HelmRepository name for the ClickStack chart repository. */
|
|
30
|
+
export declare const DEFAULT_CLICKSTACK_REPO_NAME = "clickstack";
|
|
31
|
+
/** Official ClickStack chart name. */
|
|
32
|
+
export declare const CLICKSTACK_CHART_NAME = "clickstack";
|
|
33
|
+
/**
|
|
34
|
+
* Default clickstack chart version (verified against the live repo index on
|
|
35
|
+
* 2026-07-06: 3.0.1, appVersion 2.29.0).
|
|
36
|
+
*/
|
|
37
|
+
export declare const DEFAULT_CLICKSTACK_VERSION = "3.0.1";
|
|
38
|
+
/** Official OpenTelemetry Helm chart repository URL. */
|
|
39
|
+
export declare const DEFAULT_OTEL_REPO_URL = "https://open-telemetry.github.io/opentelemetry-helm-charts";
|
|
40
|
+
/** Default Flux HelmRepository name for the OpenTelemetry chart repository. */
|
|
41
|
+
export declare const DEFAULT_OTEL_REPO_NAME = "open-telemetry";
|
|
42
|
+
/** Stock collector chart name. */
|
|
43
|
+
export declare const OTEL_COLLECTOR_CHART_NAME = "opentelemetry-collector";
|
|
44
|
+
/**
|
|
45
|
+
* Default stock opentelemetry-collector chart version for the k8s telemetry
|
|
46
|
+
* collectors. Pinned to the same minor the clickstack chart declares for its
|
|
47
|
+
* gateway subchart dependency (`~0.146.0`; 0.146.1 verified on the live repo
|
|
48
|
+
* index 2026-07-06) so gateway and edge collectors stay aligned.
|
|
49
|
+
*/
|
|
50
|
+
export declare const DEFAULT_OTEL_COLLECTOR_VERSION = "0.146.1";
|
|
51
|
+
/** HyperDX UI port (`hyperdx.ports.app`). */
|
|
52
|
+
export declare const CLICKSTACK_APP_PORT = 3000;
|
|
53
|
+
/** HyperDX API port (`hyperdx.ports.api`). */
|
|
54
|
+
export declare const CLICKSTACK_API_PORT = 8000;
|
|
55
|
+
/** Gateway collector OTLP/HTTP servicePort (`otel-collector.ports.otlp-http`). */
|
|
56
|
+
export declare const CLICKSTACK_OTLP_HTTP_PORT = 4318;
|
|
57
|
+
/** Gateway collector OTLP/gRPC servicePort (`otel-collector.ports.otlp`). */
|
|
58
|
+
export declare const CLICKSTACK_OTLP_GRPC_PORT = 4317;
|
|
59
|
+
/** Suffix the chart appends to `.Release.Name` for the gateway collector Service. */
|
|
60
|
+
export declare const CLICKSTACK_GATEWAY_NAME_SUFFIX = "-otel-collector";
|
|
61
|
+
/**
|
|
62
|
+
* Create a Flux HelmRepository for the official ClickStack chart repository.
|
|
63
|
+
*/
|
|
64
|
+
export declare function clickstackHelmRepository(config: Composable<ClickStackHelmRepositoryConfig>): Enhanced<HelmRepositorySpec, HelmRepositoryStatus>;
|
|
65
|
+
/**
|
|
66
|
+
* Create a Flux HelmRepository for the official OpenTelemetry chart repository.
|
|
67
|
+
*/
|
|
68
|
+
export declare function otelHelmRepository(config: Composable<ClickStackHelmRepositoryConfig>): Enhanced<HelmRepositorySpec, HelmRepositoryStatus>;
|
|
69
|
+
/**
|
|
70
|
+
* Create a Flux HelmRelease for ClickStack using the official chart defaults.
|
|
71
|
+
*/
|
|
72
|
+
export declare function clickstackHelmRelease(config: Composable<ClickStackHelmReleaseConfig>): Enhanced<HelmReleaseSpec, HelmReleaseStatus>;
|
|
73
|
+
/**
|
|
74
|
+
* Create a Flux HelmRelease for a stock opentelemetry-collector instance
|
|
75
|
+
* (daemonset or deployment mode is decided by the supplied values).
|
|
76
|
+
*/
|
|
77
|
+
export declare function otelCollectorHelmRelease(config: Composable<OtelCollectorHelmReleaseConfig>): Enhanced<HelmReleaseSpec, HelmReleaseStatus>;
|
|
78
|
+
//# sourceMappingURL=helm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/clickstack/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EACV,2BAA2B,EAC3B,8BAA8B,EAC9B,8BAA8B,EAC/B,MAAM,aAAa,CAAC;AAErB,6EAA6E;AAC7E,eAAO,MAAM,2BAA2B,wDAAwD,CAAC;AAEjG,4EAA4E;AAC5E,eAAO,MAAM,4BAA4B,eAAe,CAAC;AAEzD,sCAAsC;AACtC,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,UAAU,CAAC;AAElD,wDAAwD;AACxD,eAAO,MAAM,qBAAqB,+DAA+D,CAAC;AAElG,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AAEvD,kCAAkC;AAClC,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,YAAY,CAAC;AAKxD,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,kFAAkF;AAClF,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,qFAAqF;AACrF,eAAO,MAAM,8BAA8B,oBAAoB,CAAC;AAEhE;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,CAAC,8BAA8B,CAAC,GACjD,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAgBpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,CAAC,8BAA8B,CAAC,GACjD,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAcpD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,CAAC,2BAA2B,CAAC,GAC9C,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAoB9C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,CAAC,8BAA8B,CAAC,GACjD,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAoB9C"}
|