Skip to content

Commit 4912521

Browse files
committed
Support passing through k3s “disable” config
1 parent 42ace83 commit 4912521

File tree

3 files changed

+24
-2
lines changed

3 files changed

+24
-2
lines changed

examples/local.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { InstanceConfig } from "../src/types.ts";
2+
13
export default {
24
name: "local",
35
image: "focal",
@@ -9,9 +11,13 @@ export default {
911
serviceCidr: "10.254.255.0/24",
1012
clusterDnsIp: "10.254.255.10",
1113
clusterDomain: "jetski.local",
14+
disableComponents: {
15+
traefik: true,
16+
metricsServer: true
17+
},
1218
nodeLabels: {
1319
"com.jetski/foo": "bar",
1420
"com.jetski/baz": "boo",
1521
},
1622
sshDirectoryPath: "./local/.ssh",
17-
};
23+
} as InstanceConfig;

src/types.ts

+7
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ export const InstanceConfigSchema = Type.Object({
2020
serviceCidr: Cidr,
2121
clusterDnsIp: Ipv4,
2222
clusterDomain: Type.String({ format: "hostname", minLength: 1 }),
23+
disableComponents: Type.Optional(Type.Object({
24+
coredns: Type.Optional(Type.Boolean()),
25+
servicelb: Type.Optional(Type.Boolean()),
26+
traefik: Type.Optional(Type.Boolean()),
27+
localStorage: Type.Optional(Type.Boolean()),
28+
metricsServer: Type.Optional(Type.Boolean()),
29+
})),
2330
nodeLabels: Type.Optional(Type.Record(Type.String(), Type.String())),
2431
sshDirectoryPath: NonEmptyString,
2532
});

src/utils.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,20 @@ export async function generateSshKeyPairIfNotExists(
8383
export function createCloudInitConfig(
8484
{
8585
sshPublicKey,
86-
instance: { clusterCidr, serviceCidr, clusterDnsIp, clusterDomain, k3sVersion },
86+
instance: { clusterCidr, serviceCidr, clusterDnsIp, clusterDomain, k3sVersion, disableComponents },
8787
}: {
8888
sshPublicKey: string;
8989
instance: InstanceConfig;
9090
},
9191
) {
92+
const k3sConfigDisable = [
93+
...(disableComponents?.coredns ? ["coredns"] : []),
94+
...(disableComponents?.localStorage ? ["local-storage"] : []),
95+
...(disableComponents?.metricsServer ? ["metrics-server"] : []),
96+
...(disableComponents?.servicelb ? ["servicelb"] : []),
97+
...(disableComponents?.traefik ? ["traefik"] : []),
98+
];
99+
92100
return {
93101
users: [
94102
"default",
@@ -113,6 +121,7 @@ export function createCloudInitConfig(
113121
"service-cidr": serviceCidr,
114122
"cluster-dns": clusterDnsIp,
115123
"cluster-domain": clusterDomain,
124+
"disable": k3sConfigDisable,
116125
}),
117126
},
118127
{

0 commit comments

Comments
 (0)