@highstate/library 0.9.16 → 0.9.18
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/highstate.library.msgpack +0 -0
- package/dist/index.js +727 -548
- package/dist/index.js.map +1 -1
- package/package.json +4 -5
- package/src/apps/code-server.ts +5 -5
- package/src/apps/deployment.ts +20 -20
- package/src/apps/dns.ts +12 -12
- package/src/apps/gitea.ts +2 -2
- package/src/apps/grocy.ts +2 -2
- package/src/apps/hubble.ts +2 -2
- package/src/apps/kubernetes-dashboard.ts +2 -2
- package/src/apps/mariadb.ts +10 -10
- package/src/apps/maybe.ts +5 -5
- package/src/apps/mongodb.ts +10 -10
- package/src/apps/network.ts +6 -6
- package/src/apps/postgresql.ts +10 -10
- package/src/apps/shared.ts +16 -17
- package/src/apps/syncthing.ts +6 -6
- package/src/apps/traefik.ts +4 -4
- package/src/apps/vaultwarden.ts +4 -4
- package/src/apps/zitadel.ts +2 -2
- package/src/cloudflare.ts +4 -4
- package/src/common.ts +24 -24
- package/src/distributions/ubuntu.ts +8 -8
- package/src/dns.ts +10 -10
- package/src/files.ts +53 -64
- package/src/git.ts +7 -7
- package/src/k3s.ts +9 -9
- package/src/k8s.ts +118 -119
- package/src/mullvad.ts +5 -5
- package/src/network.ts +44 -44
- package/src/nixos.ts +15 -69
- package/src/obfuscators/phantun.ts +4 -4
- package/src/obfuscators/shared.ts +9 -9
- package/src/proxmox.ts +179 -59
- package/src/restic.ts +14 -14
- package/src/sops.ts +4 -4
- package/src/ssh.ts +19 -19
- package/src/talos.ts +15 -15
- package/src/timeweb.ts +13 -13
- package/src/utils.ts +3 -3
- package/src/wireguard.ts +82 -71
package/src/apps/vaultwarden.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { defineUnit,
|
1
|
+
import { defineUnit, z } from "@highstate/contract"
|
2
2
|
import { createArgs, createInputs, createSource } from "./shared"
|
3
3
|
|
4
4
|
export const vaultwarden = defineUnit({
|
@@ -7,15 +7,15 @@ export const vaultwarden = defineUnit({
|
|
7
7
|
args: createArgs("vaultwarden", ["fqdn"]),
|
8
8
|
|
9
9
|
secrets: {
|
10
|
-
mariadbPassword:
|
10
|
+
mariadbPassword: z.string().optional(),
|
11
11
|
},
|
12
12
|
|
13
13
|
inputs: createInputs(["accessPoint", "mariadb"]),
|
14
14
|
|
15
15
|
meta: {
|
16
|
-
|
16
|
+
title: "Vaultwarden",
|
17
17
|
description: "The Vaultwarden password manager deployed on Kubernetes.",
|
18
|
-
|
18
|
+
icon: "simple-icons:vaultwarden",
|
19
19
|
category: "Security",
|
20
20
|
},
|
21
21
|
|
package/src/apps/zitadel.ts
CHANGED
@@ -9,9 +9,9 @@ export const zitadel = defineUnit({
|
|
9
9
|
inputs: createInputs(["accessPoint", "postgresql"]),
|
10
10
|
|
11
11
|
meta: {
|
12
|
-
|
12
|
+
title: "Zitadel",
|
13
13
|
description: "The Zitadel IAM deployed on Kubernetes.",
|
14
|
-
|
14
|
+
icon: "hugeicons:access",
|
15
15
|
},
|
16
16
|
|
17
17
|
source: {
|
package/src/cloudflare.ts
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
import { defineUnit,
|
1
|
+
import { defineUnit, z } from "@highstate/contract"
|
2
2
|
import { providerEntity } from "./dns"
|
3
3
|
|
4
4
|
export const connection = defineUnit({
|
5
5
|
type: "cloudflare.connection",
|
6
6
|
|
7
7
|
secrets: {
|
8
|
-
apiToken:
|
8
|
+
apiToken: z.string(),
|
9
9
|
},
|
10
10
|
|
11
11
|
outputs: {
|
@@ -13,9 +13,9 @@ export const connection = defineUnit({
|
|
13
13
|
},
|
14
14
|
|
15
15
|
meta: {
|
16
|
-
|
16
|
+
title: "Cloudflare Connection",
|
17
17
|
description: "Creates a new Cloudflare connection for one zone.",
|
18
|
-
|
18
|
+
icon: "simple-icons:cloudflare",
|
19
19
|
category: "Cloudflare",
|
20
20
|
},
|
21
21
|
|
package/src/common.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { defineEntity, defineUnit,
|
1
|
+
import { defineEntity, defineUnit, z } from "@highstate/contract"
|
2
2
|
import { credentialsSchema, keyPairEntity } from "./ssh"
|
3
3
|
import { l3EndpointEntity } from "./network"
|
4
4
|
import * as dns from "./dns"
|
@@ -7,10 +7,10 @@ import { arrayPatchModeSchema } from "./utils"
|
|
7
7
|
export const serverEntity = defineEntity({
|
8
8
|
type: "common.server",
|
9
9
|
|
10
|
-
schema:
|
11
|
-
hostname:
|
12
|
-
endpoints:
|
13
|
-
ssh:
|
10
|
+
schema: z.object({
|
11
|
+
hostname: z.string(),
|
12
|
+
endpoints: l3EndpointEntity.schema.array(),
|
13
|
+
ssh: credentialsSchema.optional(),
|
14
14
|
}),
|
15
15
|
|
16
16
|
meta: {
|
@@ -35,22 +35,22 @@ export const existingServer = defineUnit({
|
|
35
35
|
*
|
36
36
|
* Takes precedence over the `endpoint` input.
|
37
37
|
*/
|
38
|
-
endpoint:
|
38
|
+
endpoint: z.string().optional(),
|
39
39
|
|
40
40
|
/**
|
41
41
|
* The SSH user to use for connecting to the server.
|
42
42
|
*/
|
43
|
-
sshUser:
|
43
|
+
sshUser: z.string().default("root"),
|
44
44
|
|
45
45
|
/**
|
46
46
|
* The SSH port to use for connecting to the server.
|
47
47
|
*/
|
48
|
-
sshPort:
|
48
|
+
sshPort: z.number().default(22),
|
49
49
|
},
|
50
50
|
|
51
51
|
secrets: {
|
52
|
-
sshPassword:
|
53
|
-
sshPrivateKey:
|
52
|
+
sshPassword: z.string().optional(),
|
53
|
+
sshPrivateKey: z.string().optional(),
|
54
54
|
},
|
55
55
|
|
56
56
|
inputs: {
|
@@ -67,9 +67,9 @@ export const existingServer = defineUnit({
|
|
67
67
|
outputs: serverOutputs,
|
68
68
|
|
69
69
|
meta: {
|
70
|
-
|
70
|
+
title: "Existing Server",
|
71
71
|
description: "An existing server that can be used in the configuration.",
|
72
|
-
|
72
|
+
icon: "mdi:server",
|
73
73
|
defaultNamePrefix: "server",
|
74
74
|
category: "Infrastructure",
|
75
75
|
},
|
@@ -91,7 +91,7 @@ export const serverPatch = defineUnit({
|
|
91
91
|
*
|
92
92
|
* The same server may also be represented by multiple entries (e.g. a node with private and public IP).
|
93
93
|
*/
|
94
|
-
endpoints:
|
94
|
+
endpoints: z.string().array().default([]),
|
95
95
|
|
96
96
|
/**
|
97
97
|
* The mode to use for patching the endpoints.
|
@@ -99,7 +99,7 @@ export const serverPatch = defineUnit({
|
|
99
99
|
* - `prepend`: prepend the new endpoints to the existing ones (default);
|
100
100
|
* - `replace`: replace the existing endpoints with the new ones.
|
101
101
|
*/
|
102
|
-
endpointsPatchMode:
|
102
|
+
endpointsPatchMode: arrayPatchModeSchema.default("prepend"),
|
103
103
|
},
|
104
104
|
|
105
105
|
inputs: {
|
@@ -120,9 +120,9 @@ export const serverPatch = defineUnit({
|
|
120
120
|
},
|
121
121
|
|
122
122
|
meta: {
|
123
|
-
|
123
|
+
title: "Server Patch",
|
124
124
|
description: "Patches some properties of the server.",
|
125
|
-
|
125
|
+
icon: "mdi:server",
|
126
126
|
secondaryIcon: "fluent:patch-20-filled",
|
127
127
|
category: "Infrastructure",
|
128
128
|
},
|
@@ -152,9 +152,9 @@ export const serverDns = defineUnit({
|
|
152
152
|
},
|
153
153
|
|
154
154
|
meta: {
|
155
|
-
|
155
|
+
title: "Server DNS",
|
156
156
|
description: "Creates DNS records for the server and updates endpoints.",
|
157
|
-
|
157
|
+
icon: "mdi:server",
|
158
158
|
secondaryIcon: "mdi:dns",
|
159
159
|
category: "Infrastructure",
|
160
160
|
},
|
@@ -169,9 +169,9 @@ export const script = defineUnit({
|
|
169
169
|
type: "common.script",
|
170
170
|
|
171
171
|
args: {
|
172
|
-
script:
|
173
|
-
updateScript:
|
174
|
-
deleteScript:
|
172
|
+
script: z.string().meta({ language: "shell" }),
|
173
|
+
updateScript: z.string().optional().meta({ language: "shell" }),
|
174
|
+
deleteScript: z.string().optional().meta({ language: "shell" }),
|
175
175
|
},
|
176
176
|
|
177
177
|
inputs: {
|
@@ -183,9 +183,9 @@ export const script = defineUnit({
|
|
183
183
|
},
|
184
184
|
|
185
185
|
meta: {
|
186
|
-
|
186
|
+
title: "Shell Script",
|
187
187
|
description: "Run a shell script on the server.",
|
188
|
-
|
188
|
+
icon: "mdi:bash",
|
189
189
|
category: "Infrastructure",
|
190
190
|
},
|
191
191
|
|
@@ -195,6 +195,6 @@ export const script = defineUnit({
|
|
195
195
|
},
|
196
196
|
})
|
197
197
|
|
198
|
-
export type Server =
|
198
|
+
export type Server = z.infer<typeof serverEntity.schema>
|
199
199
|
|
200
200
|
export * from "./files"
|
@@ -1,15 +1,15 @@
|
|
1
|
-
import { defineUnit,
|
1
|
+
import { defineUnit, z } from "@highstate/contract"
|
2
2
|
import { fileEntity } from "../files"
|
3
3
|
|
4
|
-
export const ubuntuVersionSchema =
|
5
|
-
export const ubuntuArchitectureSchema =
|
4
|
+
export const ubuntuVersionSchema = z.enum(["22.04", "24.04", "24.10", "25.04", "25.10"])
|
5
|
+
export const ubuntuArchitectureSchema = z.enum(["amd64", "arm64"])
|
6
6
|
|
7
7
|
export const ubuntu = defineUnit({
|
8
8
|
type: "distributions.ubuntu",
|
9
9
|
|
10
10
|
args: {
|
11
|
-
version:
|
12
|
-
architecture:
|
11
|
+
version: ubuntuVersionSchema.default("24.04"),
|
12
|
+
architecture: ubuntuArchitectureSchema.default("amd64"),
|
13
13
|
},
|
14
14
|
|
15
15
|
outputs: {
|
@@ -18,10 +18,10 @@ export const ubuntu = defineUnit({
|
|
18
18
|
},
|
19
19
|
|
20
20
|
meta: {
|
21
|
-
|
21
|
+
title: "Ubuntu",
|
22
22
|
description: "Ubuntu distribution with image and cloud-config.",
|
23
|
-
|
24
|
-
|
23
|
+
icon: "mdi:ubuntu",
|
24
|
+
iconColor: "#E95420",
|
25
25
|
category: "Distributions",
|
26
26
|
},
|
27
27
|
|
package/src/dns.ts
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
import { defineEntity,
|
1
|
+
import { defineEntity, z } from "@highstate/contract"
|
2
2
|
import { endpointFilterSchema } from "./network"
|
3
3
|
import { arrayPatchModeSchema, prefixKeysWith } from "./utils"
|
4
4
|
|
5
5
|
export const providerEntity = defineEntity({
|
6
6
|
type: "dns.provider",
|
7
7
|
|
8
|
-
schema:
|
9
|
-
name:
|
10
|
-
type:
|
11
|
-
data:
|
12
|
-
domain:
|
8
|
+
schema: z.object({
|
9
|
+
name: z.string(),
|
10
|
+
type: z.string(),
|
11
|
+
data: z.record(z.string(), z.unknown()),
|
12
|
+
domain: z.string(),
|
13
13
|
}),
|
14
14
|
|
15
15
|
meta: {
|
@@ -26,7 +26,7 @@ export function createArgs<TPrefix extends string = "">(prefix?: TPrefix) {
|
|
26
26
|
*
|
27
27
|
* Will throw an error if no matching provider is found.
|
28
28
|
*/
|
29
|
-
fqdn:
|
29
|
+
fqdn: z.string().optional(),
|
30
30
|
|
31
31
|
/**
|
32
32
|
* The endpoint filter to filter the endpoints before creating the DNS records.
|
@@ -45,7 +45,7 @@ export function createArgs<TPrefix extends string = "">(prefix?: TPrefix) {
|
|
45
45
|
* - Otherwise, if any external endpoints exist, all external endpoints are selected;
|
46
46
|
* - If neither exist, all internal endpoints are selected.
|
47
47
|
*/
|
48
|
-
endpointFilter:
|
48
|
+
endpointFilter: endpointFilterSchema.default([]),
|
49
49
|
|
50
50
|
/**
|
51
51
|
* The mode to use for patching the existing endpoints.
|
@@ -55,7 +55,7 @@ export function createArgs<TPrefix extends string = "">(prefix?: TPrefix) {
|
|
55
55
|
*
|
56
56
|
* The default is `prepend`.
|
57
57
|
*/
|
58
|
-
patchMode:
|
58
|
+
patchMode: arrayPatchModeSchema.default("prepend"),
|
59
59
|
})
|
60
60
|
}
|
61
61
|
|
@@ -71,4 +71,4 @@ export const inputs = {
|
|
71
71
|
},
|
72
72
|
} as const
|
73
73
|
|
74
|
-
export type Provider =
|
74
|
+
export type Provider = z.infer<typeof providerEntity.schema>
|
package/src/files.ts
CHANGED
@@ -1,45 +1,37 @@
|
|
1
|
-
import type { Static } from "@sinclair/typebox"
|
2
1
|
import {
|
3
2
|
defineEntity,
|
4
3
|
defineUnit,
|
5
|
-
|
6
|
-
Type,
|
4
|
+
z,
|
7
5
|
fileContentSchema as baseFileContentSchema,
|
8
6
|
fileMetaSchema as baseFileMetaSchema,
|
9
7
|
unitArtifactSchema,
|
10
8
|
} from "@highstate/contract"
|
11
9
|
import { l7EndpointEntity } from "./network"
|
12
10
|
|
13
|
-
export const checksumAlgorithmSchema =
|
14
|
-
"md5",
|
15
|
-
"sha1",
|
16
|
-
"sha256",
|
17
|
-
"sha384",
|
18
|
-
"sha512",
|
19
|
-
])
|
11
|
+
export const checksumAlgorithmSchema = z.enum(["md5", "sha1", "sha256", "sha384", "sha512"])
|
20
12
|
|
21
|
-
export const checksumSchema =
|
13
|
+
export const checksumSchema = z.object({
|
22
14
|
algorithm: checksumAlgorithmSchema,
|
23
|
-
value:
|
15
|
+
value: z.string(),
|
24
16
|
})
|
25
17
|
|
26
|
-
export const fileContentSchema =
|
18
|
+
export const fileContentSchema = z.union([
|
27
19
|
baseFileContentSchema,
|
28
|
-
|
29
|
-
type:
|
30
|
-
path:
|
20
|
+
z.object({
|
21
|
+
type: z.literal("local"),
|
22
|
+
path: z.string(),
|
31
23
|
}),
|
32
|
-
|
33
|
-
type:
|
24
|
+
z.object({
|
25
|
+
type: z.literal("remote"),
|
34
26
|
endpoint: l7EndpointEntity.schema,
|
35
|
-
checksum:
|
27
|
+
checksum: checksumSchema.optional(),
|
36
28
|
}),
|
37
29
|
])
|
38
30
|
|
39
31
|
export const fileEntity = defineEntity({
|
40
32
|
type: "common.file",
|
41
33
|
|
42
|
-
schema:
|
34
|
+
schema: z.object({
|
43
35
|
meta: baseFileMetaSchema,
|
44
36
|
content: fileContentSchema,
|
45
37
|
}),
|
@@ -49,45 +41,42 @@ export const fileEntity = defineEntity({
|
|
49
41
|
},
|
50
42
|
})
|
51
43
|
|
52
|
-
export const folderMetaSchema =
|
53
|
-
name:
|
54
|
-
mode:
|
44
|
+
export const folderMetaSchema = z.object({
|
45
|
+
name: z.string(),
|
46
|
+
mode: z.number().optional(),
|
55
47
|
})
|
56
48
|
|
57
|
-
export const folderContentSchema =
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
},
|
84
|
-
{ $id: "common.folder.content" },
|
85
|
-
)
|
49
|
+
export const folderContentSchema = z.union([
|
50
|
+
z.object({
|
51
|
+
type: z.literal("embedded"),
|
52
|
+
files: fileEntity.schema.array(),
|
53
|
+
folders: z
|
54
|
+
.object({
|
55
|
+
meta: folderMetaSchema,
|
56
|
+
get content() {
|
57
|
+
return folderContentSchema
|
58
|
+
},
|
59
|
+
})
|
60
|
+
.array(),
|
61
|
+
}),
|
62
|
+
z.object({
|
63
|
+
type: z.literal("artifact"),
|
64
|
+
...unitArtifactSchema.shape,
|
65
|
+
}),
|
66
|
+
z.object({
|
67
|
+
type: z.literal("local"),
|
68
|
+
path: z.string(),
|
69
|
+
}),
|
70
|
+
z.object({
|
71
|
+
type: z.literal("remote"),
|
72
|
+
endpoint: l7EndpointEntity.schema,
|
73
|
+
}),
|
74
|
+
])
|
86
75
|
|
87
76
|
export const folderEntity = defineEntity({
|
88
77
|
type: "common.folder",
|
89
78
|
|
90
|
-
schema:
|
79
|
+
schema: z.object({
|
91
80
|
meta: folderMetaSchema,
|
92
81
|
content: folderContentSchema,
|
93
82
|
}),
|
@@ -104,7 +93,7 @@ export const remoteFile = defineUnit({
|
|
104
93
|
/**
|
105
94
|
* The URL of the remote file.
|
106
95
|
*/
|
107
|
-
url:
|
96
|
+
url: z.string().optional(),
|
108
97
|
},
|
109
98
|
|
110
99
|
inputs: {
|
@@ -122,9 +111,9 @@ export const remoteFile = defineUnit({
|
|
122
111
|
},
|
123
112
|
|
124
113
|
meta: {
|
125
|
-
|
114
|
+
title: "Remote File",
|
126
115
|
description: "References a file from a remote URL.",
|
127
|
-
|
116
|
+
icon: "mdi:file-download",
|
128
117
|
category: "Files",
|
129
118
|
},
|
130
119
|
|
@@ -134,13 +123,13 @@ export const remoteFile = defineUnit({
|
|
134
123
|
},
|
135
124
|
})
|
136
125
|
|
137
|
-
export type File =
|
138
|
-
export type FileMeta =
|
139
|
-
export type FileContent =
|
126
|
+
export type File = z.infer<typeof fileEntity.schema>
|
127
|
+
export type FileMeta = z.infer<typeof baseFileMetaSchema>
|
128
|
+
export type FileContent = z.infer<typeof fileContentSchema>
|
140
129
|
|
141
|
-
export type Folder =
|
142
|
-
export type FolderMeta =
|
143
|
-
export type FolderContent =
|
130
|
+
export type Folder = z.infer<typeof folderEntity.schema>
|
131
|
+
export type FolderMeta = z.infer<typeof folderMetaSchema>
|
132
|
+
export type FolderContent = z.infer<typeof folderContentSchema>
|
144
133
|
|
145
|
-
export type Checksum =
|
146
|
-
export type ChecksumAlgorithm =
|
134
|
+
export type Checksum = z.infer<typeof checksumSchema>
|
135
|
+
export type ChecksumAlgorithm = z.infer<typeof checksumAlgorithmSchema>
|
package/src/git.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { defineUnit,
|
1
|
+
import { defineUnit, z } from "@highstate/contract"
|
2
2
|
import { l7EndpointEntity } from "./network"
|
3
3
|
import { folderEntity } from "./files"
|
4
4
|
|
@@ -9,21 +9,21 @@ export const remoteRepository = defineUnit({
|
|
9
9
|
/**
|
10
10
|
* The URL of the remote repository.
|
11
11
|
*/
|
12
|
-
url:
|
12
|
+
url: z.string().optional(),
|
13
13
|
|
14
14
|
/**
|
15
15
|
* The ref of the remote repository to checkout.
|
16
16
|
*
|
17
17
|
* If not specified, the default branch will be used.
|
18
18
|
*/
|
19
|
-
ref:
|
19
|
+
ref: z.string().optional(),
|
20
20
|
|
21
21
|
/**
|
22
22
|
* Whether to include the .git directory in the packed artifact.
|
23
23
|
*
|
24
24
|
* Do not enable this unless you need the full git history.
|
25
25
|
*/
|
26
|
-
includeGit:
|
26
|
+
includeGit: z.boolean().default(false),
|
27
27
|
},
|
28
28
|
|
29
29
|
inputs: {
|
@@ -44,10 +44,10 @@ export const remoteRepository = defineUnit({
|
|
44
44
|
},
|
45
45
|
|
46
46
|
meta: {
|
47
|
-
|
47
|
+
title: "Git Remote Repository",
|
48
48
|
description: "References a remote Git repository.",
|
49
|
-
|
50
|
-
|
49
|
+
icon: "simple-icons:git",
|
50
|
+
iconColor: "#f1502f",
|
51
51
|
category: "Git",
|
52
52
|
},
|
53
53
|
|
package/src/k3s.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { defineUnit,
|
1
|
+
import { defineUnit, z } from "@highstate/contract"
|
2
2
|
import { clusterInputs, clusterOutputs } from "./k8s"
|
3
3
|
|
4
4
|
export const packagedComponents = [
|
@@ -18,9 +18,9 @@ export const internalComponents = [
|
|
18
18
|
"helm-controller",
|
19
19
|
] as const
|
20
20
|
|
21
|
-
export const componentSchema =
|
21
|
+
export const componentSchema = z.enum([...packagedComponents, ...internalComponents])
|
22
22
|
|
23
|
-
export const cniSchema =
|
23
|
+
export const cniSchema = z.enum(["none", "flannel"])
|
24
24
|
|
25
25
|
export const cluster = defineUnit({
|
26
26
|
type: "k3s.cluster",
|
@@ -29,7 +29,7 @@ export const cluster = defineUnit({
|
|
29
29
|
/**
|
30
30
|
* The components to disable in the K3S cluster.
|
31
31
|
*/
|
32
|
-
disabledComponents:
|
32
|
+
disabledComponents: componentSchema.array().default([]),
|
33
33
|
|
34
34
|
/**
|
35
35
|
* The CNI to use in the K3S cluster.
|
@@ -37,31 +37,31 @@ export const cluster = defineUnit({
|
|
37
37
|
* Setting this to "none" will disable default Flannel CNI, but will not disable network policy controller and kube-proxy.
|
38
38
|
* If needed, you can disable them using `disabledComponents` argument.
|
39
39
|
*/
|
40
|
-
cni:
|
40
|
+
cni: cniSchema.default("flannel"),
|
41
41
|
|
42
42
|
/**
|
43
43
|
* The K3S configuration to pass to each server or agent in the cluster.
|
44
44
|
*
|
45
45
|
* See: https://docs.k3s.io/installation/configuration
|
46
46
|
*/
|
47
|
-
config:
|
47
|
+
config: z.record(z.string(), z.any()).optional(),
|
48
48
|
|
49
49
|
/**
|
50
50
|
* The configuration of the registries to use for the K3S cluster.
|
51
51
|
*
|
52
52
|
* See: https://docs.k3s.io/installation/private-registry
|
53
53
|
*/
|
54
|
-
registries:
|
54
|
+
registries: z.record(z.string(), z.any()).optional(),
|
55
55
|
},
|
56
56
|
|
57
57
|
inputs: clusterInputs,
|
58
58
|
outputs: clusterOutputs,
|
59
59
|
|
60
60
|
meta: {
|
61
|
-
|
61
|
+
title: "K3s Cluster",
|
62
62
|
description: "The K3s cluster created on top of the server.",
|
63
63
|
category: "k3s",
|
64
|
-
|
64
|
+
icon: "devicon:k3s",
|
65
65
|
secondaryIcon: "devicon:kubernetes",
|
66
66
|
},
|
67
67
|
|