typekro 0.11.0 → 0.12.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 (59) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  3. package/dist/core/deployment/kro-factory.js +17 -2
  4. package/dist/core/deployment/kro-factory.js.map +1 -1
  5. package/dist/core/deployment/singleton-gitops.d.ts +10 -0
  6. package/dist/core/deployment/singleton-gitops.d.ts.map +1 -0
  7. package/dist/core/deployment/singleton-gitops.js +62 -0
  8. package/dist/core/deployment/singleton-gitops.js.map +1 -0
  9. package/dist/core/serialization/cel-references.d.ts.map +1 -1
  10. package/dist/core/serialization/cel-references.js +26 -0
  11. package/dist/core/serialization/cel-references.js.map +1 -1
  12. package/dist/core/serialization/core.d.ts.map +1 -1
  13. package/dist/core/serialization/core.js +12 -1
  14. package/dist/core/serialization/core.js.map +1 -1
  15. package/dist/core/serialization/schema.d.ts +2 -0
  16. package/dist/core/serialization/schema.d.ts.map +1 -1
  17. package/dist/core/serialization/schema.js +219 -9
  18. package/dist/core/serialization/schema.js.map +1 -1
  19. package/dist/core/singleton/singleton.d.ts +10 -0
  20. package/dist/core/singleton/singleton.d.ts.map +1 -1
  21. package/dist/core/singleton/singleton.js +13 -0
  22. package/dist/core/singleton/singleton.js.map +1 -1
  23. package/dist/factories/dagster/compositions/dagster-bootstrap.d.ts +892 -0
  24. package/dist/factories/dagster/compositions/dagster-bootstrap.d.ts.map +1 -0
  25. package/dist/factories/dagster/compositions/dagster-bootstrap.js +82 -0
  26. package/dist/factories/dagster/compositions/dagster-bootstrap.js.map +1 -0
  27. package/dist/factories/dagster/compositions/dagster-helm-repository.d.ts +21 -0
  28. package/dist/factories/dagster/compositions/dagster-helm-repository.d.ts.map +1 -0
  29. package/dist/factories/dagster/compositions/dagster-helm-repository.js +34 -0
  30. package/dist/factories/dagster/compositions/dagster-helm-repository.js.map +1 -0
  31. package/dist/factories/dagster/compositions/index.d.ts +3 -0
  32. package/dist/factories/dagster/compositions/index.d.ts.map +1 -0
  33. package/dist/factories/dagster/compositions/index.js +3 -0
  34. package/dist/factories/dagster/compositions/index.js.map +1 -0
  35. package/dist/factories/dagster/index.d.ts +31 -0
  36. package/dist/factories/dagster/index.d.ts.map +1 -0
  37. package/dist/factories/dagster/index.js +31 -0
  38. package/dist/factories/dagster/index.js.map +1 -0
  39. package/dist/factories/dagster/resources/helm.d.ts +32 -0
  40. package/dist/factories/dagster/resources/helm.d.ts.map +1 -0
  41. package/dist/factories/dagster/resources/helm.js +60 -0
  42. package/dist/factories/dagster/resources/helm.js.map +1 -0
  43. package/dist/factories/dagster/resources/index.d.ts +2 -0
  44. package/dist/factories/dagster/resources/index.d.ts.map +1 -0
  45. package/dist/factories/dagster/resources/index.js +2 -0
  46. package/dist/factories/dagster/resources/index.js.map +1 -0
  47. package/dist/factories/dagster/types.d.ts +2061 -0
  48. package/dist/factories/dagster/types.d.ts.map +1 -0
  49. package/dist/factories/dagster/types.js +367 -0
  50. package/dist/factories/dagster/types.js.map +1 -0
  51. package/dist/factories/dagster/utils/helm-values-mapper.d.ts +21 -0
  52. package/dist/factories/dagster/utils/helm-values-mapper.d.ts.map +1 -0
  53. package/dist/factories/dagster/utils/helm-values-mapper.js +470 -0
  54. package/dist/factories/dagster/utils/helm-values-mapper.js.map +1 -0
  55. package/dist/factories/dagster/utils/index.d.ts +2 -0
  56. package/dist/factories/dagster/utils/index.d.ts.map +1 -0
  57. package/dist/factories/dagster/utils/index.js +2 -0
  58. package/dist/factories/dagster/utils/index.js.map +1 -0
  59. package/package.json +6 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dagster-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/dagster/compositions/dagster-bootstrap.ts"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2E5B,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { kubernetesComposition } from '../../../core/composition/imperative.js';
