@highstate/library 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +560 -0
- package/dist/index.mjs +849 -0
- package/package.json +3 -3
package/dist/index.mjs
ADDED
@@ -0,0 +1,849 @@
|
|
1
|
+
import { defineEntity, defineUnit, text } from '@highstate/contract';
|
2
|
+
import { Type } from '@sinclair/typebox';
|
3
|
+
|
4
|
+
const keyTypeSchema = Type.Union([
|
5
|
+
//
|
6
|
+
Type.Literal("rsa"),
|
7
|
+
Type.Literal("ed25519")
|
8
|
+
]);
|
9
|
+
const keyPairEntity = defineEntity({
|
10
|
+
type: "ssh.key-pair",
|
11
|
+
sensitive: true,
|
12
|
+
schema: Type.Object({
|
13
|
+
type: keyTypeSchema,
|
14
|
+
privateKey: Type.String(),
|
15
|
+
publicKey: Type.String()
|
16
|
+
})
|
17
|
+
});
|
18
|
+
const publicKeyEntity = defineEntity({
|
19
|
+
type: "ssh.public-key",
|
20
|
+
schema: Type.Object({
|
21
|
+
publicKey: Type.String()
|
22
|
+
})
|
23
|
+
});
|
24
|
+
const credentialsSchema = Type.Object({
|
25
|
+
endpoint: Type.Optional(Type.String()),
|
26
|
+
user: Type.Optional(Type.String()),
|
27
|
+
port: Type.Optional(Type.Number()),
|
28
|
+
password: Type.Optional(Type.String()),
|
29
|
+
privateKey: keyPairEntity.schema
|
30
|
+
});
|
31
|
+
const keyPair = defineUnit({
|
32
|
+
type: "ssh.key-pair",
|
33
|
+
outputs: {
|
34
|
+
keyPair: keyPairEntity
|
35
|
+
},
|
36
|
+
meta: {
|
37
|
+
displayName: "SSH Key Pair",
|
38
|
+
description: "Generates a new ED25519 SSH key pair.",
|
39
|
+
category: "ssh",
|
40
|
+
primaryIcon: "charm:key",
|
41
|
+
primaryIconColor: "#ffffff",
|
42
|
+
secondaryIcon: "mdi:lock",
|
43
|
+
secondaryIconColor: "#ffffff"
|
44
|
+
},
|
45
|
+
source: {
|
46
|
+
type: "npm",
|
47
|
+
package: "@highstate/ssh"
|
48
|
+
}
|
49
|
+
});
|
50
|
+
const existingKeyPair = defineUnit({
|
51
|
+
type: "ssh.existing-key-pair",
|
52
|
+
args: {
|
53
|
+
type: {
|
54
|
+
schema: keyTypeSchema,
|
55
|
+
description: "The type of the key pair."
|
56
|
+
}
|
57
|
+
},
|
58
|
+
secrets: {
|
59
|
+
privateKey: Type.String()
|
60
|
+
},
|
61
|
+
outputs: {
|
62
|
+
keyPair: keyPairEntity
|
63
|
+
},
|
64
|
+
meta: {
|
65
|
+
displayName: "SSH Existing Key Pair",
|
66
|
+
description: "Uses an existing SSH key pair.",
|
67
|
+
category: "ssh",
|
68
|
+
primaryIcon: "charm:key",
|
69
|
+
primaryIconColor: "#ffffff",
|
70
|
+
secondaryIcon: "mdi:lock",
|
71
|
+
secondaryIconColor: "#ffffff"
|
72
|
+
},
|
73
|
+
source: {
|
74
|
+
type: "npm",
|
75
|
+
package: "@highstate/ssh"
|
76
|
+
}
|
77
|
+
});
|
78
|
+
const existingPublicKey = defineUnit({
|
79
|
+
type: "ssh.existing-public-key",
|
80
|
+
args: {
|
81
|
+
type: {
|
82
|
+
schema: keyTypeSchema,
|
83
|
+
description: "The type of the key pair."
|
84
|
+
},
|
85
|
+
publicKey: {
|
86
|
+
schema: Type.String(),
|
87
|
+
description: "The public key in OpenSSH format."
|
88
|
+
}
|
89
|
+
},
|
90
|
+
outputs: {
|
91
|
+
publicKey: publicKeyEntity
|
92
|
+
},
|
93
|
+
meta: {
|
94
|
+
displayName: "SSH Existing Public Key",
|
95
|
+
description: "Uses an existing SSH public key.",
|
96
|
+
category: "ssh",
|
97
|
+
primaryIcon: "charm:key",
|
98
|
+
primaryIconColor: "#ffffff",
|
99
|
+
secondaryIcon: "mdi:public",
|
100
|
+
secondaryIconColor: "#ffffff"
|
101
|
+
},
|
102
|
+
source: {
|
103
|
+
type: "npm",
|
104
|
+
package: "@highstate/ssh"
|
105
|
+
}
|
106
|
+
});
|
107
|
+
|
108
|
+
var ssh = /*#__PURE__*/Object.freeze({
|
109
|
+
__proto__: null,
|
110
|
+
credentialsSchema: credentialsSchema,
|
111
|
+
existingKeyPair: existingKeyPair,
|
112
|
+
existingPublicKey: existingPublicKey,
|
113
|
+
keyPair: keyPair,
|
114
|
+
keyPairEntity: keyPairEntity,
|
115
|
+
keyTypeSchema: keyTypeSchema,
|
116
|
+
publicKeyEntity: publicKeyEntity
|
117
|
+
});
|
118
|
+
|
119
|
+
const serverEntity = defineEntity({
|
120
|
+
type: "common.server",
|
121
|
+
schema: Type.Object({
|
122
|
+
endpoint: Type.String(),
|
123
|
+
sshCredentials: credentialsSchema
|
124
|
+
}),
|
125
|
+
meta: {
|
126
|
+
color: "#009688"
|
127
|
+
}
|
128
|
+
});
|
129
|
+
const gatewayEntity = defineEntity({
|
130
|
+
type: "common.gateway",
|
131
|
+
schema: Type.Object({
|
132
|
+
endpoint: Type.String()
|
133
|
+
}),
|
134
|
+
meta: {
|
135
|
+
color: "#4CAF50"
|
136
|
+
}
|
137
|
+
});
|
138
|
+
const tlsIssuerEntity = defineEntity({
|
139
|
+
type: "common.tls-issuer",
|
140
|
+
schema: Type.Object({
|
141
|
+
endpoint: Type.String()
|
142
|
+
}),
|
143
|
+
meta: {
|
144
|
+
color: "#f06292"
|
145
|
+
}
|
146
|
+
});
|
147
|
+
const dnsProviderEntity = defineEntity({
|
148
|
+
type: "common.dns-provider",
|
149
|
+
schema: Type.Object({
|
150
|
+
endpoint: Type.String()
|
151
|
+
}),
|
152
|
+
meta: {
|
153
|
+
color: "#FF5722"
|
154
|
+
}
|
155
|
+
});
|
156
|
+
const accessPointEntity = defineEntity({
|
157
|
+
type: "common.access-point",
|
158
|
+
schema: Type.Object({
|
159
|
+
name: Type.String()
|
160
|
+
})
|
161
|
+
});
|
162
|
+
const accessPoint = defineUnit({
|
163
|
+
type: "common.access-point",
|
164
|
+
inputs: {
|
165
|
+
gateway: gatewayEntity,
|
166
|
+
tlsIssuer: tlsIssuerEntity,
|
167
|
+
dnsProvider: dnsProviderEntity
|
168
|
+
},
|
169
|
+
outputs: {
|
170
|
+
accessPoint: accessPointEntity
|
171
|
+
},
|
172
|
+
meta: {
|
173
|
+
displayName: "Access Point",
|
174
|
+
description: "An access point which can be used to connect to services.",
|
175
|
+
primaryIcon: "mdi:access-point"
|
176
|
+
},
|
177
|
+
source: {
|
178
|
+
type: "npm",
|
179
|
+
package: "@highstate/common"
|
180
|
+
}
|
181
|
+
});
|
182
|
+
|
183
|
+
var common = /*#__PURE__*/Object.freeze({
|
184
|
+
__proto__: null,
|
185
|
+
accessPoint: accessPoint,
|
186
|
+
accessPointEntity: accessPointEntity,
|
187
|
+
dnsProviderEntity: dnsProviderEntity,
|
188
|
+
gatewayEntity: gatewayEntity,
|
189
|
+
serverEntity: serverEntity,
|
190
|
+
tlsIssuerEntity: tlsIssuerEntity
|
191
|
+
});
|
192
|
+
|
193
|
+
const clusterEntity$1 = defineEntity({
|
194
|
+
type: "proxmox.cluster",
|
195
|
+
schema: Type.Object({
|
196
|
+
endpoint: Type.String(),
|
197
|
+
insecure: Type.Optional(Type.Boolean()),
|
198
|
+
username: Type.Optional(Type.String()),
|
199
|
+
defaultNodeName: Type.String(),
|
200
|
+
defaultDatastoreId: Type.Optional(Type.String()),
|
201
|
+
password: Type.Optional(Type.String()),
|
202
|
+
apiToken: Type.Optional(Type.String())
|
203
|
+
}),
|
204
|
+
meta: {
|
205
|
+
color: "#e56901"
|
206
|
+
}
|
207
|
+
});
|
208
|
+
const imageEntity = defineEntity({
|
209
|
+
type: "proxmox.image",
|
210
|
+
schema: Type.Object({
|
211
|
+
id: Type.String()
|
212
|
+
}),
|
213
|
+
meta: {
|
214
|
+
color: "#e56901"
|
215
|
+
}
|
216
|
+
});
|
217
|
+
const connection$1 = defineUnit({
|
218
|
+
type: "proxmox.connection",
|
219
|
+
args: {
|
220
|
+
endpoint: Type.String(),
|
221
|
+
insecure: Type.Optional(Type.Boolean()),
|
222
|
+
username: Type.Optional(Type.String()),
|
223
|
+
defaultNodeName: Type.String(),
|
224
|
+
defaultDatastoreId: Type.Optional(Type.String())
|
225
|
+
},
|
226
|
+
secrets: {
|
227
|
+
password: Type.Optional(Type.String()),
|
228
|
+
apiToken: Type.Optional(Type.String())
|
229
|
+
},
|
230
|
+
outputs: {
|
231
|
+
proxmoxCluster: clusterEntity$1
|
232
|
+
},
|
233
|
+
meta: {
|
234
|
+
displayName: "Proxmox Connection",
|
235
|
+
description: "The connection to an existing Proxmox cluster.",
|
236
|
+
category: "Proxmox",
|
237
|
+
primaryIcon: "simple-icons:proxmox",
|
238
|
+
primaryIconColor: "#e56901",
|
239
|
+
secondaryIcon: "codicon:vm"
|
240
|
+
},
|
241
|
+
source: {
|
242
|
+
type: "npm",
|
243
|
+
package: "@highstate/proxmox"
|
244
|
+
}
|
245
|
+
});
|
246
|
+
const image = defineUnit({
|
247
|
+
type: "proxmox.image",
|
248
|
+
args: {
|
249
|
+
url: Type.String(),
|
250
|
+
nodeName: Type.Optional(Type.String()),
|
251
|
+
sha256: Type.Optional(Type.String()),
|
252
|
+
datastoreId: Type.Optional(Type.String())
|
253
|
+
},
|
254
|
+
inputs: {
|
255
|
+
proxmoxCluster: clusterEntity$1
|
256
|
+
},
|
257
|
+
outputs: {
|
258
|
+
image: imageEntity
|
259
|
+
},
|
260
|
+
meta: {
|
261
|
+
displayName: "Proxmox Image",
|
262
|
+
description: "The image to upload to a Proxmox cluster.",
|
263
|
+
category: "Proxmox",
|
264
|
+
primaryIcon: "simple-icons:proxmox",
|
265
|
+
primaryIconColor: "#e56901",
|
266
|
+
secondaryIcon: "mage:compact-disk-fill"
|
267
|
+
},
|
268
|
+
source: {
|
269
|
+
type: "npm",
|
270
|
+
package: "@highstate/proxmox"
|
271
|
+
}
|
272
|
+
});
|
273
|
+
const existingImage = defineUnit({
|
274
|
+
type: "proxmox.existing-image",
|
275
|
+
args: {
|
276
|
+
id: Type.String()
|
277
|
+
},
|
278
|
+
outputs: {
|
279
|
+
image: imageEntity
|
280
|
+
},
|
281
|
+
meta: {
|
282
|
+
displayName: "Proxmox Existing Image",
|
283
|
+
description: "The existing image on a Proxmox cluster.",
|
284
|
+
category: "Proxmox",
|
285
|
+
primaryIcon: "simple-icons:proxmox",
|
286
|
+
primaryIconColor: "#e56901",
|
287
|
+
secondaryIcon: "mage:compact-disk-fill"
|
288
|
+
},
|
289
|
+
source: {
|
290
|
+
type: "npm",
|
291
|
+
package: "@highstate/proxmox"
|
292
|
+
}
|
293
|
+
});
|
294
|
+
const virtualMachine = defineUnit({
|
295
|
+
type: "proxmox.virtual-machine",
|
296
|
+
args: {
|
297
|
+
nodeName: Type.Optional(Type.String()),
|
298
|
+
cores: Type.Optional(Type.Number()),
|
299
|
+
sockets: Type.Optional(Type.Number()),
|
300
|
+
memory: Type.Optional(Type.Number()),
|
301
|
+
ipv4: Type.Optional(Type.String()),
|
302
|
+
ipv4Gateway: Type.Optional(Type.String()),
|
303
|
+
dns: Type.Optional(Type.Array(Type.String())),
|
304
|
+
datastoreId: Type.Optional(Type.String()),
|
305
|
+
diskSize: Type.Optional(Type.Number()),
|
306
|
+
bridge: Type.Optional(Type.String())
|
307
|
+
},
|
308
|
+
inputs: {
|
309
|
+
proxmoxCluster: clusterEntity$1,
|
310
|
+
image: imageEntity,
|
311
|
+
sshPublicKey: {
|
312
|
+
entity: publicKeyEntity,
|
313
|
+
required: false
|
314
|
+
},
|
315
|
+
sshKeyPair: {
|
316
|
+
entity: keyPairEntity,
|
317
|
+
required: false
|
318
|
+
}
|
319
|
+
},
|
320
|
+
outputs: {
|
321
|
+
server: serverEntity
|
322
|
+
},
|
323
|
+
meta: {
|
324
|
+
displayName: "Proxmox Virtual Machine",
|
325
|
+
description: "The virtual machine on a Proxmox cluster.",
|
326
|
+
category: "Proxmox",
|
327
|
+
primaryIcon: "simple-icons:proxmox",
|
328
|
+
primaryIconColor: "#e56901",
|
329
|
+
secondaryIcon: "codicon:vm"
|
330
|
+
},
|
331
|
+
source: {
|
332
|
+
type: "npm",
|
333
|
+
package: "@highstate/proxmox"
|
334
|
+
}
|
335
|
+
});
|
336
|
+
|
337
|
+
var proxmox = /*#__PURE__*/Object.freeze({
|
338
|
+
__proto__: null,
|
339
|
+
clusterEntity: clusterEntity$1,
|
340
|
+
connection: connection$1,
|
341
|
+
existingImage: existingImage,
|
342
|
+
image: image,
|
343
|
+
imageEntity: imageEntity,
|
344
|
+
virtualMachine: virtualMachine
|
345
|
+
});
|
346
|
+
|
347
|
+
const clusterEntity = defineEntity({
|
348
|
+
type: "k8s.cluster",
|
349
|
+
schema: Type.Object({
|
350
|
+
kubeconfig: Type.String()
|
351
|
+
}),
|
352
|
+
meta: {
|
353
|
+
color: "#2196F3"
|
354
|
+
}
|
355
|
+
});
|
356
|
+
const routeEntity = defineEntity({
|
357
|
+
type: "k8s.route",
|
358
|
+
schema: Type.Object({
|
359
|
+
someField: Type.String()
|
360
|
+
}),
|
361
|
+
meta: {
|
362
|
+
color: "#F44336"
|
363
|
+
}
|
364
|
+
});
|
365
|
+
const traefikGateway = defineUnit({
|
366
|
+
type: "k8s.traefik-gateway",
|
367
|
+
inputs: {
|
368
|
+
k8sCluster: clusterEntity,
|
369
|
+
ingress: routeEntity
|
370
|
+
},
|
371
|
+
outputs: {
|
372
|
+
gateway: gatewayEntity
|
373
|
+
},
|
374
|
+
meta: {
|
375
|
+
displayName: "Traefik Gateway",
|
376
|
+
description: "A Traefik gateway for routing traffic to services.",
|
377
|
+
primaryIcon: "simple-icons:traefikproxy"
|
378
|
+
},
|
379
|
+
source: {
|
380
|
+
type: "npm",
|
381
|
+
package: "@highstate/k8s"
|
382
|
+
}
|
383
|
+
});
|
384
|
+
const certManager = defineUnit({
|
385
|
+
type: "k8s.cert-manager",
|
386
|
+
inputs: {
|
387
|
+
k8sCluster: clusterEntity,
|
388
|
+
dnsProvider: dnsProviderEntity
|
389
|
+
},
|
390
|
+
outputs: {
|
391
|
+
tlsIssuer: tlsIssuerEntity
|
392
|
+
},
|
393
|
+
meta: {
|
394
|
+
displayName: "Cert Manager",
|
395
|
+
description: "A certificate manager for managing TLS certificates.",
|
396
|
+
primaryIcon: "simple-icons:letsencrypt"
|
397
|
+
},
|
398
|
+
source: {
|
399
|
+
type: "npm",
|
400
|
+
package: "@highstate/k8s"
|
401
|
+
}
|
402
|
+
});
|
403
|
+
const coredns = defineUnit({
|
404
|
+
type: "k8s.coredns",
|
405
|
+
inputs: {
|
406
|
+
k8sCluster: clusterEntity
|
407
|
+
},
|
408
|
+
outputs: {
|
409
|
+
dnsProvider: dnsProviderEntity
|
410
|
+
},
|
411
|
+
meta: {
|
412
|
+
displayName: "CoreDNS",
|
413
|
+
description: "A separate CoreDNS instance for custom DNS records.",
|
414
|
+
primaryIcon: "mdi:dns"
|
415
|
+
},
|
416
|
+
source: {
|
417
|
+
type: "npm",
|
418
|
+
package: "@highstate/k8s"
|
419
|
+
}
|
420
|
+
});
|
421
|
+
|
422
|
+
var k8s = /*#__PURE__*/Object.freeze({
|
423
|
+
__proto__: null,
|
424
|
+
certManager: certManager,
|
425
|
+
clusterEntity: clusterEntity,
|
426
|
+
coredns: coredns,
|
427
|
+
routeEntity: routeEntity,
|
428
|
+
traefikGateway: traefikGateway
|
429
|
+
});
|
430
|
+
|
431
|
+
const cluster = defineUnit({
|
432
|
+
type: "talos.cluster",
|
433
|
+
args: {
|
434
|
+
scheduleOnMasters: {
|
435
|
+
schema: Type.Optional(Type.Boolean()),
|
436
|
+
description: text`
|
437
|
+
Allow scheduling workloads on the master nodes.
|
438
|
+
By default, "true" if no worker nodes are provided.
|
439
|
+
`
|
440
|
+
}
|
441
|
+
},
|
442
|
+
inputs: {
|
443
|
+
masters: {
|
444
|
+
entity: serverEntity,
|
445
|
+
multiple: true
|
446
|
+
},
|
447
|
+
workers: {
|
448
|
+
entity: serverEntity,
|
449
|
+
multiple: true,
|
450
|
+
required: false
|
451
|
+
}
|
452
|
+
},
|
453
|
+
outputs: {
|
454
|
+
k8sCluster: clusterEntity,
|
455
|
+
egress: routeEntity
|
456
|
+
},
|
457
|
+
meta: {
|
458
|
+
displayName: "Talos Cluster",
|
459
|
+
description: "A Kubernetes cluster managed by Talos.",
|
460
|
+
category: "Talos",
|
461
|
+
color: "#2d2d2d",
|
462
|
+
primaryIcon: "simple-icons:talos",
|
463
|
+
secondaryIcon: "devicon:kubernetes"
|
464
|
+
},
|
465
|
+
source: {
|
466
|
+
type: "npm",
|
467
|
+
package: "@highstate/talos"
|
468
|
+
}
|
469
|
+
});
|
470
|
+
|
471
|
+
var talos = /*#__PURE__*/Object.freeze({
|
472
|
+
__proto__: null,
|
473
|
+
cluster: cluster
|
474
|
+
});
|
475
|
+
|
476
|
+
const backendSchema = Type.Union([Type.Literal("wireguard"), Type.Literal("amneziawg")], {
|
477
|
+
default: "wireguard"
|
478
|
+
});
|
479
|
+
const networkEntity = defineEntity({
|
480
|
+
type: "wireguard.network",
|
481
|
+
schema: Type.Object({
|
482
|
+
backend: Type.Optional(backendSchema),
|
483
|
+
preSharedKey: Type.Optional(Type.String())
|
484
|
+
})
|
485
|
+
});
|
486
|
+
const identityEntity = defineEntity({
|
487
|
+
type: "wireguard.identity",
|
488
|
+
schema: Type.Object({
|
489
|
+
network: Type.String(),
|
490
|
+
address: Type.String(),
|
491
|
+
privateKey: Type.String()
|
492
|
+
}),
|
493
|
+
meta: {
|
494
|
+
color: "#F44336"
|
495
|
+
}
|
496
|
+
});
|
497
|
+
const peerEntity = defineEntity({
|
498
|
+
type: "wireguard.peer",
|
499
|
+
schema: Type.Object({
|
500
|
+
network: Type.String(),
|
501
|
+
address: Type.String(),
|
502
|
+
publicKey: Type.String(),
|
503
|
+
endpoint: Type.Optional(Type.String())
|
504
|
+
}),
|
505
|
+
meta: {
|
506
|
+
color: "#673AB7"
|
507
|
+
}
|
508
|
+
});
|
509
|
+
const k8sNodeEntity = defineEntity({
|
510
|
+
type: "wireguard.node",
|
511
|
+
schema: Type.Object({
|
512
|
+
network: Type.String(),
|
513
|
+
address: Type.String(),
|
514
|
+
allowedIps: Type.Array(Type.String()),
|
515
|
+
endpoint: Type.Optional(Type.String()),
|
516
|
+
peers: Type.Array(Type.String())
|
517
|
+
})
|
518
|
+
});
|
519
|
+
const network = defineUnit({
|
520
|
+
type: "wireguard.network",
|
521
|
+
args: {
|
522
|
+
backend: Type.Optional(backendSchema),
|
523
|
+
preSharedKey: Type.Optional(Type.String())
|
524
|
+
},
|
525
|
+
outputs: {
|
526
|
+
network: networkEntity
|
527
|
+
},
|
528
|
+
meta: {
|
529
|
+
description: "The WireGuard network with some shared configuration.",
|
530
|
+
primaryIcon: "simple-icons:wireguard",
|
531
|
+
primaryIconColor: "#88171a",
|
532
|
+
secondaryIcon: "mdi:local-area-network-connect"
|
533
|
+
},
|
534
|
+
source: {
|
535
|
+
type: "npm",
|
536
|
+
package: "@highstate/wireguard"
|
537
|
+
}
|
538
|
+
});
|
539
|
+
const identity = defineUnit({
|
540
|
+
type: "wireguard.identity",
|
541
|
+
args: {
|
542
|
+
address: Type.String(),
|
543
|
+
endpoint: Type.Optional(Type.String())
|
544
|
+
},
|
545
|
+
inputs: {
|
546
|
+
network: networkEntity
|
547
|
+
},
|
548
|
+
outputs: {
|
549
|
+
identity: identityEntity,
|
550
|
+
peer: peerEntity
|
551
|
+
},
|
552
|
+
meta: {
|
553
|
+
description: "The WireGuard identity with the public key.",
|
554
|
+
primaryIcon: "simple-icons:wireguard",
|
555
|
+
primaryIconColor: "#88171a",
|
556
|
+
secondaryIcon: "mdi:account"
|
557
|
+
},
|
558
|
+
source: {
|
559
|
+
type: "npm",
|
560
|
+
package: "@highstate/wireguard"
|
561
|
+
}
|
562
|
+
});
|
563
|
+
const node = defineUnit({
|
564
|
+
type: "wireguard.node-k8s",
|
565
|
+
args: {
|
566
|
+
allowedIps: Type.Optional(Type.Array(Type.String())),
|
567
|
+
listenPort: Type.Optional(Type.Number()),
|
568
|
+
externalIp: Type.Optional(Type.String()),
|
569
|
+
serviceType: Type.Optional(
|
570
|
+
Type.Union([
|
571
|
+
Type.Literal("NodePort"),
|
572
|
+
Type.Literal("LoadBalancer"),
|
573
|
+
Type.Literal("ClusterIP")
|
574
|
+
])
|
575
|
+
)
|
576
|
+
},
|
577
|
+
inputs: {
|
578
|
+
identity: identityEntity,
|
579
|
+
k8sCluster: {
|
580
|
+
entity: clusterEntity,
|
581
|
+
required: false
|
582
|
+
},
|
583
|
+
peers: {
|
584
|
+
entity: peerEntity,
|
585
|
+
multiple: true,
|
586
|
+
required: false
|
587
|
+
}
|
588
|
+
},
|
589
|
+
outputs: {
|
590
|
+
egress: routeEntity
|
591
|
+
},
|
592
|
+
meta: {
|
593
|
+
description: "The WireGuard node running on the Kubernetes.",
|
594
|
+
primaryIcon: "simple-icons:wireguard",
|
595
|
+
primaryIconColor: "#88171a",
|
596
|
+
secondaryIcon: "mdi:server"
|
597
|
+
},
|
598
|
+
source: {
|
599
|
+
type: "npm",
|
600
|
+
package: "@highstate/wireguard"
|
601
|
+
}
|
602
|
+
});
|
603
|
+
const config = defineUnit({
|
604
|
+
type: "wireguard.config",
|
605
|
+
inputs: {
|
606
|
+
identity: identityEntity,
|
607
|
+
peers: {
|
608
|
+
entity: peerEntity,
|
609
|
+
multiple: true,
|
610
|
+
required: false
|
611
|
+
}
|
612
|
+
},
|
613
|
+
meta: {
|
614
|
+
description: "Just the WireGuard configuration for the identity and peers.",
|
615
|
+
primaryIcon: "simple-icons:wireguard",
|
616
|
+
primaryIconColor: "#88171a",
|
617
|
+
secondaryIcon: "mdi:settings"
|
618
|
+
},
|
619
|
+
source: {
|
620
|
+
type: "npm",
|
621
|
+
package: "@highstate/wireguard"
|
622
|
+
}
|
623
|
+
});
|
624
|
+
|
625
|
+
var wireguard = /*#__PURE__*/Object.freeze({
|
626
|
+
__proto__: null,
|
627
|
+
backendSchema: backendSchema,
|
628
|
+
config: config,
|
629
|
+
identity: identity,
|
630
|
+
identityEntity: identityEntity,
|
631
|
+
k8sNodeEntity: k8sNodeEntity,
|
632
|
+
network: network,
|
633
|
+
networkEntity: networkEntity,
|
634
|
+
node: node,
|
635
|
+
peerEntity: peerEntity
|
636
|
+
});
|
637
|
+
|
638
|
+
const mariadbEntity = defineEntity({
|
639
|
+
type: "mariadb",
|
640
|
+
schema: Type.Object({
|
641
|
+
rootPassword: Type.String(),
|
642
|
+
databases: Type.Array(Type.String())
|
643
|
+
}),
|
644
|
+
meta: {
|
645
|
+
color: "#f06292"
|
646
|
+
}
|
647
|
+
});
|
648
|
+
const postgresqlEntity = defineEntity({
|
649
|
+
type: "postgresql",
|
650
|
+
schema: Type.Object({
|
651
|
+
rootPassword: Type.String(),
|
652
|
+
databases: Type.Array(Type.String())
|
653
|
+
}),
|
654
|
+
meta: {
|
655
|
+
color: "#336791"
|
656
|
+
}
|
657
|
+
});
|
658
|
+
const mariadb = defineUnit({
|
659
|
+
type: "apps.mariadb",
|
660
|
+
args: {
|
661
|
+
rootPassword: Type.String(),
|
662
|
+
databases: Type.Array(Type.String())
|
663
|
+
},
|
664
|
+
inputs: {
|
665
|
+
k8sCluster: clusterEntity
|
666
|
+
},
|
667
|
+
outputs: {
|
668
|
+
mariadb: {
|
669
|
+
entity: mariadbEntity,
|
670
|
+
displayName: "MariaDB"
|
671
|
+
}
|
672
|
+
},
|
673
|
+
meta: {
|
674
|
+
displayName: "MariaDB",
|
675
|
+
description: "The MariaDB database deployed on Kubernetes.",
|
676
|
+
primaryIcon: "simple-icons:mariadb",
|
677
|
+
secondaryIcon: "mdi:database"
|
678
|
+
},
|
679
|
+
source: {
|
680
|
+
type: "npm",
|
681
|
+
package: "@highstate/apps"
|
682
|
+
}
|
683
|
+
});
|
684
|
+
const postgresql = defineUnit({
|
685
|
+
type: "apps.postgresql",
|
686
|
+
args: {
|
687
|
+
rootPassword: Type.String(),
|
688
|
+
databases: Type.Array(Type.String())
|
689
|
+
},
|
690
|
+
inputs: {
|
691
|
+
k8sCluster: clusterEntity
|
692
|
+
},
|
693
|
+
outputs: {
|
694
|
+
postgresql: {
|
695
|
+
entity: postgresqlEntity,
|
696
|
+
displayName: "PostgreSQL"
|
697
|
+
}
|
698
|
+
},
|
699
|
+
meta: {
|
700
|
+
displayName: "PostgreSQL",
|
701
|
+
description: "The PostgreSQL database deployed on Kubernetes.",
|
702
|
+
primaryIcon: "simple-icons:postgresql",
|
703
|
+
secondaryIcon: "mdi:database"
|
704
|
+
},
|
705
|
+
source: {
|
706
|
+
type: "npm",
|
707
|
+
package: "@highstate/apps"
|
708
|
+
}
|
709
|
+
});
|
710
|
+
const vaultwarden = defineUnit({
|
711
|
+
type: "apps.vaultwarden",
|
712
|
+
args: {
|
713
|
+
domain: Type.String()
|
714
|
+
},
|
715
|
+
inputs: {
|
716
|
+
mariadb: {
|
717
|
+
entity: mariadbEntity,
|
718
|
+
displayName: "MariaDB"
|
719
|
+
},
|
720
|
+
accessPoint: accessPointEntity
|
721
|
+
},
|
722
|
+
meta: {
|
723
|
+
displayName: "Vaultwarden",
|
724
|
+
description: "The Vaultwarden password manager deployed on Kubernetes.",
|
725
|
+
primaryIcon: "simple-icons:vaultwarden"
|
726
|
+
},
|
727
|
+
source: {
|
728
|
+
type: "npm",
|
729
|
+
package: "@highstate/apps"
|
730
|
+
}
|
731
|
+
});
|
732
|
+
const gitea = defineUnit({
|
733
|
+
type: "apps.gitea",
|
734
|
+
args: {
|
735
|
+
domain: Type.String()
|
736
|
+
},
|
737
|
+
inputs: {
|
738
|
+
mariadb: {
|
739
|
+
entity: mariadbEntity,
|
740
|
+
displayName: "MariaDB"
|
741
|
+
},
|
742
|
+
accessPoint: accessPointEntity
|
743
|
+
},
|
744
|
+
meta: {
|
745
|
+
displayName: "Gitea",
|
746
|
+
description: "The Gitea Git server deployed on Kubernetes.",
|
747
|
+
primaryIcon: "simple-icons:gitea"
|
748
|
+
},
|
749
|
+
source: {
|
750
|
+
type: "npm",
|
751
|
+
package: "@highstate/apps"
|
752
|
+
}
|
753
|
+
});
|
754
|
+
const zitadel = defineUnit({
|
755
|
+
type: "apps.zitadel",
|
756
|
+
args: {
|
757
|
+
domain: Type.String()
|
758
|
+
},
|
759
|
+
inputs: {
|
760
|
+
postgresql: {
|
761
|
+
entity: postgresqlEntity,
|
762
|
+
displayName: "PostgreSQL"
|
763
|
+
},
|
764
|
+
accessPoint: accessPointEntity
|
765
|
+
},
|
766
|
+
meta: {
|
767
|
+
displayName: "Zitadel",
|
768
|
+
description: "The Zitadel IAM deployed on Kubernetes.",
|
769
|
+
primaryIcon: "hugeicons:access"
|
770
|
+
},
|
771
|
+
source: {
|
772
|
+
type: "npm",
|
773
|
+
package: "@highstate/apps"
|
774
|
+
}
|
775
|
+
});
|
776
|
+
|
777
|
+
var apps = /*#__PURE__*/Object.freeze({
|
778
|
+
__proto__: null,
|
779
|
+
gitea: gitea,
|
780
|
+
mariadb: mariadb,
|
781
|
+
mariadbEntity: mariadbEntity,
|
782
|
+
postgresql: postgresql,
|
783
|
+
postgresqlEntity: postgresqlEntity,
|
784
|
+
vaultwarden: vaultwarden,
|
785
|
+
zitadel: zitadel
|
786
|
+
});
|
787
|
+
|
788
|
+
const connectionEntity = defineEntity({
|
789
|
+
type: "cloudflare.connection",
|
790
|
+
schema: Type.Object({
|
791
|
+
apiKey: Type.String()
|
792
|
+
}),
|
793
|
+
meta: {
|
794
|
+
color: "#f38020"
|
795
|
+
}
|
796
|
+
});
|
797
|
+
const connection = defineUnit({
|
798
|
+
type: "cloudflare.connection",
|
799
|
+
args: {
|
800
|
+
apiKey: {
|
801
|
+
schema: Type.String(),
|
802
|
+
secret: true
|
803
|
+
}
|
804
|
+
},
|
805
|
+
outputs: {
|
806
|
+
connection: connectionEntity
|
807
|
+
},
|
808
|
+
meta: {
|
809
|
+
displayName: "Cloudflare Connection",
|
810
|
+
description: "Creates a new Cloudflare connection.",
|
811
|
+
primaryIcon: "simple-icons:cloudflare"
|
812
|
+
},
|
813
|
+
source: {
|
814
|
+
type: "npm",
|
815
|
+
package: "@highstate/cloudflare"
|
816
|
+
}
|
817
|
+
});
|
818
|
+
const zone = defineUnit({
|
819
|
+
type: "cloudflare.zone",
|
820
|
+
args: {
|
821
|
+
zoneId: Type.String(),
|
822
|
+
domain: Type.String()
|
823
|
+
},
|
824
|
+
inputs: {
|
825
|
+
connection: connectionEntity
|
826
|
+
},
|
827
|
+
outputs: {
|
828
|
+
dnsProvider: dnsProviderEntity
|
829
|
+
},
|
830
|
+
meta: {
|
831
|
+
displayName: "Cloudflare Zone",
|
832
|
+
description: "Creates a new Cloudflare zone.",
|
833
|
+
primaryIcon: "simple-icons:cloudflare",
|
834
|
+
secondaryIcon: "material-symbols:domain"
|
835
|
+
},
|
836
|
+
source: {
|
837
|
+
type: "npm",
|
838
|
+
package: "@highstate/cloudflare"
|
839
|
+
}
|
840
|
+
});
|
841
|
+
|
842
|
+
var cloudflare = /*#__PURE__*/Object.freeze({
|
843
|
+
__proto__: null,
|
844
|
+
connection: connection,
|
845
|
+
connectionEntity: connectionEntity,
|
846
|
+
zone: zone
|
847
|
+
});
|
848
|
+
|
849
|
+
export { apps, cloudflare, common, k8s, proxmox, ssh, talos, wireguard };
|