alasio 4.1.3 → 4.2.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 (50) hide show
  1. package/dist/cli/src/cluster/docker-engine.js +216 -0
  2. package/dist/cli/src/cluster/docker-engine.js.map +1 -0
  3. package/dist/cli/src/cluster/docker.js +294 -199
  4. package/dist/cli/src/cluster/docker.js.map +1 -1
  5. package/dist/cli/src/cluster/host.js +235 -57
  6. package/dist/cli/src/cluster/host.js.map +1 -1
  7. package/dist/cli/src/cluster/k3s.js +108 -0
  8. package/dist/cli/src/cluster/k3s.js.map +1 -0
  9. package/dist/cli/src/cluster/machine.js +173 -0
  10. package/dist/cli/src/cluster/machine.js.map +1 -0
  11. package/dist/cli/src/cluster/node.js +392 -0
  12. package/dist/cli/src/cluster/node.js.map +1 -0
  13. package/dist/cli/src/cluster/root.js +109 -0
  14. package/dist/cli/src/cluster/root.js.map +1 -0
  15. package/dist/cli/src/cluster/tar.js +32 -0
  16. package/dist/cli/src/cluster/tar.js.map +1 -0
  17. package/dist/cli/src/commands/as-root.js +15 -0
  18. package/dist/cli/src/commands/as-root.js.map +1 -0
  19. package/dist/cli/src/commands/common.js +26 -15
  20. package/dist/cli/src/commands/common.js.map +1 -1
  21. package/dist/cli/src/commands/down.js +9 -4
  22. package/dist/cli/src/commands/down.js.map +1 -1
  23. package/dist/cli/src/commands/init.js +35 -28
  24. package/dist/cli/src/commands/init.js.map +1 -1
  25. package/dist/cli/src/commands/status.js +29 -14
  26. package/dist/cli/src/commands/status.js.map +1 -1
  27. package/dist/cli/src/commands/uninstall.js +23 -9
  28. package/dist/cli/src/commands/uninstall.js.map +1 -1
  29. package/dist/cli/src/commands/up.js +26 -9
  30. package/dist/cli/src/commands/up.js.map +1 -1
  31. package/dist/cli/src/commands/upgrade.js +2 -1
  32. package/dist/cli/src/commands/upgrade.js.map +1 -1
  33. package/dist/cli/src/commands.js +2 -1
  34. package/dist/cli/src/commands.js.map +1 -1
  35. package/dist/cli/src/config.js +55 -27
  36. package/dist/cli/src/config.js.map +1 -1
  37. package/dist/cli/src/kube/api.js +1 -0
  38. package/dist/cli/src/kube/api.js.map +1 -1
  39. package/dist/cli/src/main.js +4 -2
  40. package/dist/cli/src/main.js.map +1 -1
  41. package/dist/cli/src/manifests/config.js +2 -2
  42. package/dist/cli/src/release.js +6 -6
  43. package/dist/cli/src/release.js.map +1 -1
  44. package/dist/cli/src/target.js +43 -27
  45. package/dist/cli/src/target.js.map +1 -1
  46. package/dist/cluster/node/config-v3.toml.tmpl +12 -0
  47. package/dist/cluster/node/pins.json +15 -0
  48. package/package.json +2 -2
  49. package/dist/cli/src/cluster/local.js +0 -392
  50. package/dist/cli/src/cluster/local.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../src/cluster/docker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../../src/cluster/docker.ts"],"names":[],"mappings":"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"}
