typekro 0.24.1 → 0.25.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.
Files changed (170) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/core/composition/context.d.ts +4 -0
  3. package/dist/core/composition/context.d.ts.map +1 -1
  4. package/dist/core/composition/context.js +1 -0
  5. package/dist/core/composition/context.js.map +1 -1
  6. package/dist/core/composition/imperative.d.ts.map +1 -1
  7. package/dist/core/composition/imperative.js +24 -3
  8. package/dist/core/composition/imperative.js.map +1 -1
  9. package/dist/core/deployment/kro-factory.d.ts +2 -0
  10. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  11. package/dist/core/deployment/kro-factory.js +47 -11
  12. package/dist/core/deployment/kro-factory.js.map +1 -1
  13. package/dist/core/deployment/kro-instance-safety.d.ts +24 -0
  14. package/dist/core/deployment/kro-instance-safety.d.ts.map +1 -0
  15. package/dist/core/deployment/kro-instance-safety.js +157 -0
  16. package/dist/core/deployment/kro-instance-safety.js.map +1 -0
  17. package/dist/core/deployment/readiness-waiter.d.ts.map +1 -1
  18. package/dist/core/deployment/readiness-waiter.js +11 -0
  19. package/dist/core/deployment/readiness-waiter.js.map +1 -1
  20. package/dist/core/deployment/schema-cel-evaluator.d.ts +5 -0
  21. package/dist/core/deployment/schema-cel-evaluator.d.ts.map +1 -0
  22. package/dist/core/deployment/schema-cel-evaluator.js +36 -0
  23. package/dist/core/deployment/schema-cel-evaluator.js.map +1 -0
  24. package/dist/core/deployment/singleton-gitops.d.ts.map +1 -1
  25. package/dist/core/deployment/singleton-gitops.js +9 -2
  26. package/dist/core/deployment/singleton-gitops.js.map +1 -1
  27. package/dist/core/serialization/core.d.ts.map +1 -1
  28. package/dist/core/serialization/core.js +17 -4
  29. package/dist/core/serialization/core.js.map +1 -1
  30. package/dist/core/serialization/schema.d.ts.map +1 -1
  31. package/dist/core/serialization/schema.js +19 -4
  32. package/dist/core/serialization/schema.js.map +1 -1
  33. package/dist/core/serialization/yaml.d.ts.map +1 -1
  34. package/dist/core/serialization/yaml.js +15 -1
  35. package/dist/core/serialization/yaml.js.map +1 -1
  36. package/dist/core/types/kubernetes.d.ts +9 -0
  37. package/dist/core/types/kubernetes.d.ts.map +1 -1
  38. package/dist/core/types/serialization.d.ts +9 -0
  39. package/dist/core/types/serialization.d.ts.map +1 -1
  40. package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.d.ts +1 -1
  41. package/dist/factories/clickhouse/compositions/clickhouse-operator-bootstrap.js +1 -1
  42. package/dist/factories/clickhouse/index.d.ts +4 -1
  43. package/dist/factories/clickhouse/index.d.ts.map +1 -1
  44. package/dist/factories/clickhouse/index.js +4 -1
  45. package/dist/factories/clickhouse/index.js.map +1 -1
  46. package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts +1 -1
  47. package/dist/factories/clickstack/compositions/clickstack-bootstrap.js +1 -1
  48. package/dist/factories/clickstack/compositions/k8s-telemetry.d.ts +1 -1
  49. package/dist/factories/clickstack/compositions/k8s-telemetry.js +1 -1
  50. package/dist/factories/clickstack/index.d.ts +1 -1
  51. package/dist/factories/clickstack/index.js +1 -1
  52. package/dist/factories/cnpg/compositions/cnpg-bootstrap.d.ts +1 -1
  53. package/dist/factories/cnpg/compositions/cnpg-bootstrap.js +1 -1
  54. package/dist/factories/cnpg/index.d.ts +1 -1
  55. package/dist/factories/cnpg/index.js +1 -1
  56. package/dist/factories/dagster/index.d.ts +1 -1
  57. package/dist/factories/dagster/index.js +1 -1
  58. package/dist/factories/index.d.ts +1 -0
  59. package/dist/factories/index.d.ts.map +1 -1
  60. package/dist/factories/index.js +4 -0
  61. package/dist/factories/index.js.map +1 -1
  62. package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts +1 -1
  63. package/dist/factories/inngest/compositions/inngest-bootstrap.js +1 -1
  64. package/dist/factories/inngest/index.d.ts +1 -1
  65. package/dist/factories/inngest/index.js +1 -1
  66. package/dist/factories/kro/resource-graph-definition.d.ts.map +1 -1
  67. package/dist/factories/kro/resource-graph-definition.js +17 -1
  68. package/dist/factories/kro/resource-graph-definition.js.map +1 -1
  69. package/dist/factories/ory/compositions/ory-identity-stack.d.ts +1 -1
  70. package/dist/factories/ory/types.d.ts +2 -2
  71. package/dist/factories/rook/compositions/index.d.ts +4 -0
  72. package/dist/factories/rook/compositions/index.d.ts.map +1 -0
  73. package/dist/factories/rook/compositions/index.js +4 -0
  74. package/dist/factories/rook/compositions/index.js.map +1 -0
  75. package/dist/factories/rook/compositions/object-storage-claim.d.ts +32 -0
  76. package/dist/factories/rook/compositions/object-storage-claim.d.ts.map +1 -0
  77. package/dist/factories/rook/compositions/object-storage-claim.js +63 -0
  78. package/dist/factories/rook/compositions/object-storage-claim.js.map +1 -0
  79. package/dist/factories/rook/compositions/rook-ceph-helm-repository.d.ts +12 -0
  80. package/dist/factories/rook/compositions/rook-ceph-helm-repository.d.ts.map +1 -0
  81. package/dist/factories/rook/compositions/rook-ceph-helm-repository.js +25 -0
  82. package/dist/factories/rook/compositions/rook-ceph-helm-repository.js.map +1 -0
  83. package/dist/factories/rook/compositions/rook-ceph-operator-bootstrap.d.ts +2 -0
  84. package/dist/factories/rook/compositions/rook-ceph-operator-bootstrap.d.ts.map +1 -0
  85. package/dist/factories/rook/compositions/rook-ceph-operator-bootstrap.js +2 -0
  86. package/dist/factories/rook/compositions/rook-ceph-operator-bootstrap.js.map +1 -0
  87. package/dist/factories/rook/compositions/rook-ceph-operator-installation.d.ts +67 -0
  88. package/dist/factories/rook/compositions/rook-ceph-operator-installation.d.ts.map +1 -0
  89. package/dist/factories/rook/compositions/rook-ceph-operator-installation.js +71 -0
  90. package/dist/factories/rook/compositions/rook-ceph-operator-installation.js.map +1 -0
  91. package/dist/factories/rook/index.d.ts +15 -0
  92. package/dist/factories/rook/index.d.ts.map +1 -0
  93. package/dist/factories/rook/index.js +15 -0
  94. package/dist/factories/rook/index.js.map +1 -0
  95. package/dist/factories/rook/resources/bucket-storage-class.d.ts +12 -0
  96. package/dist/factories/rook/resources/bucket-storage-class.d.ts.map +1 -0
  97. package/dist/factories/rook/resources/bucket-storage-class.js +29 -0
  98. package/dist/factories/rook/resources/bucket-storage-class.js.map +1 -0
  99. package/dist/factories/rook/resources/ceph-object-store-user.d.ts +14 -0
  100. package/dist/factories/rook/resources/ceph-object-store-user.d.ts.map +1 -0
  101. package/dist/factories/rook/resources/ceph-object-store-user.js +42 -0
  102. package/dist/factories/rook/resources/ceph-object-store-user.js.map +1 -0
  103. package/dist/factories/rook/resources/ceph-object-store.d.ts +27 -0
  104. package/dist/factories/rook/resources/ceph-object-store.d.ts.map +1 -0
  105. package/dist/factories/rook/resources/ceph-object-store.js +56 -0
  106. package/dist/factories/rook/resources/ceph-object-store.js.map +1 -0
  107. package/dist/factories/rook/resources/helm.d.ts +18 -0
  108. package/dist/factories/rook/resources/helm.d.ts.map +1 -0
  109. package/dist/factories/rook/resources/helm.js +45 -0
  110. package/dist/factories/rook/resources/helm.js.map +1 -0
  111. package/dist/factories/rook/resources/index.d.ts +6 -0
  112. package/dist/factories/rook/resources/index.d.ts.map +1 -0
  113. package/dist/factories/rook/resources/index.js +6 -0
  114. package/dist/factories/rook/resources/index.js.map +1 -0
  115. package/dist/factories/rook/resources/object-bucket-claim.d.ts +15 -0
  116. package/dist/factories/rook/resources/object-bucket-claim.d.ts.map +1 -0
  117. package/dist/factories/rook/resources/object-bucket-claim.js +52 -0
  118. package/dist/factories/rook/resources/object-bucket-claim.js.map +1 -0
  119. package/dist/factories/rook/types.d.ts +307 -0
  120. package/dist/factories/rook/types.d.ts.map +1 -0
  121. package/dist/factories/rook/types.js +239 -0
  122. package/dist/factories/rook/types.js.map +1 -0
  123. package/dist/factories/rook/utils/helm-values-mapper.d.ts +33 -0
  124. package/dist/factories/rook/utils/helm-values-mapper.d.ts.map +1 -0
  125. package/dist/factories/rook/utils/helm-values-mapper.js +60 -0
  126. package/dist/factories/rook/utils/helm-values-mapper.js.map +1 -0
  127. package/dist/factories/rook/utils/index.d.ts +2 -0
  128. package/dist/factories/rook/utils/index.d.ts.map +1 -0
  129. package/dist/factories/rook/utils/index.js +2 -0
  130. package/dist/factories/rook/utils/index.js.map +1 -0
  131. package/dist/factories/valkey/compositions/index.d.ts +2 -1
  132. package/dist/factories/valkey/compositions/index.d.ts.map +1 -1
  133. package/dist/factories/valkey/compositions/index.js +2 -1
  134. package/dist/factories/valkey/compositions/index.js.map +1 -1
  135. package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts +21 -2
  136. package/dist/factories/valkey/compositions/valkey-bootstrap.d.ts.map +1 -1
  137. package/dist/factories/valkey/compositions/valkey-bootstrap.js +26 -136
  138. package/dist/factories/valkey/compositions/valkey-bootstrap.js.map +1 -1
  139. package/dist/factories/valkey/compositions/valkey-helm-repository.d.ts +16 -0
  140. package/dist/factories/valkey/compositions/valkey-helm-repository.d.ts.map +1 -0
  141. package/dist/factories/valkey/compositions/valkey-helm-repository.js +29 -0
  142. package/dist/factories/valkey/compositions/valkey-helm-repository.js.map +1 -0
  143. package/dist/factories/valkey/index.d.ts +6 -3
  144. package/dist/factories/valkey/index.d.ts.map +1 -1
  145. package/dist/factories/valkey/index.js +6 -3
  146. package/dist/factories/valkey/index.js.map +1 -1
  147. package/dist/factories/valkey/resources/helm.d.ts.map +1 -1
  148. package/dist/factories/valkey/resources/helm.js +13 -11
  149. package/dist/factories/valkey/resources/helm.js.map +1 -1
  150. package/dist/factories/valkey/types.d.ts +29 -16
  151. package/dist/factories/valkey/types.d.ts.map +1 -1
  152. package/dist/factories/valkey/types.js +34 -22
  153. package/dist/factories/valkey/types.js.map +1 -1
  154. package/dist/factories/valkey/utils/helm-values-mapper.d.ts +6 -1
  155. package/dist/factories/valkey/utils/helm-values-mapper.d.ts.map +1 -1
  156. package/dist/factories/valkey/utils/helm-values-mapper.js +52 -19
  157. package/dist/factories/valkey/utils/helm-values-mapper.js.map +1 -1
  158. package/dist/factories/webapp/compositions/index.d.ts +1 -1
  159. package/dist/factories/webapp/compositions/index.d.ts.map +1 -1
  160. package/dist/factories/webapp/compositions/index.js +1 -1
  161. package/dist/factories/webapp/compositions/index.js.map +1 -1
  162. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts +9 -13
  163. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -1
  164. package/dist/factories/webapp/compositions/web-app-with-processing.js +290 -278
  165. package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -1
  166. package/dist/factories/webapp/types.d.ts +26 -7
  167. package/dist/factories/webapp/types.d.ts.map +1 -1
  168. package/dist/factories/webapp/types.js +0 -9
  169. package/dist/factories/webapp/types.js.map +1 -1
  170. package/package.json +5 -1