2
+ import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
3
+ import { Cel } from '../../../core/references/cel.js';
4
+ import { singleton } from '../../../core/singleton/singleton.js';
5
+ import { namespace } from '../../kubernetes/core/namespace.js';
6
+ import { DEFAULT_DAGSTER_REPO_NAME, DEFAULT_DAGSTER_REPO_URL, DEFAULT_DAGSTER_VERSION, dagsterHelmRelease, } from '../resources/helm.js';
7
+ import { DagsterBootstrapConfigSchema, DagsterBootstrapStatusSchema, } from '../types.js';
8
+ import { mapDagsterConfigToHelmValues } from '../utils/helm-values-mapper.js';
9
+ import { dagsterHelmRepositoryBootstrap } from './dagster-helm-repository.js';
10
+ /**
11
+ * High-level Dagster bootstrap composition.
12
+ *
13
+ * Creates the target Namespace, official Dagster HelmRepository, and Dagster
14
+ * HelmRelease. Status is derived only from owned Flux Helm resources.
15
+ */
16
+ export const dagsterBootstrap = kubernetesComposition({
17
+ name: 'dagster-bootstrap',
18
+ kind: 'DagsterBootstrap',
19
+ spec: DagsterBootstrapConfigSchema,
20
+ status: DagsterBootstrapStatusSchema,
21
+ }, (spec) => {
22
+ const resolvedNamespace = spec.namespace || 'dagster';
23
+ const resolvedVersion = spec.version || DEFAULT_DAGSTER_VERSION;
24
+ const helmValues = buildHelmValues(spec);
25
+ const _dagsterNamespace = namespace({
26
+ metadata: {
27
+ name: resolvedNamespace,
28
+ labels: {
29
+ 'app.kubernetes.io/name': 'dagster',
30
+ 'app.kubernetes.io/instance': spec.name,
31
+ 'app.kubernetes.io/version': resolvedVersion,
32
+ 'app.kubernetes.io/managed-by': 'typekro',
33
+ },
34
+ },
35
+ id: 'dagsterNamespace',
36
+ });
37
+ // The official Dagster chart repository is one cluster-level Flux source shared
38
+ // by every Dagster instance, so deploy it once via singleton(...) with a fixed
39
+ // identity. Inlining it would make each instance's KRO ApplySet try to own the
40
+ // HelmRepository exclusively, breaking a second instance (dev + prod) with an
41
+ // ApplySet reassignment error. Every instance's HelmRelease references the same
42
+ // shared repository by the official `sourceRef` defaults.
43
+ const _dagsterHelmRepository = singleton(dagsterHelmRepositoryBootstrap, {
44
+ id: 'dagster-helm-repository',
45
+ spec: {
46
+ name: DEFAULT_DAGSTER_REPO_NAME,
47
+ namespace: DEFAULT_FLUX_NAMESPACE,
48
+ url: DEFAULT_DAGSTER_REPO_URL,
49
+ },
50
+ });
51
+ const _dagsterHelmRelease = dagsterHelmRelease({
52
+ name: spec.name,
53
+ namespace: resolvedNamespace,
54
+ version: resolvedVersion,
55
+ values: helmValues,
56
+ id: 'dagsterHelmRelease',
57
+ });
58
+ const helmRepositoryReady = _dagsterHelmRepository.status.ready;
59
+ const helmReleaseReady = Cel.expr(_dagsterHelmRelease.status.conditions, '.exists(c, c.type == "Ready" && c.status == "True")');
60
+ return {
61
+ ready: helmReleaseReady,
62
+ phase: Cel.expr('dagsterHelmRelease.status.conditions.exists(c, c.type == "Ready" && c.status == "False") ' +
63
+ '? "Failed" : dagsterHelmRelease.status.conditions.exists(c, c.type == "Ready" && ' +
64
+ 'c.status == "True") ? "Ready" : "Installing"'),
65
+ failed: Cel.expr(_dagsterHelmRelease.status.conditions, '.exists(c, c.type == "Ready" && c.status == "False")'),
66
+ version: resolvedVersion,
67
+ components: {
68
+ helmRepository: helmRepositoryReady,
69
+ helmRelease: helmReleaseReady,
70
+ webserver: helmReleaseReady,
71
+ daemon: helmReleaseReady,
72
+ userDeployments: helmReleaseReady,
73
+ },
74
+ };
75
+ });
76
+ function buildHelmValues(spec) {
77
+ return mapDagsterConfigToHelmValues(buildMapperConfig(spec));
78
+ }
79
+ function buildMapperConfig(spec) {
80
+ return Object.assign({ name: spec.name }, spec.namespace !== undefined && { namespace: spec.namespace }, spec.version !== undefined && { version: spec.version }, spec.serviceAccountName !== undefined && { serviceAccountName: spec.serviceAccountName }, spec.nameOverride !== undefined && { nameOverride: spec.nameOverride }, spec.fullnameOverride !== undefined && { fullnameOverride: spec.fullnameOverride }, spec.rbacEnabled !== undefined && { rbacEnabled: spec.rbacEnabled }, spec.imagePullSecrets !== undefined && { imagePullSecrets: spec.imagePullSecrets }, spec.webserver !== undefined && { webserver: spec.webserver }, spec.daemon !== undefined && { daemon: spec.daemon }, spec.userDeployments !== undefined && { userDeployments: spec.userDeployments }, spec.postgresql !== undefined && { postgresql: spec.postgresql }, spec.runLauncher !== undefined && { runLauncher: spec.runLauncher }, spec.scheduler !== undefined && { scheduler: spec.scheduler }, spec.computeLogManager !== undefined && { computeLogManager: spec.computeLogManager }, spec.ingress !== undefined && { ingress: spec.ingress }, spec.flower !== undefined && { flower: spec.flower }, spec.rabbitmq !== undefined && { rabbitmq: spec.rabbitmq }, spec.redis !== undefined && { redis: spec.redis }, spec.global !== undefined && { global: spec.global }, spec.values !== undefined && { values: spec.values });
81
+ }
82
+ //# sourceMappingURL=dagster-bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dagster-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/dagster/compositions/dagster-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Shared Dagster HelmRepository singleton.
3
+ *
4
+ * The official Dagster chart repository is a single cluster-level Flux source —
5
+ * the same URL serves every Dagster instance. Deploying it inline in the
6
+ * `dagsterBootstrap` RGD makes each instance's KRO ApplySet try to *own* the
7
+ * `flux-system/dagster` HelmRepository exclusively, so a second instance of the
8
+ * RGD (e.g. a dev + prod pair) fails to reconcile: "resource belongs to a
9
+ * different ApplySet ... cannot reassign". Modelling the repository as its own
10
+ * composition lets `dagsterBootstrap` consume it via `singleton(...)`, so one
11
+ * shared HelmRepository is owned outside any single instance's ApplySet and
12
+ * every instance's HelmRelease references it by the same `sourceRef`.
13
+ */
14
+ export declare const dagsterHelmRepositoryBootstrap: import("../../../index.js").CallableComposition<{
15
+ name: string;
16
+ namespace: string;
17
+ url: string;
18
+ }, {
19
+ ready: boolean;
20
+ }>;
21
+ //# sourceMappingURL=dagster-helm-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dagster-helm-repository.d.ts","sourceRoot":"","sources":["../../../../src/factories/dagster/compositions/dagster-helm-repository.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,8BAA8B;;;;;;EAsB1C,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { kubernetesComposition } from '../../../core/composition/imperative.js';
2
+ import { Cel } from '../../../core/references/cel.js';
3
+ import { dagsterHelmRepository } from '../resources/helm.js';
4
+ import { DagsterHelmRepositorySingletonSpecSchema, DagsterHelmRepositorySingletonStatusSchema, } from '../types.js';
5
+ /**
6
+ * Shared Dagster HelmRepository singleton.
7
+ *
8
+ * The official Dagster chart repository is a single cluster-level Flux source —
9
+ * the same URL serves every Dagster instance. Deploying it inline in the
10
+ * `dagsterBootstrap` RGD makes each instance's KRO ApplySet try to *own* the
11
+ * `flux-system/dagster` HelmRepository exclusively, so a second instance of the
12
+ * RGD (e.g. a dev + prod pair) fails to reconcile: "resource belongs to a
13
+ * different ApplySet ... cannot reassign". Modelling the repository as its own
14
+ * composition lets `dagsterBootstrap` consume it via `singleton(...)`, so one
15
+ * shared HelmRepository is owned outside any single instance's ApplySet and
16
+ * every instance's HelmRelease references it by the same `sourceRef`.
17
+ */
18
+ export const dagsterHelmRepositoryBootstrap = kubernetesComposition({
19
+ name: 'dagster-helm-repository',
20
+ kind: 'DagsterHelmRepository',
21
+ spec: DagsterHelmRepositorySingletonSpecSchema,
22
+ status: DagsterHelmRepositorySingletonStatusSchema,
23
+ }, (spec) => {
24
+ const repository = dagsterHelmRepository({
25
+ name: spec.name,
26
+ namespace: spec.namespace,
27
+ url: spec.url,
28
+ id: 'repository',
29
+ });
30
+ return {
31
+ ready: Cel.expr(repository.status.conditions, '.exists(c, c.type == "Ready" && c.status == "True")'),
32
+ };
33
+ });
34
+ //# sourceMappingURL=dagster-helm-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dagster-helm-repository.js","sourceRoot":"","sources":["../../../../src/factories/dagster/compositions/dagster-helm-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,wCAAwC,EACxC,0CAA0C,GAC3C,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,qBAAqB,CACjE;IACE,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,wCAAwC;IAC9C,MAAM,EAAE,0CAA0C;CACnD,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,UAAU,GAAG,qBAAqB,CAAC;QACvC,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,3 @@
1
+ export * from './dagster-bootstrap.js';
2
+ export * from './dagster-helm-repository.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/dagster/compositions/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './dagster-bootstrap.js';
2
+ export * from './dagster-helm-repository.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/dagster/compositions/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Dagster Integration for TypeKro.
3
+ *
4
+ * Provides type-safe deployment primitives for Dagster OSS on Kubernetes via
5
+ * the official Dagster Helm chart.
6
+ *
7
+ * ## Resources
8
+ * - `dagsterHelmRepository()` - official Dagster Helm chart repository
9
+ * - `dagsterHelmRelease()` - Dagster deployment via Flux HelmRelease
10
+ *
11
+ * ## Compositions
12
+ * - `dagsterBootstrap` - complete Dagster deployment using Namespace, HelmRepository, and HelmRelease
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { dagsterBootstrap } from 'typekro/dagster';
17
+ *
18
+ * const factory = dagsterBootstrap.factory('kro', {
19
+ * namespace: 'dagster',
20
+ * });
21
+ * ```
22
+ *
23
+ * @see https://dagster.io/
24
+ * @see https://github.com/dagster-io/dagster/tree/master/helm/dagster
25
+ * @module
26
+ */
27
+ export * from './compositions/index.js';
28
+ export * from './resources/index.js';
29
+ export * from './types.js';
30
+ export * from './utils/index.js';
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/dagster/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Dagster Integration for TypeKro.
3
+ *
4
+ * Provides type-safe deployment primitives for Dagster OSS on Kubernetes via
5
+ * the official Dagster Helm chart.
6
+ *
7
+ * ## Resources
8
+ * - `dagsterHelmRepository()` - official Dagster Helm chart repository
9
+ * - `dagsterHelmRelease()` - Dagster deployment via Flux HelmRelease
10
+ *
11
+ * ## Compositions
12
+ * - `dagsterBootstrap` - complete Dagster deployment using Namespace, HelmRepository, and HelmRelease
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { dagsterBootstrap } from 'typekro/dagster';
17
+ *
18
+ * const factory = dagsterBootstrap.factory('kro', {
19
+ * namespace: 'dagster',
20
+ * });
21
+ * ```
22
+ *
23
+ * @see https://dagster.io/
24
+ * @see https://github.com/dagster-io/dagster/tree/master/helm/dagster
25
+ * @module
26
+ */
27
+ export * from './compositions/index.js';
28
+ export * from './resources/index.js';
29
+ export * from './types.js';
30
+ export * from './utils/index.js';
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/dagster/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Dagster Helm resource factories.
3
+ *
4
+ * These wrappers apply official Dagster chart defaults while delegating resource
5
+ * construction and graph-aware Helm values serialization to TypeKro's generic
6
+ * Flux Helm factories.
7
+ */
8
+ import type { Composable, Enhanced } from '../../../core/types/index.js';
9
+ import { type HelmRepositorySpec, type HelmRepositoryStatus } from '../../helm/helm-repository.js';
10
+ import type { HelmReleaseSpec, HelmReleaseStatus } from '../../helm/types.js';
11
+ import type { DagsterHelmReleaseConfig, DagsterHelmRepositoryConfig, DagsterHelmValues } from '../types.js';
12
+ /** Default official Dagster Helm repository URL. */
13
+ export declare const DEFAULT_DAGSTER_REPO_URL = "https://dagster-io.github.io/helm";
14
+ /** Default Flux HelmRepository name for the official Dagster chart. */
15
+ export declare const DEFAULT_DAGSTER_REPO_NAME = "dagster";
16
+ /** Default official Dagster Helm chart version selected by the approved plan. */
17
+ export declare const DEFAULT_DAGSTER_VERSION = "1.13.8";
18
+ /**
19
+ * Create a Flux HelmRepository for the official Dagster Helm chart repository.
20
+ *
21
+ * @param config - Repository configuration with Dagster defaults
22
+ * @returns Enhanced HelmRepository resource
23
+ */
24
+ export declare function dagsterHelmRepository(config: Composable<DagsterHelmRepositoryConfig>): Enhanced<HelmRepositorySpec, HelmRepositoryStatus>;
25
+ /**
26
+ * Create a Flux HelmRelease for Dagster using the official chart defaults.
27
+ *
28
+ * @param config - Release configuration with Dagster defaults
29
+ * @returns Enhanced HelmRelease resource
30
+ */
31
+ export declare function dagsterHelmRelease(config: Composable<DagsterHelmReleaseConfig>): Enhanced<HelmReleaseSpec<DagsterHelmValues>, HelmReleaseStatus>;
32
+ //# sourceMappingURL=helm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/dagster/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,sCAAsC,CAAC;AAE5E,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,YAAY,CAAC;AAEnD,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,WAAW,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,CAAC,2BAA2B,CAAC,GAC9C,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAcpD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,CAAC,wBAAwB,CAAC,GAC3C,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,CAoBjE"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Dagster Helm resource factories.
3
+ *
4
+ * These wrappers apply official Dagster chart defaults while delegating resource
5
+ * construction and graph-aware Helm values serialization to TypeKro's generic
6
+ * Flux Helm factories.
7
+ */
8
+ import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
9
+ import { setMetadataField } from '../../../core/metadata/resource-metadata.js';
10
+ import { createHelmRepositoryReadinessEvaluator, helmRepository, } from '../../helm/helm-repository.js';
11
+ import { helmRelease } from '../../helm/helm-release.js';
12
+ import { createLabeledHelmReleaseEvaluator } from '../../helm/readiness-evaluators.js';
13
+ /** Default official Dagster Helm repository URL. */
14
+ export const DEFAULT_DAGSTER_REPO_URL = 'https://dagster-io.github.io/helm';
15
+ /** Default Flux HelmRepository name for the official Dagster chart. */
16
+ export const DEFAULT_DAGSTER_REPO_NAME = 'dagster';
17
+ /** Default official Dagster Helm chart version selected by the approved plan. */
18
+ export const DEFAULT_DAGSTER_VERSION = '1.13.8';
19
+ /**
20
+ * Create a Flux HelmRepository for the official Dagster Helm chart repository.
21
+ *
22
+ * @param config - Repository configuration with Dagster defaults
23
+ * @returns Enhanced HelmRepository resource
24
+ */
25
+ export function dagsterHelmRepository(config) {
26
+ const repo = helmRepository({
27
+ name: config.name || DEFAULT_DAGSTER_REPO_NAME,
28
+ namespace: config.namespace || DEFAULT_FLUX_NAMESPACE,
29
+ url: config.url || DEFAULT_DAGSTER_REPO_URL,
30
+ interval: config.interval || '5m',
31
+ ...(config.id && { id: config.id }),
32
+ }).withReadinessEvaluator(createHelmRepositoryReadinessEvaluator('Dagster'));
33
+ setMetadataField(repo, 'scopes', ['cluster']);
34
+ return repo;
35
+ }
36
+ /**
37
+ * Create a Flux HelmRelease for Dagster using the official chart defaults.
38
+ *
39
+ * @param config - Release configuration with Dagster defaults
40
+ * @returns Enhanced HelmRelease resource
41
+ */
42
+ export function dagsterHelmRelease(config) {
43
+ return helmRelease({
44
+ name: config.name,
45
+ namespace: config.namespace || config.name,
46
+ chart: {
47
+ repository: DEFAULT_DAGSTER_REPO_URL,
48
+ name: 'dagster',
49
+ version: config.version || DEFAULT_DAGSTER_VERSION,
50
+ },
51
+ sourceRef: {
52
+ name: config.repositoryName || DEFAULT_DAGSTER_REPO_NAME,
53
+ namespace: config.repositoryNamespace || DEFAULT_FLUX_NAMESPACE,
54
+ kind: 'HelmRepository',
55
+ },
56
+ ...(config.values !== undefined && { values: config.values }),
57
+ ...(config.id && { id: config.id }),
58
+ }).withReadinessEvaluator(createLabeledHelmReleaseEvaluator('Dagster'));
59
+ }
60
+ //# sourceMappingURL=helm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/dagster/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAE/E,OAAO,EACL,sCAAsC,EACtC,cAAc,GAGf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAQvF,oDAAoD;AACpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,mCAAmC,CAAC;AAE5E,uEAAuE;AACvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC;AAEnD,iFAAiF;AACjF,MAAM,CAAC,MAAM,uBAAuB,GAAG,QAAQ,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA+C;IAE/C,MAAM,IAAI,GAAG,cAAc,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,yBAAyB;QAC9C,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,sBAAsB;QACrD,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,wBAAwB;QAC3C,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;QACjC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;KACpC,CAAC,CAAC,sBAAsB,CACvB,sCAAsC,CAAC,SAAS,CAAC,CACI,CAAC;IAExD,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA4C;IAE5C,OAAO,WAAW,CAAoB;QACpC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI;QAC1C,KAAK,EAAE;YACL,UAAU,EAAE,wBAAwB;YACpC,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,uBAAuB;SACnD;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,CAAC,cAAc,IAAI,yBAAyB;YACxD,SAAS,EAAE,MAAM,CAAC,mBAAmB,IAAI,sBAAsB;YAC/D,IAAI,EAAE,gBAAgB;SACvB;QACD,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;KACpC,CAAC,CAAC,sBAAsB,CAAC,iCAAiC,CAAC,SAAS,CAAC,CAGrE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './helm.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/dagster/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './helm.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/dagster/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}