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
@@ -9,7 +9,7 @@
9
9
  * @see https://github.com/hyperspike/valkey-operator
10
10
  * @see https://doc.crds.dev/github.com/hyperspike/valkey-operator
11
11
  */
12
- import type { TypeKroChartValues } from '../../core/types/common.js';
12
+ import type { TypeKroChartValue } from '../../core/types/common.js';
13
13
  /**
14
14
  * ArkType schema for the Valkey operator bootstrap configuration.
15
15
  *
@@ -20,8 +20,11 @@ export declare const ValkeyBootstrapConfigSchema: import("arktype/internal/varia
20
20
  name: string;
21
21
  namespace?: string;
22
22
  version?: string;
23
+ repositoryName?: string;
24
+ repositoryNamespace?: string;
25
+ repositoryUrl?: string;
26
+ values?: Record<string, unknown>;
23
27
  customValues?: Record<string, unknown>;
24
- shared?: boolean;
25
28
  }, {}>;
26
29
  /** Configuration for installing the Hyperspike Valkey operator via Helm. */
27
30
  export type ValkeyBootstrapConfig = typeof ValkeyBootstrapConfigSchema.infer;
@@ -47,19 +50,20 @@ export declare const ValkeyConfigSchema: import("arktype/internal/variants/objec
47
50
  servicePassword?: {
48
51
  name: string;
49
52
  key: string;
53
+ optional?: boolean;
50
54
  };
51
55
  tls?: boolean;
52
56
  certIssuer?: string;
53
- certIssuerType?: string;
57
+ certIssuerType?: "Issuer" | "ClusterIssuer";
54
58
  storage?: {
55
- spec?: {
56
- accessModes?: string[];
57
- storageClassName?: string;
58
- resources?: {
59
- requests?: {
60
- storage?: string;
59
+ spec: {
60
+ resources: {
61
+ requests: {
62
+ storage: string;
61
63
  };
62
64
  };
65
+ accessModes?: string[];
66
+ storageClassName?: string;
63
67
  };
64
68
  };
65
69
  volumePermissions?: boolean;
@@ -73,14 +77,13 @@ export declare const ValkeyConfigSchema: import("arktype/internal/variants/objec
73
77
  memory?: string;
74
78
  };
75
79
  };
76
- platformManagedSecurityContext?: boolean;
77
80
  clusterPreferredEndpointType?: "ip" | "hostname" | "unknown-endpoint";
78
81
  externalAccess?: {
79
82
  enabled?: boolean;
80
83
  type?: "Proxy" | "LoadBalancer";
81
84
  externalDNS?: boolean;
82
85
  certIssuer?: string;
83
- certIssuerType?: string;
86
+ certIssuerType?: "Issuer" | "ClusterIssuer";
84
87
  proxy?: {
85
88
  image?: string;
86
89
  replicas?: number;
@@ -126,6 +129,7 @@ export interface ValkeyCondition {
126
129
  reason: string;
127
130
  message: string;
128
131
  lastTransitionTime: string;
132
+ observedGeneration?: number;
129
133
  }
130
134
  /**
131
135
  * Observed status of a Valkey cluster.
@@ -133,8 +137,6 @@ export interface ValkeyCondition {
133
137
  export interface ValkeyStatus {
134
138
  /** Whether the cluster is operational. */
135
139
  ready?: boolean;
136
- /** Cluster service hostname (derived from resource name). */
137
- hostname?: string;
138
140
  /** Status conditions. */
139
141
  conditions?: ValkeyCondition[];
140
142
  }
@@ -152,7 +154,7 @@ export interface ValkeyBootstrapStatus {
152
154
  ready: boolean;
153
155
  /** Whether the HelmRelease Ready condition is explicitly False. */
154
156
  failed: boolean;
155
- /** Deployed operator version (app version, not chart version). */
157
+ /** Deployment-time version (the built-in default is normalized to the app version). */
156
158
  version?: string;
157
159
  }
158
160
  /** ArkType schema for ValkeyBootstrapStatus. */
@@ -162,12 +164,21 @@ export declare const ValkeyBootstrapStatusSchema: import("arktype/internal/varia
162
164
  failed: boolean;
163
165
  version?: string;
164
166
  }, {}>;
167
+ /** Spec accepted by the shared Valkey HelmRepository singleton. */
168
+ export declare const ValkeyHelmRepositorySingletonSpecSchema: import("arktype/internal/variants/object.ts").ObjectType<{
169
+ name: string;
170
+ namespace: string;
171
+ url: string;
172
+ }, {}>;
173
+ /** Status surfaced by the shared Valkey HelmRepository singleton. */
174
+ export declare const ValkeyHelmRepositorySingletonStatusSchema: import("arktype/internal/variants/object.ts").ObjectType<{
175
+ ready: boolean;
176
+ }, {}>;
165
177
  /** ArkType schema for the Valkey operator Helm chart repository configuration. */
166
178
  export declare const ValkeyHelmRepositoryConfigSchema: import("arktype/internal/variants/object.ts").ObjectType<{
167
179
  name?: string;
168
180
  namespace?: string;
169
181
  url?: string;
170
- type?: "default" | "oci";
171
182
  interval?: string;
172
183
  id?: string;
173
184
  }, {}>;
@@ -180,11 +191,13 @@ export declare const ValkeyHelmReleaseConfigSchema: import("arktype/internal/var
180
191
  version?: string;
181
192
  values?: Record<string, unknown>;
182
193
  repositoryName?: string;
194
+ repositoryNamespace?: string;
195
+ repositoryUrl?: string;
183
196
  id?: string;
184
197
  }, {}>;
185
198
  /** Configuration for the Valkey operator Helm release. */
186
199
  export type ValkeyHelmReleaseConfig = Omit<typeof ValkeyHelmReleaseConfigSchema.infer, 'values'> & {
187
200
  /** Graph-aware Helm values serialized recursively by TypeKro. */
188
- values?: TypeKroChartValues<Record<string, unknown>>;
201
+ values?: TypeKroChartValue<Record<string, unknown>>;
189
202
  };
190
203
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/valkey/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAyBrE;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;MAmBtC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,MAAM,qBAAqB,GAAG,OAAO,2BAA2B,CAAC,KAAK,CAAC;AAM7E;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6G7B,CAAC;AAEH,qDAAqD;AACrD,MAAM,MAAM,YAAY,GAAG,OAAO,kBAAkB,CAAC,KAAK,CAAC;AAM3D,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,KAAK,EAAE,OAAO,GAAG,YAAY,CAAC;IAC9B,+DAA+D;IAC/D,KAAK,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gDAAgD;AAChD,eAAO,MAAM,2BAA2B;;;;;MAKtC,CAAC;AAMH,kFAAkF;AAClF,eAAO,MAAM,gCAAgC;;;;;;;MAa3C,CAAC;AAEH,mEAAmE;AACnE,MAAM,MAAM,0BAA0B,GAAG,OAAO,gCAAgC,CAAC,KAAK,CAAC;AAEvF,yEAAyE;AACzE,eAAO,MAAM,6BAA6B;;;;;;;MAaxC,CAAC;AAEH,0DAA0D;AAC1D,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,OAAO,6BAA6B,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG;IACjG,iEAAiE;IACjE,MAAM,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/valkey/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAyBpE;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;MAiBtC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,MAAM,qBAAqB,GAAG,OAAO,2BAA2B,CAAC,KAAK,CAAC;AAM7E;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6G7B,CAAC;AAEH,qDAAqD;AACrD,MAAM,MAAM,YAAY,GAAG,OAAO,kBAAkB,CAAC,KAAK,CAAC;AAM3D,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yBAAyB;IACzB,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,KAAK,EAAE,OAAO,GAAG,YAAY,CAAC;IAC9B,+DAA+D;IAC/D,KAAK,EAAE,OAAO,CAAC;IACf,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,gDAAgD;AAChD,eAAO,MAAM,2BAA2B;;;;;MAKtC,CAAC;AAMH,mEAAmE;AACnE,eAAO,MAAM,uCAAuC;;;;MAIlD,CAAC;AAEH,qEAAqE;AACrE,eAAO,MAAM,yCAAyC;;MAEpD,CAAC;AAMH,kFAAkF;AAClF,eAAO,MAAM,gCAAgC;;;;;;MAW3C,CAAC;AAEH,mEAAmE;AACnE,MAAM,MAAM,0BAA0B,GAAG,OAAO,gCAAgC,CAAC,KAAK,CAAC;AAEvF,yEAAyE;AACzE,eAAO,MAAM,6BAA6B;;;;;;;;;MAexC,CAAC;AAEH,0DAA0D;AAC1D,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,OAAO,6BAA6B,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG;IACjG,iEAAiE;IACjE,MAAM,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD,CAAC"}
@@ -42,18 +42,16 @@ export const ValkeyBootstrapConfigSchema = type({
42
42
  'namespace?': 'string',
43
43
  /** Chart version. */
44
44
  'version?': 'string',
45
- /** Additional Helm values for user overrides. */
45
+ /** HelmRepository name (default: 'valkey-operator-repo'). */
46
+ 'repositoryName?': 'string',
47
+ /** HelmRepository namespace (default: the operator namespace). */
48
+ 'repositoryNamespace?': 'string',
49
+ /** OCI repository URL. */
50
+ 'repositoryUrl?': 'string',
51
+ /** Raw Helm values merged last (preferred passthrough API). */
52
+ 'values?': 'Record<string, unknown>',
53
+ /** @deprecated Use `values` instead. */
46
54
  'customValues?': 'Record<string, unknown>',
47
- /**
48
- * Whether the operator install should be treated as shared cluster
49
- * infrastructure (default: `true`). When `true`, the Namespace,
50
- * HelmRepository, and HelmRelease are tagged with
51
- * `scopes: ['cluster']` so `factory.deleteInstance()` will NOT
52
- * remove them — multiple consumers can converge on the same
53
- * operator install. Set to `false` for dedicated per-instance
54
- * operators.
55
- */
56
- 'shared?': 'boolean',
57
55
  });
58
56
  // ============================================================================
59
57
  // Valkey CRD Resource
@@ -84,7 +82,10 @@ export const ValkeyConfigSchema = type({
84
82
  'exporterImage?': 'string',
85
83
  /** Number of primary nodes/shards (default: 3). */
86
84
  'shards?': 'number',
87
- /** Additional replicas per shard (default: 0). */
85
+ /**
86
+ * Requested replicas per shard (default: 0). Hyperspike v0.0.61 currently
87
+ * creates additional primaries; see upstream issue #186.
88
+ */
88
89
  'replicas?': 'number',
89
90
  /** Cluster domain (default: 'cluster.local'). */
90
91
  'clusterDomain?': 'string',
@@ -92,25 +93,25 @@ export const ValkeyConfigSchema = type({
92
93
  /** Allow connections without authentication (default: false). */
93
94
  'anonymousAuth?': 'boolean',
94
95
  /** Reference to an existing password secret (*corev1.SecretKeySelector). */
95
- 'servicePassword?': { name: 'string', key: 'string' },
96
+ 'servicePassword?': { name: 'string', key: 'string', 'optional?': 'boolean' },
96
97
  // TLS
97
98
  /** Enable TLS encryption (default: false). */
98
99
  'tls?': 'boolean',
99
100
  /** Certificate issuer name (requires cert-manager). */
100
101
  'certIssuer?': 'string',
101
102
  /** Certificate issuer type: 'ClusterIssuer' or 'Issuer' (default: 'ClusterIssuer'). */
102
- 'certIssuerType?': 'string',
103
+ 'certIssuerType?': '"ClusterIssuer" | "Issuer"',
103
104
  // Storage & Resources
104
105
  /** Persistent storage configuration (*corev1.PersistentVolumeClaim). */
105
106
  'storage?': {
106
- 'spec?': {
107
+ spec: {
107
108
  /** PVC access modes (default: ['ReadWriteOnce']). */
108
109
  'accessModes?': 'string[]',
109
110
  /** Storage class name. */
110
111
  'storageClassName?': 'string',
111
112
  /** Storage resource requests. */
112
- 'resources?': {
113
- 'requests?': { 'storage?': 'string' },
113
+ resources: {
114
+ requests: { storage: 'string' },
114
115
  },
115
116
  },
116
117
  },
@@ -118,8 +119,6 @@ export const ValkeyConfigSchema = type({
118
119
  'volumePermissions?': 'boolean',
119
120
  /** Pod resource requirements (*corev1.ResourceRequirements). */
120
121
  'resources?': resourceRequirementsSchemaShape,
121
- /** Platform-managed security context (default: false). */
122
- 'platformManagedSecurityContext?': 'boolean',
123
122
  // Networking
124
123
  /** Preferred endpoint type for cluster communication. */
125
124
  'clusterPreferredEndpointType?': '"ip" | "hostname" | "unknown-endpoint"',
@@ -135,7 +134,7 @@ export const ValkeyConfigSchema = type({
135
134
  /** TLS certificate issuer name. */
136
135
  'certIssuer?': 'string',
137
136
  /** Certificate issuer type (default: 'ClusterIssuer'). */
138
- 'certIssuerType?': 'string',
137
+ 'certIssuerType?': '"ClusterIssuer" | "Issuer"',
139
138
  /** Envoy proxy settings (when type is 'Proxy'). */
140
139
  'proxy?': {
141
140
  /** Envoy proxy image (default: 'envoyproxy/envoy:v1.32.1'). */
@@ -179,6 +178,19 @@ export const ValkeyBootstrapStatusSchema = type({
179
178
  'version?': 'string',
180
179
  });
181
180
  // ============================================================================
181
+ // Shared HelmRepository Singleton
182
+ // ============================================================================
183
+ /** Spec accepted by the shared Valkey HelmRepository singleton. */
184
+ export const ValkeyHelmRepositorySingletonSpecSchema = type({
185
+ name: 'string',
186
+ namespace: 'string',
187
+ url: 'string',
188
+ });
189
+ /** Status surfaced by the shared Valkey HelmRepository singleton. */
190
+ export const ValkeyHelmRepositorySingletonStatusSchema = type({
191
+ ready: 'boolean',
192
+ });
193
+ // ============================================================================
182
194
  // Helm Integration
183
195
  // ============================================================================
184
196
  /** ArkType schema for the Valkey operator Helm chart repository configuration. */
@@ -189,8 +201,6 @@ export const ValkeyHelmRepositoryConfigSchema = type({
189
201
  'namespace?': 'string',
190
202
  /** OCI registry URL (default: 'oci://ghcr.io/hyperspike'). */
191
203
  'url?': 'string',
192
- /** Repository type (default: 'oci' — Hyperspike uses OCI registry). */
193
- 'type?': '"default" | "oci"',
194
204
  /** Sync interval (default: '5m'). */
195
205
  'interval?': 'string',
196
206
  /** Resource ID for composition references. */
@@ -208,6 +218,8 @@ export const ValkeyHelmReleaseConfigSchema = type({
208
218
  'values?': 'Record<string, unknown>',
209
219
  /** HelmRepository name to reference (default: 'valkey-operator-repo'). */
210
220
  'repositoryName?': 'string',
221
+ 'repositoryNamespace?': 'string',
222
+ 'repositoryUrl?': 'string',
211
223
  /** Resource ID for composition references. */
212
224
  'id?': 'string',
213
225
  });
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/valkey/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/valkey/types.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,16 @@
6
6
  *
7
7
  * @see https://github.com/hyperspike/valkey-operator
8
8
  */
9
+ import { type ValuesMergeExpression } from '../../../core/aspects/values-merge.js';
9
10
  import type { ValkeyBootstrapConfig } from '../types.js';
10
11
  /** Helm values structure for the valkey-operator chart. */
11
12
  export interface ValkeyHelmValues {
12
13
  [key: string]: unknown;
13
14
  }
15
+ /** Plain values or a KRO runtime merge preserving graph-aware passthrough maps. */
16
+ export type ValkeyMappedHelmValues = ValkeyHelmValues | ValuesMergeExpression;
17
+ /** Proxy-safe subset consumed by the Helm values mapper. */
18
+ export type ValkeyHelmValuesInput = Partial<ValkeyBootstrapConfig>;
14
19
  /**
15
20
  * Map ValkeyBootstrapConfig to Helm chart values.
16
21
  *
@@ -21,7 +26,7 @@ export interface ValkeyHelmValues {
21
26
  * @param config - Resolved Valkey bootstrap configuration
22
27
  * @returns Helm values object compatible with the valkey-operator chart
23
28
  */
24
- export declare function mapValkeyConfigToHelmValues(config: ValkeyBootstrapConfig): ValkeyHelmValues;
29
+ export declare function mapValkeyConfigToHelmValues(config: ValkeyHelmValuesInput): ValkeyMappedHelmValues;
25
30
  /**
26
31
  * Get advisory warnings for Valkey operator Helm values configuration.
27
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"helm-values-mapper.d.ts","sourceRoot":"","sources":["../../../../src/factories/valkey/utils/helm-values-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD,2DAA2D;AAC3D,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,qBAAqB,GAAG,gBAAgB,CAQ3F;AAsBD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAInF"}
1
+ {"version":3,"file":"helm-values-mapper.d.ts","sourceRoot":"","sources":["../../../../src/factories/valkey/utils/helm-values-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD,2DAA2D;AAC3D,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,mFAAmF;AACnF,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,qBAAqB,CAAC;AAE9E,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEnE;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,qBAAqB,GAAG,sBAAsB,CAQjG;AA8DD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAInF"}
@@ -6,6 +6,8 @@
6
6
  *
7
7
  * @see https://github.com/hyperspike/valkey-operator
8
8
  */
9
+ import { isValuesMergeExpression, mergeValuesExpression, } from '../../../core/aspects/values-merge.js';
10
+ import { isCelExpression, isKubernetesRef } from '../../../utils/type-guards.js';
9
11
  /**
10
12
  * Map ValkeyBootstrapConfig to Helm chart values.
11
13
  *
@@ -17,32 +19,63 @@
17
19
  * @returns Helm values object compatible with the valkey-operator chart
18
20
  */
19
21
  export function mapValkeyConfigToHelmValues(config) {
20
- const values = {};
21
- if (config.customValues) {
22
- Object.assign(values, config.customValues);
22
+ let mapped = {};
23
+ // Preserve the legacy alias first, then let the standard `values` API win.
24
+ mapped = mergeOverride(mapped, config.customValues);
25
+ mapped = mergeOverride(mapped, config.values);
26
+ return mapped;
27
+ }
28
+ function mergeOverride(base, override) {
29
+ if (override === undefined)
30
+ return base;
31
+ if (isKubernetesRef(override) || isCelExpression(override) || isValuesMergeExpression(override)) {
32
+ return mergeValuesExpression(base, override);
23
33
  }
24
- return removeUndefinedValues(values);
34
+ if (isPlainObject(override)) {
35
+ const safeOverride = deepClone(override);
36
+ if (isValuesMergeExpression(base)) {
37
+ return mergeValuesExpression(base, safeOverride);
38
+ }
39
+ if (isPlainObject(base)) {
40
+ return deepMerge(deepClone(base), safeOverride);
41
+ }
42
+ }
43
+ return base;
25
44
  }
26
- /**
27
- * Recursively remove undefined values from an object.
28
- * Helm doesn't handle undefined well — only include explicitly set values.
29
- */
30
- function removeUndefinedValues(obj) {
31
- const result = {};
32
- for (const [key, value] of Object.entries(obj)) {
33
- if (value === undefined)
45
+ function isPlainObject(value) {
46
+ return (value !== null &&
47
+ typeof value === 'object' &&
48
+ !Array.isArray(value) &&
49
+ !isKubernetesRef(value) &&
50
+ !isCelExpression(value) &&
51
+ !isValuesMergeExpression(value));
52
+ }
53
+ /** Deep merge plain objects; arrays and primitives replace, and dangerous keys are ignored. */
54
+ function deepMerge(target, source) {
55
+ for (const [key, sourceValue] of Object.entries(source)) {
56
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype')
57
+ continue;
58
+ if (sourceValue === undefined)
34
59
  continue;
35
- if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
36
- const cleaned = removeUndefinedValues(value);
37
- if (Object.keys(cleaned).length > 0) {
38
- result[key] = cleaned;
39
- }
60
+ const targetValue = target[key];
61
+ if (isPlainObject(targetValue) && isPlainObject(sourceValue)) {
62
+ deepMerge(targetValue, sourceValue);
40
63
  }
41
64
  else {
42
- result[key] = value;
65
+ target[key] = deepCloneValue(sourceValue);
43
66
  }
44
67
  }
45
- return result;
68
+ return target;
69
+ }
70
+ function deepClone(source) {
71
+ return deepMerge({}, source);
72
+ }
73
+ function deepCloneValue(value) {
74
+ if (Array.isArray(value))
75
+ return value.map(deepCloneValue);
76
+ if (isPlainObject(value))
77
+ return deepClone(value);
78
+ return value;
46
79
  }
47
80
  /**
48
81
  * Get advisory warnings for Valkey operator Helm values configuration.
@@ -1 +1 @@
1
- {"version":3,"file":"helm-values-mapper.js","sourceRoot":"","sources":["../../../../src/factories/valkey/utils/helm-values-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAA6B;IACvE,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAoC,GAAM;IACtE,MAAM,MAAM,GAAG,EAA6B,CAAC;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAgC,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAA8B;IACvE,2DAA2D;IAC3D,yDAAyD;IACzD,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"helm-values-mapper.js","sourceRoot":"","sources":["../../../../src/factories/valkey/utils/helm-values-mapper.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { webAppWithProcessing } from './web-app-with-processing.js';
1
+ export { makeWebAppWithProcessing, webAppWithProcessing, } from './web-app-with-processing.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/webapp/compositions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/webapp/compositions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC"}
@@ -1,2 +1,2 @@
1
- export { webAppWithProcessing } from './web-app-with-processing.js';
1
+ export { makeWebAppWithProcessing, webAppWithProcessing, } from './web-app-with-processing.js';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/webapp/compositions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/webapp/compositions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC"}
@@ -1,3 +1,5 @@
1
+ import { type WebAppWithProcessingConfig, type WebAppWithProcessingBuildOptions, type WebAppWithProcessingStatus } from '../types.js';
2
+ import type { CallableComposition } from '../../../core/types/deployment.js';
1
3
  /**
2
4
  * Full-Stack Web Application with Background Processing
3
5
  *
@@ -35,11 +37,10 @@
35
37
  * - Inngest references `database.status.writeService` for the postgres URI → deploys after CNPG
36
38
  * - App references service names derived from resource names → deploys after all infra
37
39
  *
38
- * Operator install settings can be overridden per-deployment via
39
- * `spec.cnpgOperator` and `spec.valkeyOperator` e.g., to pin chart
40
- * versions or change the install namespace. Both fields are optional;
41
- * defaults install the latest pinned version into each operator's
42
- * system namespace.
40
+ * CNPG operator install settings can be overridden per deployment via
41
+ * `spec.cnpgOperator`. Valkey settings are graph-authoring-time options on
42
+ * `makeWebAppWithProcessing(...)` because singleton ownership cannot safely
43
+ * depend on a per-instance KRO schema value.
43
44
  *
44
45
  * @example
45
46
  * ```typescript
@@ -79,7 +80,9 @@
79
80
  * });
80
81
  * ```
81
82
  */
82
- export declare const webAppWithProcessing: import("../../../index.js").CallableComposition<{
83
+ export declare function makeWebAppWithProcessing(options?: WebAppWithProcessingBuildOptions): CallableComposition<WebAppWithProcessingConfig, WebAppWithProcessingStatus>;
84
+ /** Default webapp graph with the pinned Valkey operator installation. */
85
+ export declare const webAppWithProcessing: CallableComposition<{
83
86
  name: string;
84
87
  app: {
85
88
  image: string;
@@ -154,13 +157,6 @@ export declare const webAppWithProcessing: import("../../../index.js").CallableC
154
157
  customValues?: Record<string, unknown>;
155
158
  shared?: boolean;
156
159
  };
157
- valkeyOperator?: {
158
- name?: string;
159
- namespace?: string;
160
- version?: string;
161
- customValues?: Record<string, unknown>;
162
- shared?: boolean;
163
- };
164
160
  }, {
165
161
  ready: boolean;
166
162
  databaseUrl: string;
@@ -1 +1 @@
1
- {"version":3,"file":"web-app-with-processing.d.ts","sourceRoot":"","sources":["../../../../src/factories/webapp/compositions/web-app-with-processing.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsThC,CAAC"}
1
+ {"version":3,"file":"web-app-with-processing.d.ts","sourceRoot":"","sources":["../../../../src/factories/webapp/compositions/web-app-with-processing.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EAErC,KAAK,0BAA0B,EAEhC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,gCAAqC,GAC7C,mBAAmB,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAyU7E;AAED,yEAAyE;AACzE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA6B,CAAC"}