@@ -0,0 +1,2 @@
1
+ export * from './helm-values-mapper.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/rook/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './helm-values-mapper.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/rook/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -1,2 +1,3 @@
1
- export { valkeyBootstrap } from './valkey-bootstrap.js';
1
+ export { valkeyBootstrap, valkeyOperatorInstallation } from './valkey-bootstrap.js';
2
+ export { valkeyHelmRepositoryBootstrap } from './valkey-helm-repository.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,2 +1,3 @@
1
- export { valkeyBootstrap } from './valkey-bootstrap.js';
1
+ export { valkeyBootstrap, valkeyOperatorInstallation } from './valkey-bootstrap.js';
2
+ export { valkeyHelmRepositoryBootstrap } from './valkey-helm-repository.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC"}
@@ -17,7 +17,7 @@
17
17
  * // 'kro' = KRO mode (continuous reconciliation via ResourceGraphDefinition)
18
18
  * // 'direct' = Direct mode (immediate apply, no KRO controller needed)
19
19
  * const factory = valkeyBootstrap.factory('kro', {
20
- * namespace: 'valkey-operator-system',
20
+ * namespace: 'typekro-system', // KRO instance/control-plane namespace
21
21
  * waitForReady: true,
22
22
  * });
23
23
  *
@@ -31,8 +31,27 @@ export declare const valkeyBootstrap: import("../../../index.js").CallableCompos
31
31
  name: string;
