typekro 0.31.1 → 0.32.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 (102) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts.map +1 -1
  3. package/dist/compositions/typekro-runtime/typekro-runtime.js +0 -1
  4. package/dist/compositions/typekro-runtime/typekro-runtime.js.map +1 -1
  5. package/dist/compositions/typekro-runtime/types.d.ts +1 -0
  6. package/dist/compositions/typekro-runtime/types.d.ts.map +1 -1
  7. package/dist/core/metadata/resource-metadata.d.ts +13 -0
  8. package/dist/core/metadata/resource-metadata.d.ts.map +1 -1
  9. package/dist/core/metadata/resource-metadata.js.map +1 -1
  10. package/dist/core/planning/direct-runtime-adapter.d.ts.map +1 -1
  11. package/dist/core/planning/direct-runtime-adapter.js +23 -0
  12. package/dist/core/planning/direct-runtime-adapter.js.map +1 -1
  13. package/dist/core/planning/planner.d.ts.map +1 -1
  14. package/dist/core/planning/planner.js +13 -4
  15. package/dist/core/planning/planner.js.map +1 -1
  16. package/dist/core/references/external-refs.d.ts +1 -1
  17. package/dist/core/references/external-refs.d.ts.map +1 -1
  18. package/dist/core/references/external-refs.js +5 -1
  19. package/dist/core/references/external-refs.js.map +1 -1
  20. package/dist/core/serialization/schema.d.ts.map +1 -1
  21. package/dist/core/serialization/schema.js +47 -0
  22. package/dist/core/serialization/schema.js.map +1 -1
  23. package/dist/factories/hatchet/compositions/hatchet-installation.d.ts +53 -0
  24. package/dist/factories/hatchet/compositions/hatchet-installation.d.ts.map +1 -0
  25. package/dist/factories/hatchet/compositions/hatchet-installation.js +296 -0
  26. package/dist/factories/hatchet/compositions/hatchet-installation.js.map +1 -0
  27. package/dist/factories/hatchet/compositions/index.d.ts +2 -0
  28. package/dist/factories/hatchet/compositions/index.d.ts.map +1 -0
  29. package/dist/factories/hatchet/compositions/index.js +2 -0
  30. package/dist/factories/hatchet/compositions/index.js.map +1 -0
  31. package/dist/factories/hatchet/index.d.ts +5 -0
  32. package/dist/factories/hatchet/index.d.ts.map +1 -0
  33. package/dist/factories/hatchet/index.js +5 -0
  34. package/dist/factories/hatchet/index.js.map +1 -0
  35. package/dist/factories/hatchet/resources/helm.d.ts +12 -0
  36. package/dist/factories/hatchet/resources/helm.d.ts.map +1 -0
  37. package/dist/factories/hatchet/resources/helm.js +49 -0
  38. package/dist/factories/hatchet/resources/helm.js.map +1 -0
  39. package/dist/factories/hatchet/resources/index.d.ts +2 -0
  40. package/dist/factories/hatchet/resources/index.d.ts.map +1 -0
  41. package/dist/factories/hatchet/resources/index.js +2 -0
  42. package/dist/factories/hatchet/resources/index.js.map +1 -0
  43. package/dist/factories/hatchet/types.d.ts +85 -0
  44. package/dist/factories/hatchet/types.d.ts.map +1 -0
  45. package/dist/factories/hatchet/types.js +87 -0
  46. package/dist/factories/hatchet/types.js.map +1 -0
  47. package/dist/factories/helm/helm-release.d.ts +7 -2
  48. package/dist/factories/helm/helm-release.d.ts.map +1 -1
  49. package/dist/factories/helm/helm-release.js +5 -0
  50. package/dist/factories/helm/helm-release.js.map +1 -1
  51. package/dist/factories/helm/index.d.ts +1 -1
  52. package/dist/factories/helm/index.d.ts.map +1 -1
  53. package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
  54. package/dist/factories/helm/readiness-evaluators.js +5 -2
  55. package/dist/factories/helm/readiness-evaluators.js.map +1 -1
  56. package/dist/factories/helm/types.d.ts +20 -0
  57. package/dist/factories/helm/types.d.ts.map +1 -1
  58. package/dist/factories/index.d.ts +2 -1
  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/opensearch/compositions/cluster.d.ts +38 -0
  63. package/dist/factories/opensearch/compositions/cluster.d.ts.map +1 -0
  64. package/dist/factories/opensearch/compositions/cluster.js +338 -0
  65. package/dist/factories/opensearch/compositions/cluster.js.map +1 -0
  66. package/dist/factories/opensearch/compositions/index.d.ts +4 -0
  67. package/dist/factories/opensearch/compositions/index.d.ts.map +1 -0
  68. package/dist/factories/opensearch/compositions/index.js +4 -0
  69. package/dist/factories/opensearch/compositions/index.js.map +1 -0
  70. package/dist/factories/opensearch/compositions/operator-bootstrap.d.ts +40 -0
  71. package/dist/factories/opensearch/compositions/operator-bootstrap.d.ts.map +1 -0
  72. package/dist/factories/opensearch/compositions/operator-bootstrap.js +89 -0
  73. package/dist/factories/opensearch/compositions/operator-bootstrap.js.map +1 -0
  74. package/dist/factories/opensearch/compositions/repository.d.ts +8 -0
  75. package/dist/factories/opensearch/compositions/repository.d.ts.map +1 -0
  76. package/dist/factories/opensearch/compositions/repository.js +21 -0
  77. package/dist/factories/opensearch/compositions/repository.js.map +1 -0
  78. package/dist/factories/opensearch/constants.d.ts +2 -0
  79. package/dist/factories/opensearch/constants.d.ts.map +1 -0
  80. package/dist/factories/opensearch/constants.js +2 -0
  81. package/dist/factories/opensearch/constants.js.map +1 -0
  82. package/dist/factories/opensearch/index.d.ts +12 -0
  83. package/dist/factories/opensearch/index.d.ts.map +1 -0
  84. package/dist/factories/opensearch/index.js +12 -0
  85. package/dist/factories/opensearch/index.js.map +1 -0
  86. package/dist/factories/opensearch/resources/cluster.d.ts +6 -0
  87. package/dist/factories/opensearch/resources/cluster.d.ts.map +1 -0
  88. package/dist/factories/opensearch/resources/cluster.js +175 -0
  89. package/dist/factories/opensearch/resources/cluster.js.map +1 -0
  90. package/dist/factories/opensearch/resources/helm.d.ts +17 -0
  91. package/dist/factories/opensearch/resources/helm.d.ts.map +1 -0
  92. package/dist/factories/opensearch/resources/helm.js +44 -0
  93. package/dist/factories/opensearch/resources/helm.js.map +1 -0
  94. package/dist/factories/opensearch/resources/index.d.ts +3 -0
  95. package/dist/factories/opensearch/resources/index.d.ts.map +1 -0
  96. package/dist/factories/opensearch/resources/index.js +3 -0
  97. package/dist/factories/opensearch/resources/index.js.map +1 -0
  98. package/dist/factories/opensearch/types.d.ts +281 -0
  99. package/dist/factories/opensearch/types.d.ts.map +1 -0
  100. package/dist/factories/opensearch/types.js +94 -0
  101. package/dist/factories/opensearch/types.js.map +1 -0
  102. package/package.json +11 -2