@@ -1,70 +1,248 @@
1
1
  /**
2
- * What the local cluster needs of the machine it runs on beyond Docker: Linux on x86-64,
3
- * which its node image and gVisor are built for, and inotify limits that hold its file
4
- * watches. Every process that runs as root in any container on the
5
- * machine shares fs.inotify.max_user_instances, as root, with the machine's own: k3s,
6
- * kubelet, containerd's shims, and each pod's, so the kernel's default of 128 runs out
7
- * once a few dozen pods run, and new pods then fail to start. kind and k3d ask the same
8
- * of a machine.
2
+ * The cluster alasio makes on this machine outside Docker: k3s on the machine itself, a
3
+ * node of it as ./node.ts makes one, with gVisor, whose API alasio reaches with a copy of
4
+ * k3s's kubeconfig, the operator's own, beside the config.
5
+ *
6
+ * up asks root (./root.ts), all at once, for what is not as this version and the config
7
+ * say: the inotify limits raised when they are too low, k3s's configuration written when
8
+ * its files differ from those alasio wrote, gVisor and k3s installed when their pins
9
+ * differ from what alasio installed, k3s started or restarted when that is what it needs,
10
+ * and its kubeconfig read when k3s started anew, or the operator's copy is missing or its
11
+ * certificate near its end. An up that changes nothing asks root for nothing. Then, as the
12
+ * operator, through the API, it waits for the node, gives CoreDNS the host aliases and
13
+ * applies the gvisor RuntimeClass, as the cluster in Docker has them.
14
+ *
15
+ * The host aliases are CoreDNS's alone: pods resolve them, and the machine resolves names
16
+ * as it always has, as k3s runs on the machine itself rather than in a container whose
17
+ * /etc/hosts alasio writes.
9
18
  */
19
+ import { spawn } from "node:child_process";
20
+ import { X509Certificate } from "node:crypto";
21
+ import { KubeConfig } from "@kubernetes/client-node";
10
22
  import { Context, Effect, FileSystem, Layer, Schema } from "effect";