32
32
  namespace?: string;
33
33
  version?: string;
34
+ repositoryName?: string;
35
+ repositoryNamespace?: string;
36
+ repositoryUrl?: string;
37
+ values?: Record<string, unknown>;
38
+ customValues?: Record<string, unknown>;
39
+ }, {
40
+ phase: "Ready" | "Installing";
41
+ ready: boolean;
42
+ failed: boolean;
43
+ version?: string;
44
+ }>;
45
+ /** Explicit lifecycle name for code that wants to emphasize ownership. */
46
+ export declare const valkeyOperatorInstallation: import("../../../index.js").CallableComposition<{
47
+ name: string;
48
+ namespace?: string;
49
+ version?: string;
50
+ repositoryName?: string;
51
+ repositoryNamespace?: string;
52
+ repositoryUrl?: string;
53
+ values?: Record<string, unknown>;
34
54
  customValues?: Record<string, unknown>;
35
- shared?: boolean;
36
55
  }, {
37
56
  phase: "Ready" | "Installing";
38
57
  ready: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"valkey-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/valkey-bootstrap.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;EAgM3B,CAAC"}
1
+ {"version":3,"file":"valkey-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/valkey-bootstrap.ts"],"names":[],"mappings":"AA4BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;EAgF3B,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;EAAkB,CAAC"}
@@ -1,21 +1,18 @@
1
1
  import { kubernetesComposition } from '../../../core/composition/imperative.js';