@@ -0,0 +1,338 @@
1
+ import { type } from 'arktype';
2
+ import { kubernetesComposition } from '../../../core/composition/imperative.js';
3
+ import { setIncludeWhen } from '../../../core/metadata/resource-metadata.js';
4
+ import { Cel } from '../../../core/references/cel.js';
5
+ import { isKubernetesRef } from '../../../utils/type-guards.js';
6
+ import { certificate } from '../../cert-manager/resources/certificates.js';
7
+ import { namespace } from '../../kubernetes/core/namespace.js';
8
+ import { networkPolicy } from '../../kubernetes/networking/network-policy.js';
9
+ import { DEFAULT_OPENSEARCH_OPERATOR_NAMESPACE } from '../constants.js';
10
+ import { OPENSEARCH_HTTP_PORT, openSearchClusterResource } from '../resources/cluster.js';
11
+ import { OpenSearchClusterStatusSchema } from '../types.js';
12
+ const DEFAULT_OPENSEARCH_VERSION = '3.2.0';
13
+ function resolveTopology(options) {
14
+ const profile = options.profile ?? 'development';
15
+ const nodes = options.nodes ?? 3;
16
+ const roles = options.roles ?? ['cluster_manager', 'data', 'ingest'];
17
+ if (!Number.isSafeInteger(nodes) || nodes < 3) {
18
+ throw new Error('makeOpenSearchCluster requires at least three nodes because the OpenSearch operator does not support single-node clusters.');
19
+ }
20
+ if (!roles.includes('cluster_manager')) {
21
+ throw new Error('makeOpenSearchCluster roles must include cluster_manager because its single node pool must be able to elect a cluster manager.');
22
+ }
23
+ const pdb = options.podDisruptionBudget ??
24
+ (profile === 'production' ? { minAvailable: Math.max(1, nodes - 1) } : undefined);
25
+ if (pdb?.minAvailable !== undefined && pdb.maxUnavailable !== undefined) {
26
+ throw new Error('makeOpenSearchCluster podDisruptionBudget accepts minAvailable or maxUnavailable, not both.');
27
+ }
28
+ if ((pdb?.minAvailable !== undefined &&
29
+ (!Number.isSafeInteger(pdb.minAvailable) ||
30
+ pdb.minAvailable < 1 ||
31
+ pdb.minAvailable >= nodes)) ||
32
+ (pdb?.maxUnavailable !== undefined &&
33
+ (!Number.isSafeInteger(pdb.maxUnavailable) ||
34
+ pdb.maxUnavailable < 0 ||
35
+ pdb.maxUnavailable >= nodes))) {
36
+ throw new Error('makeOpenSearchCluster PodDisruptionBudget must preserve at least one available node.');
37
+ }
38
+ const networkPolicy = options.networkPolicy?.enabled === true
39
+ ? {
40
+ operatorNamespace: options.networkPolicy.operatorNamespace ?? DEFAULT_OPENSEARCH_OPERATOR_NAMESPACE,
41
+ ingressNamespaceLabels: options.networkPolicy.ingressNamespaceLabels ?? {},
42
+ egressNamespaceLabels: options.networkPolicy.egressNamespaceLabels ?? [],
43
+ egressCidrs: options.networkPolicy.egressCidrs ?? [],
44
+ }
45
+ : profile === 'production'
46
+ ? {
47
+ operatorNamespace: options.networkPolicy?.operatorNamespace ?? DEFAULT_OPENSEARCH_OPERATOR_NAMESPACE,
48
+ ingressNamespaceLabels: options.networkPolicy?.ingressNamespaceLabels ?? {},
49
+ egressNamespaceLabels: options.networkPolicy?.egressNamespaceLabels ?? [],
50
+ egressCidrs: options.networkPolicy?.egressCidrs ?? [],
51
+ }
52
+ : undefined;
53
+ if (networkPolicy && !/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/u.test(networkPolicy.operatorNamespace)) {
54
+ throw new Error('makeOpenSearchCluster networkPolicy.operatorNamespace must be a non-empty Kubernetes Namespace name.');
55
+ }
56
+ if (profile === 'production' &&
57
+ networkPolicy &&
58
+ Object.keys(networkPolicy.ingressNamespaceLabels).length === 0) {
59
+ throw new Error('makeOpenSearchCluster production network policy requires ingressNamespaceLabels.');
60
+ }
61
+ return {
62
+ profile,
63
+ nodes,
64
+ roles,
65
+ tls: options.tls ?? 'generated',
66
+ snapshots: options.snapshots ?? false,
67
+ snapshotCredentialKeys: {
68
+ accessKey: options.snapshotCredentialKeys?.accessKey ?? 'accessKey',
69
+ secretKey: options.snapshotCredentialKeys?.secretKey ?? 'secretKey',
70
+ },
71
+ ...(pdb ? { podDisruptionBudget: pdb } : {}),
72
+ ...(networkPolicy ? { networkPolicy } : {}),
73
+ };
74
+ }
75
+ function buildSpecSchema(topology) {
76
+ const shape = {
77
+ name: 'string > 0',
78
+ namespace: 'string > 0',
79
+ 'version?': 'string > 0',
80
+ 'serviceName?': 'string > 0',
81
+ 'lifecycle?': '"owned-delete" | "external-delete" | "external-retain"',
82
+ storage: {
83
+ size: 'string > 0',
84
+ 'storageClassName?': 'string > 0',
85
+ },
86
+ 'resources?': {
87
+ 'requests?': { 'cpu?': 'string', 'memory?': 'string' },
88
+ 'limits?': { 'cpu?': 'string', 'memory?': 'string' },
89
+ },
90
+ 'adminCredentialsSecret?': { name: 'string > 0' },
91
+ 'dashboardCredentialsSecret?': { name: 'string > 0' },
92
+ 'monitoring?': 'boolean',
93
+ };
94
+ if (topology.tls === 'generated') {
95
+ shape.tls = { source: '"generated"' };
96
+ }
97
+ else if (topology.tls === 'secret') {
98
+ shape.tls = {
99
+ source: '"secret"',
100
+ secretName: 'string > 0',
101
+ adminSecretName: 'string > 0',
102
+ adminDn: '(string > 0)[] > 0',
103
+ };
104
+ }
105
+ else {
106
+ shape.tls = {
107
+ source: '"cert-manager"',
108
+ secretName: 'string > 0',
109
+ adminSecretName: 'string > 0',
110
+ issuerName: 'string > 0',
111
+ 'issuerKind?': '"Issuer" | "ClusterIssuer"',
112
+ dnsNames: 'string[] > 0',
113
+ adminDn: '(string > 0)[] > 0',
114
+ };
115
+ }
116
+ if (topology.snapshots) {
117
+ shape.snapshots = {
118
+ repository: 'string > 0',
119
+ bucket: 'string > 0',
120
+ credentialsSecret: {
121
+ name: 'string > 0',
122
+ },
123
+ 'endpoint?': 'string',
124
+ 'region?': 'string',
125
+ 'basePath?': 'string',
126
+ };
127
+ }
128
+ return type(shape);
129
+ }
130
+ export function makeOpenSearchCluster(options = {}) {
131
+ const topology = resolveTopology(options);
132
+ const specSchema = buildSpecSchema(topology);
133
+ return kubernetesComposition({
134
+ name: 'opensearch-cluster',
135
+ kind: 'OpenSearchClusterInstallation',
136
+ spec: specSchema,
137
+ status: OpenSearchClusterStatusSchema,
138
+ }, (spec) => {
139
+ const lifecycle = spec.lifecycle ?? 'owned-delete';
140
+ const clusterNamespace = namespace({
141
+ metadata: {
142
+ name: spec.namespace,
143
+ labels: {
144
+ 'app.kubernetes.io/name': 'opensearch',
145
+ 'app.kubernetes.io/instance': spec.name,
146
+ 'app.kubernetes.io/managed-by': 'typekro',
147
+ },
148
+ },
149
+ id: 'clusterNamespace',
150
+ });
151
+ if (isKubernetesRef(spec.name)) {
152
+ setIncludeWhen(clusterNamespace, [
153
+ Cel.expr('!has(schema.spec.lifecycle) || schema.spec.lifecycle == "owned-delete"'),
154
+ ]);
155
+ }
156
+ else if (lifecycle !== 'owned-delete') {
157
+ setIncludeWhen(clusterNamespace, [false]);
158
+ }
159
+ let serverCertificate;
160
+ if (topology.tls === 'cert-manager') {
161
+ const tls = spec.tls;
162
+ serverCertificate = certificate({
163
+ name: `${spec.name}-http`,
164
+ namespace: spec.namespace,
165
+ spec: {
166
+ secretName: tls.secretName,
167
+ issuerRef: {
168
+ name: tls.issuerName,
169
+ kind: tls.issuerKind ?? 'ClusterIssuer',
170
+ },
171
+ dnsNames: tls.dnsNames,
172
+ usages: ['server auth'],
173
+ },
174
+ id: 'httpCertificate',
175
+ });
176
+ }
177
+ const cluster = openSearchClusterResource({
178
+ name: spec.name,
179
+ namespace: spec.namespace,
180
+ version: spec.version ?? DEFAULT_OPENSEARCH_VERSION,
181
+ serviceName: spec.serviceName ?? spec.name,
182
+ nodes: topology.nodes,
183
+ roles: topology.roles,
184
+ storage: {
185
+ size: spec.storage.size,
186
+ ...(spec.storage.storageClassName
187
+ ? { storageClassName: spec.storage.storageClassName }
188
+ : {}),
189
+ deletionPolicy: lifecycle === 'external-retain' ? 'retain' : 'delete',
190
+ },
191
+ ...(spec.resources ? { resources: spec.resources } : {}),
192
+ ...(spec.adminCredentialsSecret
193
+ ? { adminCredentialsSecret: spec.adminCredentialsSecret }
194
+ : {}),
195
+ ...(spec.dashboardCredentialsSecret
196
+ ? {
197
+ dashboardCredentialsSecret: spec.dashboardCredentialsSecret,
198
+ }
199
+ : {}),
200
+ tls: topology.tls === 'generated'
201
+ ? { source: 'generated' }
202
+ : externalTls(spec.tls, topology.tls),
203
+ ...(topology.snapshots && spec.snapshots
204
+ ? {
205
+ snapshots: {
206
+ repository: spec.snapshots.repository,
207
+ bucket: spec.snapshots.bucket,
208
+ credentialsSecret: {
209
+ name: spec.snapshots.credentialsSecret.name,
210
+ accessKeyKey: topology.snapshotCredentialKeys.accessKey,
211
+ secretKeyKey: topology.snapshotCredentialKeys.secretKey,
212
+ },
213
+ ...(spec.snapshots.endpoint ? { endpoint: spec.snapshots.endpoint } : {}),
214
+ ...(spec.snapshots.region ? { region: spec.snapshots.region } : {}),
215
+ ...(spec.snapshots.basePath ? { basePath: spec.snapshots.basePath } : {}),
216
+ },
217
+ }
218
+ : {}),
219
+ monitoring: spec.monitoring ?? false,
220
+ ...(topology.podDisruptionBudget
221
+ ? { podDisruptionBudget: topology.podDisruptionBudget }
222
+ : {}),
223
+ id: 'cluster',
224
+ });
225
+ if (serverCertificate)
226
+ cluster.dependsOn(serverCertificate);
227
+ if (topology.networkPolicy) {
228
+ const podSelector = {
229
+ matchLabels: {
230
+ 'opensearch.org/opensearch-cluster': spec.name,
231
+ },
232
+ };
233
+ networkPolicy({
234
+ metadata: {
235
+ name: `${spec.name}-default`,
236
+ namespace: spec.namespace,
237
+ },
238
+ spec: {
239
+ podSelector,
240
+ policyTypes: ['Ingress', 'Egress'],
241
+ ingress: [
242
+ {
243
+ _from: [{ podSelector: {} }],
244
+ },
245
+ {
246
+ _from: [
247
+ {
248
+ namespaceSelector: {
249
+ matchLabels: {
250
+ 'kubernetes.io/metadata.name': topology.networkPolicy.operatorNamespace,
251
+ },
252
+ },
253
+ },
254
+ ],
255
+ ports: [{ protocol: 'TCP', port: OPENSEARCH_HTTP_PORT }],
256
+ },
257
+ ...(Object.keys(topology.networkPolicy.ingressNamespaceLabels).length > 0
258
+ ? [
259
+ {
260
+ _from: [
261
+ {
262
+ namespaceSelector: {
263
+ matchLabels: topology.networkPolicy.ingressNamespaceLabels,
264
+ },
265
+ },
266
+ ],
267
+ ports: [
268
+ {
269
+ protocol: 'TCP',
270
+ port: OPENSEARCH_HTTP_PORT,
271
+ },
272
+ ],
273
+ },
274
+ ]
275
+ : []),
276
+ ],
277
+ egress: [
278
+ { to: [{ podSelector: {} }] },
279
+ {
280
+ to: [
281
+ {
282
+ namespaceSelector: {
283
+ matchLabels: {
284
+ 'kubernetes.io/metadata.name': 'kube-system',
285
+ },
286
+ },
287
+ },
288
+ ],
289
+ ports: [
290
+ { protocol: 'UDP', port: 53 },
291
+ { protocol: 'TCP', port: 53 },
292
+ ],
293
+ },
294
+ ...topology.networkPolicy.egressNamespaceLabels.map((matchLabels) => ({
295
+ to: [{ namespaceSelector: { matchLabels } }],
296
+ })),
297
+ ...topology.networkPolicy.egressCidrs.map((cidr) => ({
298
+ to: [{ ipBlock: { cidr } }],
299
+ })),
300
+ ],
301
+ },
302
+ id: 'networkPolicy',
303
+ });
304
+ }
305
+ const failed = Cel.expr('cluster.status.componentsStatus.exists(c, c.status == "Failed" || c.status == "Error")');
306
+ const ready = Cel.expr(`cluster.status.initialized == true && cluster.status.availableNodes >= ${topology.nodes} && (cluster.status.health == "green" || cluster.status.health == "yellow") && cluster.status.version == cluster.spec.general.version`);
307
+ return {
308
+ ready,
309
+ failed,
310
+ phase: Cel.expr(`cluster.status.componentsStatus.exists(c, c.status == "Failed" || c.status == "Error") ? "Failed" : (cluster.status.initialized == true && cluster.status.availableNodes >= ${topology.nodes} && (cluster.status.health == "green" || cluster.status.health == "yellow") && cluster.status.version == cluster.spec.general.version ? "Ready" : "Installing")`),
311
+ endpoint: `https://${cluster.spec.general.serviceName}.${cluster.metadata.namespace}.svc.cluster.local:${OPENSEARCH_HTTP_PORT}`,
312
+ credentialsSecret: Cel.expr(`has(cluster.spec.security.config.adminCredentialsSecret) && cluster.spec.security.config.adminCredentialsSecret.name != "" ? cluster.spec.security.config.adminCredentialsSecret.name : string(cluster.metadata.name) + "-admin-password"`),
313
+ version: cluster.status.version,
314
+ availableNodes: cluster.status.availableNodes,
315
+ health: cluster.status.health,
316
+ snapshotRepository: Cel.expr('has(cluster.spec.general.snapshotRepositories) && cluster.spec.general.snapshotRepositories.size() > 0 ? cluster.spec.general.snapshotRepositories[0].name : ""'),
317
+ };
318
+ }, topology.tls === 'generated'
319
+ ? undefined
320
+ : {
321
+ schemaFieldValidations: {
322
+ 'tls.adminDn': 'size(self) > 0 && self.all(dn, size(dn) > 0)',
323
+ },
324
+ });
325
+ }
326
+ export const openSearchCluster = makeOpenSearchCluster();
327
+ function externalTls(tls, source) {
328
+ if (tls.source === 'generated') {
329
+ throw new Error(`makeOpenSearchCluster configured TLS source ${source}, but the instance supplied generated TLS.`);
330
+ }
331
+ return {
332
+ source,
333
+ secretName: tls.secretName,
334
+ adminSecretName: tls.adminSecretName,
335
+ adminDn: tls.adminDn,
336
+ };
337
+ }
338
+ //# sourceMappingURL=cluster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../../../src/factories/opensearch/compositions/cluster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './cluster.js';
2
+ export * from './operator-bootstrap.js';
3
+ export * from './repository.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/opensearch/compositions/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './cluster.js';
2
+ export * from './operator-bootstrap.js';
3
+ export * from './repository.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/opensearch/compositions/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { type OpenSearchOperatorBootstrapBuildOptions } from '../types.js';
2
+ /**
3
+ * Explicitly owned operator installation. Deleting its KRO instance uninstalls
4
+ * the operator; shared consumers should use openSearchOperatorBootstrap.
5
+ */
6
+ export declare const openSearchOperatorInstallation: import("../../../index.js").CallableComposition<{
7
+ name: string;
8
+ namespace?: string;
9
+ version?: string;
10
+ repositoryName?: string;
11
+ repositoryNamespace?: string;
12
+ customValues?: Record<string, unknown>;
13
+ }, {
14
+ ready: boolean;
15
+ failed: boolean;
16
+ phase: "Ready" | "Failed" | "Installing";
17
+ version: string;
18
+ }>;
19
+ /**
20
+ * Create a shared operator reference whose complete installation is owned by
21
+ * one singleton instance in typekro-singletons. Ownership is build-time so a
22
+ * KRO schema proxy can never silently change lifecycle semantics.
23
+ */
24
+ export declare function makeOpenSearchOperatorBootstrap(options?: OpenSearchOperatorBootstrapBuildOptions): import("../../../index.js").CallableComposition<{
25
+ name: string;
26
+ }, {
27
+ ready: boolean;
28
+ failed: boolean;
29
+ phase: "Ready" | "Failed" | "Installing";
30
+ version: string;
31
+ }>;
32
+ export declare const openSearchOperatorBootstrap: import("../../../index.js").CallableComposition<{
33
+ name: string;
34
+ }, {
35
+ ready: boolean;
36
+ failed: boolean;
37
+ phase: "Ready" | "Failed" | "Installing";
38
+ version: string;
39
+ }>;
40
+ //# sourceMappingURL=operator-bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/opensearch/compositions/operator-bootstrap.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,uCAAuC,EAM7C,MAAM,aAAa,CAAC;AAGrB;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;EA4C1C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,GAAE,uCAA4C;;;;;;;GA8BtD;AAED,eAAO,MAAM,2BAA2B;;;;;;;EAAoC,CAAC"}
@@ -0,0 +1,89 @@
1
+ import { kubernetesComposition } from '../../../core/composition/imperative.js';
2
+ import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
3
+ import { singleton } from '../../../core/singleton/singleton.js';
4
+ import { helmReleaseConditionSummary } from '../../helm/status.js';
5
+ import { namespace } from '../../kubernetes/core/namespace.js';
6
+ import { DEFAULT_OPENSEARCH_OPERATOR_NAMESPACE } from '../constants.js';
7
+ import { DEFAULT_OPENSEARCH_OPERATOR_REPOSITORY_NAME, DEFAULT_OPENSEARCH_OPERATOR_REPOSITORY_URL, DEFAULT_OPENSEARCH_OPERATOR_VERSION, openSearchOperatorHelmRelease, } from '../resources/helm.js';
8
+ import { OpenSearchOperatorBootstrapConfigSchema, OpenSearchOperatorBootstrapStatusSchema, OpenSearchOperatorReferenceConfigSchema, } from '../types.js';
9
+ import { openSearchHelmRepositoryBootstrap } from './repository.js';
10
+ /**
11
+ * Explicitly owned operator installation. Deleting its KRO instance uninstalls
12
+ * the operator; shared consumers should use openSearchOperatorBootstrap.
13
+ */
14
+ export const openSearchOperatorInstallation = kubernetesComposition({
15
+ name: 'opensearch-operator-installation',
16
+ kind: 'OpenSearchOperatorInstallation',
17
+ spec: OpenSearchOperatorBootstrapConfigSchema,
18
+ status: OpenSearchOperatorBootstrapStatusSchema,
19
+ }, (spec) => {
20
+ const operatorNamespace = spec.namespace || DEFAULT_OPENSEARCH_OPERATOR_NAMESPACE;
21
+ const version = spec.version || DEFAULT_OPENSEARCH_OPERATOR_VERSION;
22
+ const repositoryName = spec.repositoryName || DEFAULT_OPENSEARCH_OPERATOR_REPOSITORY_NAME;
23
+ const repositoryNamespace = spec.repositoryNamespace || DEFAULT_FLUX_NAMESPACE;
24
+ namespace({
25
+ metadata: {
26
+ name: operatorNamespace,
27
+ labels: {
28
+ 'app.kubernetes.io/name': 'opensearch-operator',
29
+ 'app.kubernetes.io/managed-by': 'typekro',
30
+ },
31
+ },
32
+ id: 'operatorNamespace',
33
+ });
34
+ const _repository = singleton(openSearchHelmRepositoryBootstrap, {
35
+ id: 'opensearch-helm-repository',
36
+ spec: {
37
+ name: repositoryName,
38
+ namespace: repositoryNamespace,
39
+ url: DEFAULT_OPENSEARCH_OPERATOR_REPOSITORY_URL,
40
+ },
41
+ });
42
+ const release = openSearchOperatorHelmRelease({
43
+ name: spec.name,
44
+ namespace: operatorNamespace,
45
+ version,
46
+ repositoryName,
47
+ repositoryNamespace,
48
+ values: spec.customValues,
49
+ id: 'operatorRelease',
50
+ });
51
+ return {
52
+ ...helmReleaseConditionSummary(release),
53
+ version: release.spec.chart.spec.version,
54
+ };
55
+ });
56
+ /**
57
+ * Create a shared operator reference whose complete installation is owned by
58
+ * one singleton instance in typekro-singletons. Ownership is build-time so a
59
+ * KRO schema proxy can never silently change lifecycle semantics.
60
+ */
61
+ export function makeOpenSearchOperatorBootstrap(options = {}) {
62
+ const installation = {
63
+ name: options.name ?? 'opensearch-operator',
64
+ namespace: options.namespace ?? DEFAULT_OPENSEARCH_OPERATOR_NAMESPACE,
65
+ version: options.version ?? DEFAULT_OPENSEARCH_OPERATOR_VERSION,
66
+ repositoryName: options.repositoryName ?? DEFAULT_OPENSEARCH_OPERATOR_REPOSITORY_NAME,
67
+ repositoryNamespace: options.repositoryNamespace ?? DEFAULT_FLUX_NAMESPACE,
68
+ ...(options.customValues ? { customValues: options.customValues } : {}),
69
+ };
70
+ return kubernetesComposition({
71
+ name: 'opensearch-operator-bootstrap',
72
+ kind: 'OpenSearchOperatorBootstrap',
73
+ spec: OpenSearchOperatorReferenceConfigSchema,
74
+ status: OpenSearchOperatorBootstrapStatusSchema,
75
+ }, (_spec) => {
76
+ const owner = singleton(openSearchOperatorInstallation, {
77
+ id: 'opensearch-operator',
78
+ spec: installation,
79
+ });
80
+ return {
81
+ ready: owner.status.ready,
82
+ failed: owner.status.failed,
83
+ phase: owner.status.phase,
84
+ version: owner.status.version,
85
+ };
86
+ });
87
+ }
88
+ export const openSearchOperatorBootstrap = makeOpenSearchOperatorBootstrap();
89
+ //# sourceMappingURL=operator-bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/opensearch/compositions/operator-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,qCAAqC,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EACL,2CAA2C,EAC3C,0CAA0C,EAC1C,mCAAmC,EACnC,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,uCAAuC,EACvC,uCAAuC,EAEvC,uCAAuC,GACxC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,qBAAqB,CACjE;IACE,IAAI,EAAE,kCAAkC;IACxC,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE,uCAAuC;IAC7C,MAAM,EAAE,uCAAuC;CAChD,EACD,CAAC,IAAuC,EAAE,EAAE;IAC1C,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,IAAI,qCAAqC,CAAC;IAClF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,mCAAmC,CAAC;IACpE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,2CAA2C,CAAC;IAC1F,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,IAAI,sBAAsB,CAAC;IAC/E,SAAS,CAAC;QACR,QAAQ,EAAE;YACR,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE;gBACN,wBAAwB,EAAE,qBAAqB;gBAC/C,8BAA8B,EAAE,SAAS;aAC1C;SACF;QACD,EAAE,EAAE,mBAAmB;KACxB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,SAAS,CAAC,iCAAiC,EAAE;QAC/D,EAAE,EAAE,4BAA4B;QAChC,IAAI,EAAE;YACJ,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,mBAAmB;YAC9B,GAAG,EAAE,0CAA0C;SAChD;KACF,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,6BAA6B,CAAC;QAC5C,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,iBAAiB;QAC5B,OAAO;QACP,cAAc;QACd,mBAAmB;QACnB,MAAM,EAAE,IAAI,CAAC,YAAY;QACzB,EAAE,EAAE,iBAAiB;KACtB,CAAC,CAAC;IACH,OAAO;QACL,GAAG,2BAA2B,CAAC,OAAO,CAAC;QACvC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;KACzC,CAAC;AACJ,CAAC,CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAC7C,UAAmD,EAAE;IAErD,MAAM,YAAY,GAAsC;QACtD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,qBAAqB;QAC3C,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,qCAAqC;QACrE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,mCAAmC;QAC/D,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,2CAA2C;QACrF,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,sBAAsB;QAC1E,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC;IACF,OAAO,qBAAqB,CAC1B;QACE,IAAI,EAAE,+BAA+B;QACrC,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,uCAAuC;QAC7C,MAAM,EAAE,uCAAuC;KAChD,EACD,CAAC,KAAwC,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,8BAA8B,EAAE;YACtD,EAAE,EAAE,qBAAqB;YACzB,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;QACH,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;YACzB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;YAC3B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;YACzB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;SAC9B,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,+BAA+B,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const openSearchHelmRepositoryBootstrap: import("../../../index.js").CallableComposition<{
2
+ name: string;
3
+ namespace: string;
4
+ url: string;
5
+ }, {
6
+ ready: boolean;
7
+ }>;
8
+ //# sourceMappingURL=repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../src/factories/opensearch/compositions/repository.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,iCAAiC;;;;;;EAqB7C,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { kubernetesComposition } from '../../../core/composition/imperative.js';
2
+ import { Cel } from '../../../core/references/cel.js';
3
+ import { openSearchOperatorHelmRepository } from '../resources/helm.js';
4
+ import { OpenSearchHelmRepositorySingletonSpecSchema, OpenSearchHelmRepositorySingletonStatusSchema, } from '../types.js';
5
+ export const openSearchHelmRepositoryBootstrap = kubernetesComposition({
6
+ name: 'opensearch-helm-repository',
7
+ kind: 'OpenSearchHelmRepository',
8
+ spec: OpenSearchHelmRepositorySingletonSpecSchema,
9
+ status: OpenSearchHelmRepositorySingletonStatusSchema,
10
+ }, (spec) => {
11
+ const repository = openSearchOperatorHelmRepository({
12
+ name: spec.name,
13
+ namespace: spec.namespace,
14
+ url: spec.url,
15
+ id: 'repository',
16
+ });
17
+ return {
18
+ ready: Cel.expr(repository.status.conditions, '.exists(c, c.type == "Ready" && c.status == "True")'),
19
+ };
20
+ });
21
+ //# sourceMappingURL=repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../src/factories/opensearch/compositions/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EACL,2CAA2C,EAC3C,6CAA6C,GAC9C,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,iCAAiC,GAAG,qBAAqB,CACpE;IACE,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,2CAA2C;IACjD,MAAM,EAAE,6CAA6C;CACtD,EACD,CAAC,IAAI,EAAE,EAAE;IACP,MAAM,UAAU,GAAG,gCAAgC,CAAC;QAClD,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,EAAE,EAAE,YAAY;KACjB,CAAC,CAAC;IACH,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,2 @@
1
+ export declare const DEFAULT_OPENSEARCH_OPERATOR_NAMESPACE = "opensearch-operator-system";
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/factories/opensearch/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qCAAqC,+BACpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const DEFAULT_OPENSEARCH_OPERATOR_NAMESPACE = 'opensearch-operator-system';
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/factories/opensearch/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qCAAqC,GAChD,4BAA4B,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Official OpenSearch Kubernetes operator integration for TypeKro.
3
+ *
4
+ * The operator bootstrap owns the cluster-scoped controller and CRDs. Cluster
5
+ * compositions own only their declared namespace, OpenSearchCluster,
6
+ * certificate, and network-policy resources.
7
+ */
8
+ export * from './compositions/index.js';
9
+ export * from './constants.js';
10
+ export * from './resources/index.js';
11
+ export * from './types.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/opensearch/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Official OpenSearch Kubernetes operator integration for TypeKro.
3
+ *
4
+ * The operator bootstrap owns the cluster-scoped controller and CRDs. Cluster
5
+ * compositions own only their declared namespace, OpenSearchCluster,
6
+ * certificate, and network-policy resources.
7
+ */
8
+ export * from './compositions/index.js';
9
+ export * from './constants.js';
10
+ export * from './resources/index.js';
11
+ export * from './types.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/opensearch/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Composable, Enhanced, ResourceStatus } from '../../../core/types/index.js';
2
+ import type { OpenSearchClusterObservedStatus, OpenSearchClusterResourceConfig, OpenSearchClusterResourceSpec } from '../types.js';
3
+ export declare const OPENSEARCH_HTTP_PORT = 9200;
4
+ export declare function openSearchClusterReadinessEvaluator(liveResource: unknown): ResourceStatus;
5
+ export declare function openSearchClusterResource(config: Composable<OpenSearchClusterResourceConfig>): Enhanced<OpenSearchClusterResourceSpec, OpenSearchClusterObservedStatus>;
6
+ //# sourceMappingURL=cluster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../../../src/factories/opensearch/resources/cluster.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEzF,OAAO,KAAK,EACV,+BAA+B,EAC/B,+BAA+B,EAC/B,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,wBAAgB,mCAAmC,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CAmDzF;AAqHD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,UAAU,CAAC,+BAA+B,CAAC,GAClD,QAAQ,CAAC,6BAA6B,EAAE,+BAA+B,CAAC,CA8B1E"}