11
- /** The operating system and architecture the local cluster runs on, as Node names them. */
12
- const LOCAL_PLATFORM = { platform: "linux", arch: "x64" };
13
- /** The operating system and processor architecture of this machine, as Node names them. */
14
- export class Machine extends Context.Service()("alasio/cluster/Machine") {
15
- /** This process's. */
16
- static layer = Layer.succeed(Machine, Machine.of({ platform: process.platform, arch: process.arch }));
17
- }
18
- /** This machine is not one the local cluster runs on: what it is. */
19
- export class UnsupportedMachine extends Schema.TaggedError()("UnsupportedMachine", {
20
- platform: Schema.String,
21
- arch: Schema.String,
23
+ import { kind, KubeApi } from "../kube/api.js";
24
+ import { awaitReady, clusterKubeconfig, GVISOR_RUNTIME_CLASS, nodeHostsWith, NotYet, readySince, WAITS, writeKubeconfig, } from "./k3s.js";
25
+ import { forgetInotifyStep, inotifyStep, Machine, under } from "./machine.js";
26
+ import { checked, CLUSTER_NETWORKS, ConfigureNode, containerdTemplate, downloads, filesDigest, InstallGvisor, InstallK3s, NODE_PINS, nodeFiles, OpenFirewall, ReadKubeconfig, readStamp, RemoveNode, RemoveStorage, SERVICE, StartK3s, StopK3s, } from "./node.js";
27
+ import { Root } from "./root.js";
28
+ /** How the cluster names itself in what alasio says. */
29
+ const CLUSTER = "k3s on this machine";
30
+ /** systemd cannot say how a service is: it does not run this machine, or systemctl is not there. */
31
+ export class SystemdUnavailable extends Schema.TaggedError()("SystemdUnavailable", {
32
+ reason: Schema.String,
22
33
  }) {
23
34
  get message() {
24
- return `the cluster alasio makes on this machine runs on Linux on x86-64, and this is ${this.platform} on ${this.arch}: ` +
25
- "run alasio on such a machine, or give it a cluster elsewhere with alasio init --kubeconfig";
35
+ return `k3s runs on this machine as a service of systemd, and ${this.reason}: run alasio in Docker here (alasio init --target docker), ` +
36
+ "or give it a cluster elsewhere with alasio init --kubeconfig";
26
37
  }
27
38
  }
28
- /** Fails, saying what this machine is, unless the local cluster runs on it. */
29
- export const requireLocalMachine = Effect.flatMap(Machine, ({ platform, arch }) => platform === LOCAL_PLATFORM.platform && arch === LOCAL_PLATFORM.arch ? Effect.void : Effect.fail(new UnsupportedMachine({ platform, arch })));
30
- /** The inotify limits the local cluster needs, by their sysctl names: at least these. */
31
- export const INOTIFY_MINIMUMS = {
32
- "fs.inotify.max_user_instances": 1024,
33
- "fs.inotify.max_user_watches": 524288,
34
- };
35
- /** Where the inotify limits are raised for every boot: a file of /etc/sysctl.d/. */
36
- const SYSCTL_FILE = "/etc/sysctl.d/60-inotify.conf";
37
- /** The kernel's settings on this machine, read by their sysctl names. */
38
- export class Sysctl extends Context.Service()("alasio/cluster/Sysctl") {
39
- /** The settings as /proc/sys has them, a name's dots its path's slashes. */
40
- static layer = Layer.effect(Sysctl, Effect.map(FileSystem.FileSystem, (fs) => Sysctl.of({ read: (name) => fs.readFileString(`/proc/sys/${name.replaceAll(".", "/")}`) })));
39
+ /** systemd's services on this machine, as everyone reads them. */
40
+ export class Systemd extends Context.Service()("alasio/cluster/Systemd") {
41
+ /** As `systemctl show` says them. */
42
+ static layer = Layer.succeed(Systemd, Systemd.of({
43
+ unit: (name) => Effect.callback((resume) => {
44
+ const child = spawn("systemctl", ["show", name, "--property=LoadState,ActiveState,UnitFileState"], { stdio: ["ignore", "pipe", "pipe"] });
45
+ let stdout = "";
46
+ let stderr = "";
47
+ child.stdout.on("data", (chunk) => (stdout += chunk));
48
+ child.stderr.on("data", (chunk) => (stderr += chunk));
49
+ child.on("error", (cause) => resume(Effect.fail(new SystemdUnavailable({ reason: `systemctl did not start: ${cause.message}` }))));
50
+ child.on("close", (code) => {
51
+ if (code !== 0)
52
+ return resume(Effect.fail(new SystemdUnavailable({ reason: `systemctl show exited with ${code}: ${stderr.trim()}` })));
53
+ const properties = new Map(stdout.split("\n").map((line) => [line.slice(0, line.indexOf("=")), line.slice(line.indexOf("=") + 1)]));
54
+ resume(Effect.succeed({
55
+ loaded: properties.get("LoadState") === "loaded",
56
+ active: properties.get("ActiveState") ?? "",
57
+ enabled: properties.get("UnitFileState") === "enabled",
58
+ }));
59
+ });
60
+ return Effect.sync(() => child.kill());
61
+ }),
62
+ }));
41
63
  }
42
- /** A limit lower than the local cluster needs: its sysctl name, its value, and the least it needs. */
43
- const Shortfall = Schema.Struct({ name: Schema.String, value: Schema.Number, minimum: Schema.Number });
44
- /** How a shortfall reads. */
45
- export const describeShortfall = ({ name, value, minimum }) => `${name} is ${value}, and the cluster needs at least ${minimum}`;
46
- /** This machine's inotify limits are lower than the local cluster needs: which, and how to raise them. */
47
- export class InotifyLimitsTooLow extends Schema.TaggedError()("InotifyLimitsTooLow", {
48
- shortfalls: Schema.Array(Shortfall),
64
+ /** A download failed: what, and why. */
65
+ export class DownloadFailed extends Schema.TaggedError()("DownloadFailed", {
66
+ url: Schema.String,
67
+ reason: Schema.String,
49
68
  }) {
50
69
  get message() {
51
- return [
52
- "this machine's inotify limits are too low for the cluster alasio makes on it:",
53
- ...this.shortfalls.map((shortfall) => ` ${describeShortfall(shortfall)}`),
54
- "Raise them as root, now:",
55
- ` sysctl -w ${this.shortfalls.map(({ name, minimum }) => `${name}=${minimum}`).join(" ")}`,
56
- `and for every boot, in ${SYSCTL_FILE}:`,
57
- ...this.shortfalls.map(({ name, minimum }) => ` ${name} = ${minimum}`),
58
- ].join("\n");
70
+ return `${this.url} could not be downloaded: ${this.reason}`;
71
+ }
72
+ }
73
+ /** The releases of k3s and gVisor a node is made of: those pinned, and how what they pin is downloaded. */
74
+ export class NodeReleases extends Context.Service()("alasio/cluster/NodeReleases") {
75
+ /** This version's pins, downloaded over HTTPS with Node's fetch, which follows redirects. */
76
+ static layer = Layer.succeed(NodeReleases, NodeReleases.of({
77
+ pins: NODE_PINS,
78
+ fetch: (url) => Effect.tryPromise({
79
+ try: async (signal) => {
80
+ const response = await fetch(url, { signal });
81
+ if (!response.ok)
82
+ throw new Error(`it answered ${response.status} ${response.statusText}`);
83
+ return new Uint8Array(await response.arrayBuffer());
84
+ },
85
+ catch: (cause) => new DownloadFailed({ url, reason: cause instanceof Error ? cause.message : String(cause) }),
86
+ }),
87
+ }));
88
+ }
89
+ /** k3s is installed on this machine, but not by alasio, which leaves it be. */
90
+ export class ForeignK3s extends Schema.TaggedError()("ForeignK3s", {}) {
91
+ get message() {
92
+ return "k3s is installed on this machine, but not by alasio, which leaves it as it is: run alasio in it with " +
93
+ "alasio init --kubeconfig /etc/rancher/k3s/k3s.yaml, or uninstall it first (k3s-uninstall.sh)";
94
+ }
95
+ }
96
+ /** A copy whose certificate ends within this many days is read anew, k3s renewing it first. */
97
+ const RENEW_WITHIN_DAYS = 30;
98
+ /** The state of the kubeconfig `text` (null when there is none) at `now`; one that cannot be read is missing. Pure, for tests. */
99
+ export function kubeconfigState(text, now) {
100
+ const config = new KubeConfig();
101
+ let ends;
102
+ try {
103
+ config.loadFromString(text ?? "");
104
+ const certificate = config.getCurrentUser()?.certData;
105
+ ends = certificate ? new Date(new X509Certificate(Buffer.from(certificate, "base64")).validTo) : null;
106
+ }
107
+ catch {
108
+ return "missing";
59
109
  }
110
+ if (!config.getCurrentCluster() || !config.getCurrentUser())
111
+ return "missing";
112
+ return ends !== null && ends.getTime() - now.getTime() < RENEW_WITHIN_DAYS * 24 * 60 * 60 * 1000 ? "expiring" : "current";
113
+ }
114
+ /**
115
+ * What the node needs of root, by what alasio installed (`stamp`), the files that
116
+ * configure it (by their digest), its service, the operator's kubeconfig, and the
117
+ * firewall active on the machine, which lets the cluster's networks in once alasio has
118
+ * seen to it. Pure, for tests.
119
+ */
120
+ export function planNode(pins, { stamp, config, unit, kubeconfig, firewall }) {
121
+ const opened = stamp?.firewall?.tool === firewall && CLUSTER_NETWORKS.every((network) => stamp?.firewall?.networks.includes(network));
122
+ const configure = stamp?.config !== config;
123
+ const gvisor = stamp?.gvisor !== pins.gvisor.release;
124
+ const k3s = stamp?.k3s !== pins.k3s.version || !unit.loaded
125
+ ? "install"
126
+ : configure || gvisor
127
+ ? "restart"
128
+ : unit.active !== "active" || !unit.enabled
129
+ ? "start"
130
+ : null;
131
+ const startsAnew = k3s === "install" || k3s === "restart";
132
+ return { firewall: firewall !== null && !opened ? firewall : null, configure, gvisor, k3s, kubeconfig: k3s !== null || kubeconfig !== "current", renew: kubeconfig === "expiring" && !startsAnew };
133
+ }
134
+ /** The cluster on this machine of the options its layer was given. */
135
+ export class HostCluster extends Context.Service()("alasio/cluster/HostCluster") {
136
+ static layer = (options) => Layer.effect(HostCluster, makeHostCluster(options));
60
137
  }
61
- /** The inotify limits of this machine that are lower than the local cluster needs. */
62
- export const inotifyShortfalls = Effect.flatMap(Sysctl, (sysctl) => Effect.forEach(Object.entries(INOTIFY_MINIMUMS), ([name, minimum]) => Effect.map(sysctl.read(name), (text) => ({ name, value: Number(text.trim()), minimum }))).pipe(
63
- // One that reads as no number is short too.
64
- Effect.map((limits) => limits.filter(({ value, minimum }) => !(value >= minimum)))));
65
- /** Fails with what to raise, and how, when this machine's inotify limits are lower than the local cluster needs. */
66
- export const requireInotifyLimits = Effect.flatMap(inotifyShortfalls, (shortfalls) => (shortfalls.length > 0 ? Effect.fail(new InotifyLimitsTooLow({ shortfalls })) : Effect.void));
67
- /** Fails, saying why and what to do, unless this machine is one the local cluster runs on, its inotify limits high enough. */
68
- export const requireLocalHost = Effect
69
- .andThen(requireLocalMachine, requireInotifyLimits);
138
+ const makeHostCluster = Effect.fnUntraced(function* ({ storagePath, hostAliases = [], registries, readyTimeout = WAITS.readyTimeout, poll = WAITS.poll, }) {
139
+ const fs = yield* FileSystem.FileSystem;
140
+ const machine = yield* Machine;
141
+ const systemd = yield* Systemd;
142
+ const root = yield* Root;
143
+ const { pins, fetch } = yield* NodeReleases;
144
+ const onMachine = (effect) => effect.pipe(Effect.provideService(FileSystem.FileSystem, fs), Effect.provideService(Machine, machine));
145
+ const config = { role: "server", storagePath, ...(registries ? { registries } : {}) };
146
+ const waitFor = awaitReady(CLUSTER, { readyTimeout, poll });
147
+ /** The firewall active on this machine, which lets in only what it is told to: ufw, as its config says, or firewalld, as its service is; none. */
148
+ const activeFirewall = Effect.gen(function* () {
149
+ const ufw = under(machine.root, "/etc/ufw/ufw.conf");
150
+ if ((yield* fs.exists(ufw)) && /^ENABLED=yes$/mu.test(yield* fs.readFileString(ufw)))
151
+ return "ufw";
152
+ return (yield* systemd.unit("firewalld")).active === "active" ? "firewalld" : null;
153
+ });
154
+ /** What alasio installed, refusing a k3s it did not. */
155
+ const installed = Effect.gen(function* () {
156
+ const unit = yield* systemd.unit(SERVICE);
157
+ const stamp = yield* onMachine(readStamp);
158
+ if (unit.loaded && stamp === null)
159
+ return yield* new ForeignK3s();
160
+ return { unit, stamp };
161
+ });
162
+ /** `download` fetched into `directory`, as `name`, and checked against its pin. */
163
+ const fetched = Effect.fnUntraced(function* (directory, name, download) {
164
+ yield* Effect.logInfo(`downloading ${download.url}`);
165
+ const content = yield* Effect.flatMap(fetch(download.url), (fetchedContent) => checked(download, fetchedContent));
166
+ const path = `${directory}/${name}`;
167
+ yield* fs.writeFile(path, content);
168
+ return { path, ...download };
169
+ });
170
+ /** The node ready, by a Ready condition reported since `since`. */
171
+ const nodeReady = (since) => Effect.flatMap(KubeApi, (kube) => kube.list(kind("Node"))).pipe(Effect.flatMap((nodes) => {
172
+ const waiting = nodes.filter((node) => !readySince(node, since)).map((node) => node.metadata?.name ?? "");
173
+ if (nodes.length === 0)
174
+ return Effect.fail(new NotYet({ message: "no node has registered yet" }));
175
+ return waiting.length === 0 ? Effect.succeed(nodes) : Effect.fail(new NotYet({ message: `not reported ready since started: ${waiting.join(", ")}` }));
176
+ }));
177
+ /** CoreDNS's NodeHosts with the host aliases, patched only when they differ, and only over the version read. */
178
+ const applyHostAliases = (nodes) => Effect.gen(function* () {
179
+ const kube = yield* KubeApi;
180
+ const coredns = yield* kube.get({ ...kind("ConfigMap"), namespace: "kube-system", name: "coredns" });
181
+ if (!coredns)
182
+ return yield* new NotYet({ message: "k3s has not made CoreDNS's ConfigMap yet" });
183
+ const nodeHosts = coredns.data?.["NodeHosts"] ?? "";
184
+ const desired = nodeHostsWith(nodeHosts, nodes.map((node) => node.metadata?.name ?? ""), hostAliases);
185
+ if (desired === nodeHosts)
186
+ return;
187
+ yield* kube.patch({ ...kind("ConfigMap"), namespace: "kube-system", name: "coredns" }, { metadata: { resourceVersion: coredns.metadata?.resourceVersion }, data: { NodeHosts: desired } }, "alasio");
188
+ });
189
+ const up = Effect.fnUntraced(function* (kubeconfig) {
190
+ const { unit, stamp } = yield* installed;
191
+ // Made by the operator, whose it stays, though k3s makes the volumes in it as root.
192
+ yield* fs.makeDirectory(storagePath, { recursive: true });
193
+ const files = nodeFiles(config, yield* onMachine(containerdTemplate));
194
+ const copy = (yield* fs.exists(kubeconfig)) ? yield* fs.readFileString(kubeconfig) : null;
195
+ const plan = planNode(pins, { stamp, config: filesDigest(files), unit, kubeconfig: kubeconfigState(copy, new Date()), firewall: yield* activeFirewall });
196
+ const raise = yield* onMachine(inotifyStep);
197
+ const started = plan.k3s === null && !plan.renew ? 0 : Date.now();
198
+ const outcome = yield* Effect.scoped(Effect.gen(function* () {
199
+ // Downloaded as the operator, and read by root, which checks them again.
200
+ const directory = plan.gvisor || plan.k3s === "install" ? yield* fs.makeTempDirectoryScoped({ prefix: "alasio-node-" }) : "";
201
+ const from = downloads(pins);
202
+ const archive = plan.gvisor ? yield* fetched(directory, "gvisor.tar.zstd", from.gvisor) : null;
203
+ const binary = plan.k3s === "install" ? yield* fetched(directory, "k3s", from.k3s) : null;
204
+ const script = plan.k3s === "install" ? yield* fetched(directory, "install.sh", from.installScript) : null;
205
+ const steps = [
206
+ ...(raise ? [raise] : []),
207
+ ...(plan.firewall ? [OpenFirewall.make({ firewall: plan.firewall, networks: CLUSTER_NETWORKS })] : []),
208
+ ...(plan.configure ? [ConfigureNode.make({ config })] : []),
209
+ ...(archive ? [InstallGvisor.make({ release: pins.gvisor.release, ...(stamp?.gvisor ? { previous: stamp.gvisor } : {}), archive })] : []),
210
+ ...(binary && script ? [InstallK3s.make({ version: pins.k3s.version, ...(stamp?.k3s ? { previous: stamp.k3s } : {}), role: config.role, binary, script })] : []),
211
+ ...(plan.k3s === "restart" || plan.k3s === "start" ? [StartK3s.make({ restart: plan.k3s === "restart" })] : []),
212
+ ...(plan.kubeconfig ? [ReadKubeconfig.make({ renew: plan.renew })] : []),
213
+ ];
214
+ return yield* root.run(steps);
215
+ }));
216
+ if (outcome.kubeconfig) {
217
+ // k3s's own wrote it, a kubeconfig with a cluster and a user.
218
+ yield* Effect.provideService(writeKubeconfig(kubeconfig, clusterKubeconfig(outcome.kubeconfig, "alasio") ?? ""), FileSystem.FileSystem, fs);
219
+ yield* Effect.logInfo(`wrote the kubeconfig of ${CLUSTER} to ${kubeconfig}`);
220
+ }
221
+ yield* Effect.gen(function* () {
222
+ const nodes = yield* waitFor("its node", nodeReady(started));
223
+ yield* waitFor("CoreDNS's NodeHosts", applyHostAliases(nodes));
224
+ yield* waitFor("the gvisor RuntimeClass", Effect.flatMap(KubeApi, (kube) => kube.apply(GVISOR_RUNTIME_CLASS)));
225
+ }).pipe(Effect.provide(KubeApi.layer({ path: kubeconfig })));
226
+ yield* Effect.logInfo(`${CLUSTER} is up`);
227
+ });
228
+ return HostCluster.of({
229
+ up,
230
+ down: Effect.gen(function* () {
231
+ if (!(yield* installed).unit.loaded)
232
+ return;
233
+ yield* root.run([StopK3s.make({})]);
234
+ yield* Effect.logInfo(`stopped ${CLUSTER}`);
235
+ }),
236
+ remove: ({ storage }) => Effect.gen(function* () {
237
+ const { unit, stamp } = yield* installed;
238
+ const forget = yield* onMachine(forgetInotifyStep);
239
+ yield* root.run([
240
+ ...(unit.loaded || stamp !== null ? [RemoveNode.make(stamp?.firewall ? { firewall: { tool: stamp.firewall.tool, added: stamp.firewall.added } } : {})] : []),
241
+ ...(storage && (yield* fs.exists(storagePath)) ? [RemoveStorage.make({ path: storagePath })] : []),
242
+ ...(forget ? [forget] : []),
243
+ ]);
244
+ }),
245
+ status: Effect.map(installed, ({ unit, stamp }) => ({ unit, installed: stamp })),
246
+ });
247
+ });
70
248
  //# sourceMappingURL=host.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../src/cluster/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../../src/cluster/host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * What the clusters alasio makes on this machine, in Docker (./docker.ts) and on the
3
+ * machine itself (./host.ts), share of k3s: how kubelet is set, the registries containerd
4
+ * pulls from, the host aliases CoreDNS resolves, the `gvisor` RuntimeClass, nodes ready
5
+ * since they started, the kubeconfig k3s writes made the operator's, and waits for all
6
+ * that.
7
+ */
8
+ import { randomUUID } from "node:crypto";
9
+ import { dirname } from "node:path";
10
+ import { KubeConfig } from "@kubernetes/client-node";
11
+ import { Duration, Effect, FileSystem, Schedule, Schema } from "effect";
12
+ /**
13
+ * kubelet's settings, as its arguments say them, for a machine whose disk the cluster
14
+ * shares with everything else on it: it evicts only when the disk is nearly full, and
15
+ * collects unused images only then, so images in use are not evicted.
16
+ */
17
+ export const KUBELET_ARGS = [
18
+ "eviction-hard=imagefs.available<5%,nodefs.available<5%",
19
+ "eviction-minimum-reclaim=imagefs.available=1%,nodefs.available=1%",
20
+ "image-gc-high-threshold=98",
21
+ "image-gc-low-threshold=95",
22
+ ];
23
+ /** gVisor, as containerd has it registered: the runtime `runsc` (cluster/node/config-v3.toml.tmpl). */
24
+ export const GVISOR_RUNTIME_CLASS = { apiVersion: "node.k8s.io/v1", kind: "RuntimeClass", metadata: { name: "gvisor" }, handler: "runsc" };
25
+ /** k3s's registries.yaml of `registries`, written as JSON, which YAML reads as it is. Pure, for tests. */
26
+ export function registriesYaml({ mirrors = {}, configs = {} }) {
27
+ return JSON.stringify({
28
+ mirrors,
29
+ configs: Object.fromEntries(Object.entries(configs).map(([host, { tls }]) => [
30
+ host,
31
+ { tls: { ca_file: tls.caFile, cert_file: tls.certFile, key_file: tls.keyFile, insecure_skip_verify: tls.insecureSkipVerify } },
32
+ ])),
33
+ });
34
+ }
35
+ /**
36
+ * CoreDNS's NodeHosts, a hosts file, with `aliases`: k3s keeps a line for each node in
37
+ * it, which stays, and every other line is the cluster's aliases, which are replaced.
38
+ * Pure, for tests.
39
+ */
40
+ export function nodeHostsWith(nodeHosts, nodes, aliases) {
41
+ const kept = nodeHosts.split("\n").filter((line) => line.trim().split(/\s+/u).slice(1).some((host) => nodes.includes(host)));
42
+ return [...kept, ...aliases.map(({ ip, hostnames }) => `${ip} ${hostnames.join(" ")}`)].join("\n");
43
+ }
44
+ /**
45
+ * Whether `node` is ready by a Ready condition its kubelet reported since `started`, in
46
+ * milliseconds since the epoch: one from before, which a node stopped while ready keeps
47
+ * until its kubelet reports again, is not yet the node's. The condition's heartbeat is to
48
+ * the second.
49
+ */
50
+ export const readySince = (node, started) => node.status?.conditions?.some(({ type, status, lastHeartbeatTime }) => type === "Ready" && status === "True" && lastHeartbeatTime !== undefined && new Date(lastHeartbeatTime).getTime() >= Math.floor(started / 1000) * 1000) ?? false;
51
+ /**
52
+ * The kubeconfig k3s wrote (`k3sYaml`), named `cluster`, and pointed at `server` when
53
+ * given; null when it is not a kubeconfig with a cluster and a user, as while k3s writes it.
54
+ */
55
+ export function clusterKubeconfig(k3sYaml, cluster, server) {
56
+ const written = new KubeConfig();
57
+ try {
58
+ written.loadFromString(k3sYaml);
59
+ }
60
+ catch {
61
+ return null;
62
+ }
63
+ const current = written.getCurrentCluster();
64
+ const user = written.getCurrentUser();
65
+ if (!current || !user)
66
+ return null;
67
+ const named = new KubeConfig();
68
+ named.loadFromOptions({
69
+ clusters: [{ ...current, name: cluster, server: server ?? current.server }],
70
+ users: [{ ...user, name: cluster }],
71
+ contexts: [{ name: cluster, cluster, user: cluster }],
72
+ currentContext: cluster,
73
+ });
74
+ return named.exportConfig();
75
+ }
76
+ /** Writes `content`, a kubeconfig, to `path`, readable by its owner alone: whole, beside it, then moved over it. */
77
+ export const writeKubeconfig = Effect.fnUntraced(function* (path, content) {
78
+ const fs = yield* FileSystem.FileSystem;
79
+ yield* fs.makeDirectory(dirname(path), { recursive: true, mode: 0o700 });
80
+ const written = `${path}.${randomUUID()}`;
81
+ yield* fs.writeFileString(written, content, { flag: "wx", mode: 0o600 });
82
+ yield* fs.rename(written, path);
83
+ });
84
+ /** The cluster did not come up in time: what it was waited for, and why it last was not. */
85
+ export class ClusterNotReady extends Schema.TaggedError()("ClusterNotReady", {
86
+ cluster: Schema.String,
87
+ waitingFor: Schema.String,
88
+ /** How long it was given, in seconds. */
89
+ within: Schema.Number,
90
+ reason: Schema.String,
91
+ }) {
92
+ get message() {
93
+ return `${this.cluster} was not ready within ${this.within}s, waiting for ${this.waitingFor}: ${this.reason}`;
94
+ }
95
+ }
96
+ /** What a wait for the cluster has not seen yet; the wait's ClusterNotReady says it when it gives up. */
97
+ export class NotYet extends Schema.TaggedError()("NotYet", {
98
+ message: Schema.String,
99
+ }) {
100
+ }
101
+ /** A cluster's first start pulls k3s's own images, so each wait is given minutes. */
102
+ export const WAITS = { readyTimeout: "5 minutes", poll: "1 second" };
103
+ /**
104
+ * A wait for `cluster` (as a sentence names it): `check` once it succeeds, tried every
105
+ * `poll` for `readyTimeout`; why it last failed, when it never does.
106
+ */
107
+ export const awaitReady = (cluster, { readyTimeout, poll }) => (waitingFor, check) => Effect.logInfo(`waiting for ${waitingFor}`).pipe(Effect.andThen(check.pipe(Effect.mapError((error) => new ClusterNotReady({ cluster, waitingFor, within: Duration.toSeconds(readyTimeout), reason: error.message })), Effect.retry(Schedule.max([Schedule.spaced(poll), Schedule.during(readyTimeout)])))));
108
+ //# sourceMappingURL=k3s.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"k3s.js","sourceRoot":"","sources":["../../../../src/cluster/k3s.ts"],"names":[],"mappings":"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"}