2
- import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
3
- import { setMetadataField } from '../../../core/metadata/index.js';
4
2
  import { Cel } from '../../../core/references/cel.js';
5
3
  import { namespace } from '../../kubernetes/core/namespace.js';
6
- import { clusterRole } from '../../kubernetes/rbac/cluster-role.js';
7
- import { clusterRoleBinding } from '../../kubernetes/rbac/cluster-role-binding.js';
8
- import { DEFAULT_VALKEY_REPO_NAME, DEFAULT_VALKEY_VERSION, valkeyHelmRelease, valkeyHelmRepository, } from '../resources/helm.js';
4
+ import { DEFAULT_VALKEY_REPO_NAME, DEFAULT_VALKEY_REPO_URL, DEFAULT_VALKEY_VERSION, valkeyHelmRelease, valkeyHelmRepository, } from '../resources/helm.js';
9
5
  import { ValkeyBootstrapConfigSchema, ValkeyBootstrapStatusSchema, } from '../types.js';
10
6
  import { mapValkeyConfigToHelmValues } from '../utils/helm-values-mapper.js';
11
7
  /**
12
- * Strips the '-chart' suffix from a Hyperspike version tag for labeling.
13
- * The Helm chart version (e.g. 'v0.0.61-chart') differs from the app version
14
- * ('v0.0.61'). Labels should use the app version per k8s well-known labels spec.
8
+ * Strips the '-chart' suffix from the verified built-in Hyperspike version.
9
+ * Runtime schema references cannot be normalized synchronously, so explicit
10
+ * version overrides are preserved as supplied.
15
11
  */
16
12
  function stripChartSuffix(version) {
17
13
  return version.replace(/-chart$/, '');
18
14
  }
15
+ const DEFAULT_VALKEY_OPERATOR_NAMESPACE = 'valkey-operator-system';
19
16
  /**
20
17
  * Hyperspike Valkey Operator Bootstrap Composition
21
18
  *
@@ -35,7 +32,7 @@ function stripChartSuffix(version) {
35
32
  * // 'kro' = KRO mode (continuous reconciliation via ResourceGraphDefinition)
36
33
  * // 'direct' = Direct mode (immediate apply, no KRO controller needed)
37
34
  * const factory = valkeyBootstrap.factory('kro', {
38
- * namespace: 'valkey-operator-system',
35
+ * namespace: 'typekro-system', // KRO instance/control-plane namespace
39
36
  * waitForReady: true,
40
37
  * });
41
38
  *
@@ -51,17 +48,17 @@ export const valkeyBootstrap = kubernetesComposition({
51
48
  spec: ValkeyBootstrapConfigSchema,
52
49
  status: ValkeyBootstrapStatusSchema,
53
50
  }, (spec) => {
54
- const resolvedNamespace = spec.namespace || 'valkey-operator-system';
55
- const resolvedVersion = spec.version || DEFAULT_VALKEY_VERSION;
56
- const appVersion = stripChartSuffix(resolvedVersion);
57
- // Default to shared-lifecycle so multiple consumers (e.g., many
58
- // `webAppWithProcessing` deployments) converge on a single operator
59
- // install. Users can opt out by passing `shared: false`.
60
- const isShared = spec.shared !== false;
51
+ const resolvedNamespace = spec.namespace ?? DEFAULT_VALKEY_OPERATOR_NAMESPACE;
52
+ const resolvedVersion = spec.version ?? DEFAULT_VALKEY_VERSION;
53
+ // A schema-proxy string cannot be normalized synchronously. Keep the
54
+ // upstream chart tag for overrides; normalize the verified built-in default.
55
+ const reportedVersion = spec.version ? spec.version : stripChartSuffix(DEFAULT_VALKEY_VERSION);
56
+ const repositoryName = spec.repositoryName ?? DEFAULT_VALKEY_REPO_NAME;
57
+ const repositoryNamespace = spec.repositoryNamespace ?? resolvedNamespace;
58
+ const repositoryUrl = spec.repositoryUrl ?? DEFAULT_VALKEY_REPO_URL;
61
59
  const helmValues = mapValkeyConfigToHelmValues({
62
- ...spec,
63
- namespace: resolvedNamespace,
64
- version: resolvedVersion,
60
+ ...(spec.customValues !== undefined && { customValues: spec.customValues }),
61
+ ...(spec.values !== undefined && { values: spec.values }),
65
62
  });
66
63
  // Resources are _-prefixed because they're registered via side effects in the
67
64
  // kubernetesComposition callback — the composition captures them automatically.
@@ -72,18 +69,16 @@ export const valkeyBootstrap = kubernetesComposition({
72
69
  labels: {
73
70
  'app.kubernetes.io/name': 'valkey-operator',
74
71
  'app.kubernetes.io/instance': spec.name,
75
- 'app.kubernetes.io/version': appVersion,
72
+ 'app.kubernetes.io/version': reportedVersion,
76
73
  'app.kubernetes.io/managed-by': 'typekro',
77
74
  },
78
75
  },
79
76
  id: 'valkeyNamespace',
80
77
  });
81
- // OCI HelmRepositories don't have status in Flux, which can cause the deploy
82
- // engine to block waiting for readiness. Create both resources but don't depend
83
- // on the repository readiness — Flux handles the OCI → chart resolution internally.
84
78
  const _helmRepository = valkeyHelmRepository({
85
- name: DEFAULT_VALKEY_REPO_NAME,
86
- namespace: DEFAULT_FLUX_NAMESPACE,
79
+ name: repositoryName,
80
+ namespace: repositoryNamespace,
81
+ url: repositoryUrl,
87
82
  id: 'valkeyHelmRepository',
88
83
  });
89
84
  const _helmRelease = valkeyHelmRelease({
@@ -91,118 +86,11 @@ export const valkeyBootstrap = kubernetesComposition({
91
86
  namespace: resolvedNamespace,
92
87
  version: resolvedVersion,
93
88
  values: helmValues,
94
- repositoryName: DEFAULT_VALKEY_REPO_NAME,
89
+ repositoryName,
90
+ repositoryNamespace,
91
+ repositoryUrl,
95
92
  id: 'valkeyHelmRelease',
96
93
  });
97
- const _managerRole = clusterRole({
98
- metadata: {
99
- name: 'valkey-operator-manager-role',
100
- labels: {
101
- 'app.kubernetes.io/name': 'valkey-operator',
102
- 'app.kubernetes.io/instance': spec.name,
103
- 'app.kubernetes.io/version': appVersion,
104
- 'app.kubernetes.io/managed-by': 'typekro',
105
- },
106
- },
107
- rules: [
108
- {
109
- apiGroups: [''],
110
- resources: ['configmaps', 'secrets', 'serviceaccounts', 'services'],
111
- verbs: ['create', 'delete', 'get', 'list', 'patch', 'update', 'watch'],
112
- },
113
- {
114
- apiGroups: [''],
115
- resources: ['pods'],
116
- verbs: ['get', 'list', 'watch'],
117
- },
118
- {
119
- apiGroups: [''],
120
- resources: ['events'],
121
- verbs: ['create', 'patch'],
122
- },
123
- {
124
- apiGroups: ['apps'],
125
- resources: ['deployments', 'statefulsets'],
126
- verbs: ['create', 'delete', 'get', 'list', 'patch', 'update', 'watch'],
127
- },
128
- {
129
- apiGroups: ['policy'],
130
- resources: ['poddisruptionbudgets'],
131
- verbs: ['create', 'delete', 'get', 'list', 'patch', 'update', 'watch'],
132
- },
133
- {
134
- apiGroups: ['hyperspike.io'],
135
- resources: ['valkeys'],
136
- verbs: ['create', 'delete', 'get', 'list', 'patch', 'update', 'watch'],
137
- },
138
- {
139
- apiGroups: ['hyperspike.io'],
140
- resources: ['valkeys/status'],
141
- verbs: ['get', 'patch', 'update'],
142
- },
143
- {
144
- apiGroups: ['hyperspike.io'],
145
- resources: ['valkeys/finalizers'],
146
- verbs: ['update'],
147
- },
148
- {
149
- apiGroups: ['storage.k8s.io'],
150
- resources: ['storageclasses'],
151
- verbs: ['get', 'list', 'watch'],
152
- },
153
- {
154
- apiGroups: ['cert-manager.io'],
155
- resources: ['certificates'],
156
- verbs: ['create', 'delete', 'get', 'list', 'patch', 'update', 'watch'],
157
- },
158
- {
159
- apiGroups: ['cert-manager.io'],
160
- resources: ['clusterissuers', 'issuers'],
161
- verbs: ['get', 'list', 'watch'],
162
- },
163
- {
164
- apiGroups: ['monitoring.coreos.com'],
165
- resources: ['servicemonitors'],
166
- verbs: ['create', 'delete', 'get', 'list', 'patch', 'update', 'watch'],
167
- },
168
- ],
169
- id: 'valkeyManagerRole',
170
- });
171
- const _managerRoleBinding = clusterRoleBinding({
172
- metadata: {
173
- name: `${spec.name}-${resolvedNamespace}-manager-rolebinding`,
174
- labels: {
175
- 'app.kubernetes.io/name': 'valkey-operator',
176
- 'app.kubernetes.io/instance': spec.name,
177
- 'app.kubernetes.io/version': appVersion,
178
- 'app.kubernetes.io/managed-by': 'typekro',
179
- },
180
- },
181
- roleRef: {
182
- apiGroup: 'rbac.authorization.k8s.io',
183
- kind: 'ClusterRole',
184
- name: 'valkey-operator-manager-role',
185
- },
186
- subjects: [
187
- {
188
- kind: 'ServiceAccount',
189
- name: 'valkey-operator-controller-manager',
190
- namespace: resolvedNamespace,
191
- },
192
- ],
193
- id: 'valkeyManagerRoleBinding',
194
- });
195
- // Tag all resources with 'cluster' scope so factory-level
196
- // deleteInstance leaves the operator install intact. Callers can
197
- // opt in to tearing down shared infra with
198
- // `deleteInstance(name, { scopes: ['cluster'] })`.
199
- if (isShared) {
200
- setMetadataField(_valkeyNamespace, 'scopes', ['cluster']);
201
- setMetadataField(_helmRepository, 'scopes', ['cluster']);
202
- setMetadataField(_helmRelease, 'scopes', ['cluster']);
203
- setMetadataField(_managerRole, 'scopes', ['cluster']);
204
- setMetadataField(_managerRoleBinding, 'scopes', ['cluster']);
205
- }
206
94
  // Status derived from HelmRelease conditions.
207
95
  return {
208
96
  ready: Cel.expr(_helmRelease.status.conditions, '.exists(c, c.type == "Ready" && c.status == "True")'),
@@ -215,7 +103,9 @@ export const valkeyBootstrap = kubernetesComposition({
215
103
  // Static version from deploy-time config, not derived from live HelmRelease
216
104
  // status. If the operator is upgraded out-of-band (e.g. Flux automation),
217
105
  // this value will not reflect the running version.
218
- version: appVersion,
106
+ version: reportedVersion,
219
107
  };
220
108
  });
109
+ /** Explicit lifecycle name for code that wants to emphasize ownership. */
110
+ export const valkeyOperatorInstallation = valkeyBootstrap;
221
111
  //# sourceMappingURL=valkey-bootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"valkey-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/valkey-bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"valkey-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/valkey-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAE7E;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,iCAAiC,GAAG,wBAAwB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAClD;IACE,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,2BAA2B;IACjC,MAAM,EAAE,2BAA2B;CACpC,EACD,CAAC,IAA2B,EAAE,EAAE;IAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,IAAI,iCAAiC,CAAC;IAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,IAAI,sBAAsB,CAAC;IAC/D,qEAAqE;IACrE,6EAA6E;IAC7E,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IAC/F,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,wBAAwB,CAAC;IACvE,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,IAAI,iBAAiB,CAAC;IAC1E,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,uBAAuB,CAAC;IAEpE,MAAM,UAAU,GAAG,2BAA2B,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3E,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;KAC1D,CAAC,CAAC;IAEH,8EAA8E;IAC9E,gFAAgF;IAChF,0DAA0D;IAC1D,MAAM,gBAAgB,GAAG,SAAS,CAAC;QACjC,QAAQ,EAAE;YACR,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE;gBACN,wBAAwB,EAAE,iBAAiB;gBAC3C,4BAA4B,EAAE,IAAI,CAAC,IAAI;gBACvC,2BAA2B,EAAE,eAAe;gBAC5C,8BAA8B,EAAE,SAAS;aAC1C;SACF;QACD,EAAE,EAAE,iBAAiB;KACtB,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,oBAAoB,CAAC;QAC3C,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,mBAAmB;QAC9B,GAAG,EAAE,aAAa;QAClB,EAAE,EAAE,sBAAsB;KAC3B,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,iBAAiB,CAAC;QACrC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,iBAAiB;QAC5B,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,UAAU;QAClB,cAAc;QACd,mBAAmB;QACnB,aAAa;QACb,EAAE,EAAE,mBAAmB;KACxB,CAAC,CAAC;IAEH,8CAA8C;IAC9C,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,IAAI,CACb,YAAY,CAAC,MAAM,CAAC,UAAU,EAC9B,qDAAqD,CACtD;QACD,yEAAyE;QACzE,kEAAkE;QAClE,KAAK,EAAE,GAAG,CAAC,IAAI,CACb,YAAY,CAAC,MAAM,CAAC,UAAU,EAC9B,8EAA8E,CAC/E;QACD,8EAA8E;QAC9E,+EAA+E;QAC/E,MAAM,EAAE,GAAG,CAAC,IAAI,CACd,YAAY,CAAC,MAAM,CAAC,UAAU,EAC9B,sDAAsD,CACvD;QACD,4EAA4E;QAC5E,0EAA0E;QAC1E,mDAAmD;QACnD,OAAO,EAAE,eAAe;KACzB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,eAAe,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Shared owner for the cluster-wide Hyperspike OCI HelmRepository.
3
+ *
4
+ * Keeping this resource outside each operator instance's ApplySet prevents
5
+ * cross-instance ownership conflicts and preserves its `flux-system` namespace
6
+ * in direct factory YAML. OCI HelmRepositories do not consistently publish a
7
+ * Ready condition, so existence is represented by its positive generation.
8
+ */
9
+ export declare const valkeyHelmRepositoryBootstrap: import("../../../index.js").CallableComposition<{
10
+ name: string;
11
+ namespace: string;
12
+ url: string;
13
+ }, {
14
+ ready: boolean;
15
+ }>;
16
+ //# sourceMappingURL=valkey-helm-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valkey-helm-repository.d.ts","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/valkey-helm-repository.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B;;;;;;EAmBzC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { kubernetesComposition } from '../../../core/composition/imperative.js';
2
+ import { Cel } from '../../../core/references/cel.js';
3
+ import { valkeyHelmRepository } from '../resources/helm.js';
4
+ import { ValkeyHelmRepositorySingletonSpecSchema, ValkeyHelmRepositorySingletonStatusSchema, } from '../types.js';
5
+ /**
6
+ * Shared owner for the cluster-wide Hyperspike OCI HelmRepository.
7
+ *
8
+ * Keeping this resource outside each operator instance's ApplySet prevents
9
+ * cross-instance ownership conflicts and preserves its `flux-system` namespace
10
+ * in direct factory YAML. OCI HelmRepositories do not consistently publish a
11
+ * Ready condition, so existence is represented by its positive generation.
12
+ */
13
+ export const valkeyHelmRepositoryBootstrap = kubernetesComposition({
14
+ name: 'valkey-helm-repository',
15
+ kind: 'ValkeyHelmRepository',
16
+ spec: ValkeyHelmRepositorySingletonSpecSchema,
17
+ status: ValkeyHelmRepositorySingletonStatusSchema,
18
+ }, (spec) => {
19
+ const repository = valkeyHelmRepository({
20
+ name: spec.name,
21
+ namespace: spec.namespace,
22
+ url: spec.url,
23
+ id: 'repository',
24
+ });
25
+ return {
26
+ ready: Cel.expr(repository.metadata.generation, ' > 0'),
27
+ };
28
+ });
29
+ //# sourceMappingURL=valkey-helm-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valkey-helm-repository.js","sourceRoot":"","sources":["../../../../src/factories/valkey/compositions/valkey-helm-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACL,uCAAuC,EACvC,yCAAyC,GAC1C,MAAM,aAAa,CAAC;AAErB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAChE;IACE,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,uCAAuC;IAC7C,MAAM,EAAE,yCAAyC;CAClD,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,UAAU,GAAG,oBAAoB,CAAC;QACtC,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,CAAU,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KACjE,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -8,9 +8,10 @@
8
8
  * - `valkey()` — Valkey cluster (sharded with optional replicas)
9
9
  * - `valkeyHelmRepository()` — Helm chart repository (OCI)
10
10
  * - `valkeyHelmRelease()` — Operator installation via Helm
11
+ * - `valkeyHelmRepositoryBootstrap` — Low-level shared OCI repository owner
11
12
  *
12
13
  * ## Compositions
13
- * - `valkeyBootstrap` — Complete operator deployment (namespace + Helm repo + release)
14
+ * - `valkeyBootstrap` / `valkeyOperatorInstallation` — Complete, explicitly owned operator deployment
14
15
  *
15
16
  * @example
16
17
  * ```typescript
@@ -18,7 +19,7 @@
18
19
  *
19
20
  * // Install the operator
20
21
  * const operatorFactory = valkeyBootstrap.factory('kro', {
21
- * namespace: 'valkey-operator-system',
22
+ * namespace: 'typekro-system', // KRO instance/control-plane namespace
22
23
  * });
23
24
  * await operatorFactory.deploy({
24
25
  * name: 'valkey-operator',
@@ -33,7 +34,9 @@
33
34
  * shards: 3,
34
35
  * replicas: 1,
35
36
  * storage: {
36
- * resources: { requests: { storage: '10Gi' } },
37
+ * spec: {
38
+ * resources: { requests: { storage: '10Gi' } },
39
+ * },
37
40
  * },
38
41
  * },
39
42
  * id: 'appCache',
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/valkey/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/valkey/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -8,9 +8,10 @@
8
8
  * - `valkey()` — Valkey cluster (sharded with optional replicas)
9
9
  * - `valkeyHelmRepository()` — Helm chart repository (OCI)
10
10
  * - `valkeyHelmRelease()` — Operator installation via Helm
11
+ * - `valkeyHelmRepositoryBootstrap` — Low-level shared OCI repository owner
11
12
  *
12
13
  * ## Compositions
13
- * - `valkeyBootstrap` — Complete operator deployment (namespace + Helm repo + release)
14
+ * - `valkeyBootstrap` / `valkeyOperatorInstallation` — Complete, explicitly owned operator deployment
14
15
  *
15
16
  * @example
16
17
  * ```typescript
@@ -18,7 +19,7 @@
18
19
  *
19
20
  * // Install the operator
20
21
  * const operatorFactory = valkeyBootstrap.factory('kro', {
21
- * namespace: 'valkey-operator-system',
22
+ * namespace: 'typekro-system', // KRO instance/control-plane namespace
22
23
  * });
23
24
  * await operatorFactory.deploy({
24
25
  * name: 'valkey-operator',
@@ -33,7 +34,9 @@
33
34
  * shards: 3,
34
35
  * replicas: 1,
35
36
  * storage: {
36
- * resources: { requests: { storage: '10Gi' } },
37
+ * spec: {
38
+ * resources: { requests: { storage: '10Gi' } },
39
+ * },
37
40
  * },
38
41
  * },
39
42
  * id: 'appCache',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/valkey/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/valkey/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/valkey/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEvF,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AAEtD,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,CAAC,0BAA0B,CAAC,GAC7C,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAWpD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,CAAC,uBAAuB,CAAC,GAC1C,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAuB9C"}
1
+ {"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/valkey/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEvF,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AAEtD,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,CAAC,0BAA0B,CAAC,GAC7C,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAcpD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,CAAC,uBAAuB,CAAC,GAC1C,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAyB9C"}
@@ -34,14 +34,15 @@ export const DEFAULT_VALKEY_REPO_NAME = 'valkey-operator-repo';
34
34
  * ```
35
35
  */
36
36
  export function valkeyHelmRepository(config) {
37
- return helmRepository({
38
- name: config.name || DEFAULT_VALKEY_REPO_NAME,
39
- namespace: config.namespace || DEFAULT_FLUX_NAMESPACE,
40
- url: config.url || DEFAULT_VALKEY_REPO_URL,
37
+ const repo = helmRepository({
38
+ name: config.name ?? DEFAULT_VALKEY_REPO_NAME,
39
+ namespace: config.namespace ?? DEFAULT_FLUX_NAMESPACE,
40
+ url: config.url ?? DEFAULT_VALKEY_REPO_URL,
41
41
  type: 'oci',
42
- interval: config.interval || '5m',
42
+ interval: config.interval ?? '5m',
43
43
  ...(config.id && { id: config.id }),
44
44
  }).withReadinessEvaluator(createHelmRepositoryReadinessEvaluator('Valkey'));
45
+ return repo;
45
46
  }
46
47
  /**
47
48
  * Create a HelmRelease for the Hyperspike Valkey operator.
@@ -64,18 +65,19 @@ export function valkeyHelmRelease(config) {
64
65
  // actually uses to resolve the chart. Both are required by the helmRelease factory.
65
66
  return helmRelease({
66
67
  name: config.name,
67
- namespace: config.namespace || 'valkey-operator-system',
68
+ namespace: config.namespace ?? 'valkey-operator-system',
68
69
  chart: {
69
- repository: DEFAULT_VALKEY_REPO_URL,
70
+ repository: config.repositoryUrl ?? DEFAULT_VALKEY_REPO_URL,
70
71
  name: 'valkey-operator',
71
- version: config.version || DEFAULT_VALKEY_VERSION,
72
+ version: config.version ?? DEFAULT_VALKEY_VERSION,
72
73
  },
73
74
  sourceRef: {
74
- name: config.repositoryName || DEFAULT_VALKEY_REPO_NAME,
75
- namespace: DEFAULT_FLUX_NAMESPACE,
75
+ name: config.repositoryName ?? DEFAULT_VALKEY_REPO_NAME,
76
+ namespace: config.repositoryNamespace ?? DEFAULT_FLUX_NAMESPACE,
76
77
  kind: 'HelmRepository',
77
78
  },
78
- values: config.values || {},
79
+ driftDetection: { mode: 'enabled' },
80
+ values: config.values ?? {},
79
81
  ...(config.id && { id: config.id }),
80
82
  }).withReadinessEvaluator(createLabeledHelmReleaseEvaluator('Valkey'));
81
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/valkey/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EACL,sCAAsC,EACtC,cAAc,GAGf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAElE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAEtD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAA8C;IAE9C,OAAO,cAAc,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,wBAAwB;QAC7C,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,sBAAsB;QACrD,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,uBAAuB;QAC1C,IAAI,EAAE,KAAK;QACX,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,QAAQ,CAAC,CACK,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA2C;IAE3C,sEAAsE;IAEtE,4EAA4E;IAC5E,oFAAoF;IACpF,OAAO,WAAW,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,wBAAwB;QACvD,KAAK,EAAE;YACL,UAAU,EAAE,uBAAuB;YACnC,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,sBAAsB;SAClD;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,CAAC,cAAc,IAAI,wBAAwB;YACvD,SAAS,EAAE,sBAAsB;YACjC,IAAI,EAAE,gBAAgB;SACvB;QACD,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;KACpC,CAAC,CAAC,sBAAsB,CACvB,iCAAiC,CAAC,QAAQ,CAAC,CACI,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/valkey/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EACL,sCAAsC,EACtC,cAAc,GAGf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAElE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,eAAe,CAAC;AAEtD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAA8C;IAE9C,MAAM,IAAI,GAAG,cAAc,CAAC;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,wBAAwB;QAC7C,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,sBAAsB;QACrD,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,uBAAuB;QAC1C,IAAI,EAAE,KAAK;QACX,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,CAAC,sCAAsC,CAAC,QAAQ,CAAC,CAGzE,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA2C;IAE3C,sEAAsE;IAEtE,4EAA4E;IAC5E,oFAAoF;IACpF,OAAO,WAAW,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,wBAAwB;QACvD,KAAK,EAAE;YACL,UAAU,EAAE,MAAM,CAAC,aAAa,IAAI,uBAAuB;YAC3D,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,sBAAsB;SAClD;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,CAAC,cAAc,IAAI,wBAAwB;YACvD,SAAS,EAAE,MAAM,CAAC,mBAAmB,IAAI,sBAAsB;YAC/D,IAAI,EAAE,gBAAgB;SACvB;QACD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;KACpC,CAAC,CAAC,sBAAsB,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAGpE,CAAC;AACJ,CAAC"}