alasio 7.0.0 → 9.0.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.
- package/dist/cli/src/api-server.js +18 -0
- package/dist/cli/src/api-server.js.map +1 -0
- package/dist/cli/src/branches.js +123 -46
- package/dist/cli/src/branches.js.map +1 -1
- package/dist/cli/src/cluster/docker.js +25 -10
- package/dist/cli/src/cluster/docker.js.map +1 -1
- package/dist/cli/src/cluster/host.js +33 -7
- package/dist/cli/src/cluster/host.js.map +1 -1
- package/dist/cli/src/cluster/k3s.js +51 -12
- package/dist/cli/src/cluster/k3s.js.map +1 -1
- package/dist/cli/src/cluster/node.js +115 -33
- package/dist/cli/src/cluster/node.js.map +1 -1
- package/dist/cli/src/cluster/stargz.js +55 -0
- package/dist/cli/src/cluster/stargz.js.map +1 -0
- package/dist/cli/src/commands/branch.js +5 -4
- package/dist/cli/src/commands/branch.js.map +1 -1
- package/dist/cli/src/commands/common.js +9 -3
- package/dist/cli/src/commands/common.js.map +1 -1
- package/dist/cli/src/commands/folder.js +14 -0
- package/dist/cli/src/commands/folder.js.map +1 -0
- package/dist/cli/src/commands/init.js +54 -4
- package/dist/cli/src/commands/init.js.map +1 -1
- package/dist/cli/src/commands/lake.js +40 -6
- package/dist/cli/src/commands/lake.js.map +1 -1
- package/dist/cli/src/commands/restore-filer-store.js +40 -8
- package/dist/cli/src/commands/restore-filer-store.js.map +1 -1
- package/dist/cli/src/commands/status.js +216 -20
- package/dist/cli/src/commands/status.js.map +1 -1
- package/dist/cli/src/commands/uninstall.js +8 -9
- package/dist/cli/src/commands/uninstall.js.map +1 -1
- package/dist/cli/src/commands/up.js +11 -3
- package/dist/cli/src/commands/up.js.map +1 -1
- package/dist/cli/src/commands/upgrade.js +1 -1
- package/dist/cli/src/commands/upgrade.js.map +1 -1
- package/dist/cli/src/commands.js +2 -1
- package/dist/cli/src/commands.js.map +1 -1
- package/dist/cli/src/config.js +24 -9
- package/dist/cli/src/config.js.map +1 -1
- package/dist/cli/src/cpu-baseline.js +8 -4
- package/dist/cli/src/cpu-baseline.js.map +1 -1
- package/dist/cli/src/folders.js +67 -0
- package/dist/cli/src/folders.js.map +1 -0
- package/dist/cli/src/gateway-calls.js +58 -0
- package/dist/cli/src/gateway-calls.js.map +1 -0
- package/dist/cli/src/install.js +119 -17
- package/dist/cli/src/install.js.map +1 -1
- package/dist/cli/src/kept-releases.js +27 -20
- package/dist/cli/src/kept-releases.js.map +1 -1
- package/dist/cli/src/kube/api.js +11 -5
- package/dist/cli/src/kube/api.js.map +1 -1
- package/dist/cli/src/kube/apply.js +16 -73
- package/dist/cli/src/kube/apply.js.map +1 -1
- package/dist/cli/src/kube/rollout.js +84 -26
- package/dist/cli/src/kube/rollout.js.map +1 -1
- package/dist/cli/src/lake.js +124 -0
- package/dist/cli/src/lake.js.map +1 -0
- package/dist/cli/src/manifests/admission.js +381 -223
- package/dist/cli/src/manifests/admission.js.map +1 -1
- package/dist/cli/src/manifests/alasio.js +79 -362
- package/dist/cli/src/manifests/alasio.js.map +1 -1
- package/dist/cli/src/manifests/branch.js +10 -26
- package/dist/cli/src/manifests/branch.js.map +1 -1
- package/dist/cli/src/manifests/collector.js +250 -135
- package/dist/cli/src/manifests/collector.js.map +1 -1
- package/dist/cli/src/manifests/common.js +32 -2
- package/dist/cli/src/manifests/common.js.map +1 -1
- package/dist/cli/src/manifests/config.js +256 -92
- package/dist/cli/src/manifests/config.js.map +1 -1
- package/dist/cli/src/manifests/disruption.js +10 -0
- package/dist/cli/src/manifests/disruption.js.map +1 -1
- package/dist/cli/src/manifests/folders.js +128 -0
- package/dist/cli/src/manifests/folders.js.map +1 -0
- package/dist/cli/src/manifests/grafana.js +4 -2
- package/dist/cli/src/manifests/grafana.js.map +1 -1
- package/dist/cli/src/manifests/index.js +15 -8
- package/dist/cli/src/manifests/index.js.map +1 -1
- package/dist/cli/src/manifests/keda.js +2 -1
- package/dist/cli/src/manifests/keda.js.map +1 -1
- package/dist/cli/src/manifests/lake.js +350 -73
- package/dist/cli/src/manifests/lake.js.map +1 -1
- package/dist/cli/src/manifests/log.js +316 -0
- package/dist/cli/src/manifests/log.js.map +1 -0
- package/dist/cli/src/manifests/neon.js +128 -49
- package/dist/cli/src/manifests/neon.js.map +1 -1
- package/dist/cli/src/manifests/network-policies.js +263 -100
- package/dist/cli/src/manifests/network-policies.js.map +1 -1
- package/dist/cli/src/manifests/node-agent.js +24 -8
- package/dist/cli/src/manifests/node-agent.js.map +1 -1
- package/dist/cli/src/manifests/object-store.js +4 -2
- package/dist/cli/src/manifests/object-store.js.map +1 -1
- package/dist/cli/src/manifests/sandbox-gateway.js +663 -0
- package/dist/cli/src/manifests/sandbox-gateway.js.map +1 -0
- package/dist/cli/src/manifests/scalers.js +16 -5
- package/dist/cli/src/manifests/scalers.js.map +1 -1
- package/dist/cli/src/manifests/sizing.js +16 -8
- package/dist/cli/src/manifests/sizing.js.map +1 -1
- package/dist/cli/src/manifests/valkey.js +11 -5
- package/dist/cli/src/manifests/valkey.js.map +1 -1
- package/dist/cli/src/manifests/vpa.js +3 -1
- package/dist/cli/src/manifests/vpa.js.map +1 -1
- package/dist/cli/src/manifests/webhook.js +102 -0
- package/dist/cli/src/manifests/webhook.js.map +1 -0
- package/dist/cli/src/manifests/workspace-storage.js +174 -89
- package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
- package/dist/cli/src/neon-storage.js +155 -0
- package/dist/cli/src/neon-storage.js.map +1 -0
- package/dist/cli/src/release.js +9 -6
- package/dist/cli/src/release.js.map +1 -1
- package/dist/cli/src/secrets.js +45 -4
- package/dist/cli/src/secrets.js.map +1 -1
- package/dist/cli/src/target.js +1 -1
- package/dist/cli/src/target.js.map +1 -1
- package/dist/cli/src/telegram.js +56 -10
- package/dist/cli/src/telegram.js.map +1 -1
- package/dist/cli/src/webhook.js +182 -0
- package/dist/cli/src/webhook.js.map +1 -0
- package/dist/cluster/node/pins.json +12 -2
- package/dist/neon/control/branches.js +126 -21
- package/dist/neon/control/branches.js.map +1 -1
- package/dist/neon/control/endpoints.js +9 -0
- package/dist/neon/control/endpoints.js.map +1 -1
- package/dist/neon/control/jwt.js +16 -3
- package/dist/neon/control/jwt.js.map +1 -1
- package/dist/neon/control/secrets.js +51 -7
- package/dist/neon/control/secrets.js.map +1 -1
- package/dist/src/binder/names.js +33 -0
- package/dist/src/binder/names.js.map +1 -0
- package/dist/src/binder/tokens.js +58 -0
- package/dist/src/binder/tokens.js.map +1 -0
- package/dist/src/branch/names.js +12 -2
- package/dist/src/branch/names.js.map +1 -1
- package/dist/src/events/names.js +7 -0
- package/dist/src/events/names.js.map +1 -0
- package/dist/src/gateway/names.js +201 -0
- package/dist/src/gateway/names.js.map +1 -0
- package/dist/src/harness/names.js +49 -0
- package/dist/src/harness/names.js.map +1 -0
- package/dist/src/kube/sandbox-shape.js +19 -69
- package/dist/src/kube/sandbox-shape.js.map +1 -1
- package/dist/src/node-agent/names.js +118 -2
- package/dist/src/node-agent/names.js.map +1 -1
- package/dist/src/sandbox/names.js +12 -20
- package/dist/src/sandbox/names.js.map +1 -1
- package/dist/src/sandbox/otlp-resource.js +173 -0
- package/dist/src/sandbox/otlp-resource.js.map +1 -0
- package/dist/src/sandbox/telemetry.js +43 -0
- package/dist/src/sandbox/telemetry.js.map +1 -0
- package/dist/src/telegram/deliveries.js +40 -0
- package/dist/src/telegram/deliveries.js.map +1 -0
- package/dist/src/telemetry/config.js +131 -0
- package/dist/src/telemetry/config.js.map +1 -0
- package/dist/src/telemetry/forward.js +154 -0
- package/dist/src/telemetry/forward.js.map +1 -0
- package/package.json +1 -1
- package/dist/cli/src/manifests/agent-sandbox.js +0 -92
- package/dist/cli/src/manifests/agent-sandbox.js.map +0 -1
- package/dist/cli/src/manifests/juicefs-csi.js +0 -319
- package/dist/cli/src/manifests/juicefs-csi.js.map +0 -1
- package/dist/cli/src/manifests/sandboxes.agents.x-k8s.io.json +0 -6295
- package/dist/src/kube/config.js +0 -143
- package/dist/src/kube/config.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Duration, Effect, Schedule, Schema } from "effect";
|
|
1
|
+
import { Clock, Duration, Effect, Schedule, Schema, Stream } from "effect";
|
|
2
2
|
import { describeRef, kind, KubeApi } from "./api.js";
|
|
3
3
|
const READY = { _tag: "Ready" };
|
|
4
4
|
const waiting = (status) => ({ _tag: "Waiting", status });
|
|
@@ -53,19 +53,33 @@ export function readiness(object) {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
56
|
+
* The annotation of a Deployment whose pods are ready only once each is bound, a sandbox
|
|
57
|
+
* pool's (../manifests/sandbox-gateway.ts), each then out of the Deployment: it is ready once
|
|
58
|
+
* a pod of each of its replicas runs, ready or not (readinessOf).
|
|
59
59
|
*/
|
|
60
|
-
export
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
60
|
+
export const READY_ONCE_BOUND_ANNOTATION = "alasio.dev/ready-once-bound";
|
|
61
|
+
/**
|
|
62
|
+
* Where `object` is, as readiness says; but a Deployment annotated READY_ONCE_BOUND_ANNOTATION,
|
|
63
|
+
* once its rollout has made a pod of each of its replicas and none of before, ready once each
|
|
64
|
+
* runs, its containers started, as its pods say.
|
|
65
|
+
*/
|
|
66
|
+
export const readinessOf = Effect.fnUntraced(function* (object) {
|
|
67
|
+
if (object.kind !== "Deployment" || object.metadata?.annotations?.[READY_ONCE_BOUND_ANNOTATION] !== "true")
|
|
68
|
+
return readiness(object);
|
|
69
|
+
const { metadata, spec, status } = object;
|
|
70
|
+
const replicas = spec?.replicas ?? 1;
|
|
71
|
+
const updated = status?.updatedReplicas ?? 0;
|
|
72
|
+
if ((status?.observedGeneration ?? 0) < (metadata?.generation ?? 0))
|
|
73
|
+
return waiting("not yet rolled out");
|
|
74
|
+
if (updated < replicas)
|
|
75
|
+
return waiting(`${updated} of ${replicas} updated`);
|
|
76
|
+
if ((status?.replicas ?? 0) > updated)
|
|
77
|
+
return waiting(`${(status?.replicas ?? 0) - updated} old pods stopping`);
|
|
78
|
+
const kube = yield* KubeApi;
|
|
79
|
+
const pods = yield* kube.list(POD, { namespace: metadata?.namespace, labelSelector: selectorOf(spec?.selector?.matchLabels ?? {}) });
|
|
80
|
+
const runs = pods.filter((pod) => !pod.metadata?.deletionTimestamp && pod.status?.phase === "Running" && (pod.status.containerStatuses ?? []).every(({ state }) => state?.running)).length;
|
|
81
|
+
return runs < replicas ? waiting(`${runs} of ${replicas} running`) : READY;
|
|
82
|
+
});
|
|
69
83
|
/** Something waited for that is not ready, as people read it: the object, and what it is at. */
|
|
70
84
|
const NotReadyObject = Schema.Struct({
|
|
71
85
|
object: Schema.String,
|
|
@@ -92,8 +106,8 @@ export class RolloutFailed extends Schema.TaggedError()("RolloutFailed", {
|
|
|
92
106
|
return `failed:\n${indented(this.failed)}`;
|
|
93
107
|
}
|
|
94
108
|
}
|
|
95
|
-
/** A look found something still waiting; the wait's NotReadyInTime says what
|
|
96
|
-
class
|
|
109
|
+
/** A look found something still waiting past the wait's time; the wait's NotReadyInTime says what. */
|
|
110
|
+
class TimedOut extends Schema.TaggedError()("TimedOut", {}) {
|
|
97
111
|
}
|
|
98
112
|
const POD = kind("Pod");
|
|
99
113
|
const EVENT = kind("Event");
|
|
@@ -129,6 +143,18 @@ export function podProblems(pod) {
|
|
|
129
143
|
const ready = pod.status?.conditions?.some(({ type, status }) => type === "Ready" && status === "True") ?? false;
|
|
130
144
|
return problems.length > 0 || ready ? problems : [`pod ${name} is ${pod.status?.phase ?? "not yet started"}`];
|
|
131
145
|
}
|
|
146
|
+
/** What a container waits on as its pod starts, which is no problem of it. */
|
|
147
|
+
const STARTING = new Set(["ContainerCreating", "PodInitializing"]);
|
|
148
|
+
/**
|
|
149
|
+
* Whether `pod` is starting, not stuck: on a node, none of its containers restarted, each
|
|
150
|
+
* running, done or waiting on its start alone, and made within `withinMs` of `now`.
|
|
151
|
+
*/
|
|
152
|
+
export function starting(pod, withinMs, now) {
|
|
153
|
+
if (pod.status?.conditions?.some(({ type, status }) => type === "PodScheduled" && status === "False"))
|
|
154
|
+
return false;
|
|
155
|
+
const started = new Date(pod.metadata?.creationTimestamp ?? 0).getTime();
|
|
156
|
+
return now - started < withinMs && [...(pod.status?.initContainerStatuses ?? []), ...(pod.status?.containerStatuses ?? [])].every(({ restartCount, state }) => restartCount === 0 && (!state?.waiting || STARTING.has(state.waiting.reason ?? "")) && (!state?.terminated || state.terminated.exitCode === 0));
|
|
157
|
+
}
|
|
132
158
|
/** When `event` last happened. */
|
|
133
159
|
const lastSeen = (event) => new Date(event.lastTimestamp ?? event.eventTime ?? event.metadata.creationTimestamp ?? 0).getTime();
|
|
134
160
|
/**
|
|
@@ -156,12 +182,16 @@ export const diagnose = Effect.fnUntraced(function* (ref) {
|
|
|
156
182
|
/**
|
|
157
183
|
* Looks at every ref by `look` until each is ready, every `poll` for `timeout`, saying
|
|
158
184
|
* what it still waits for whenever that changes; fails with why when one fails, or when
|
|
159
|
-
* time runs out.
|
|
185
|
+
* time runs out. A ref one of whose pods is stopping within its grace holds the wait until
|
|
186
|
+
* it is gone, and for `timeout` after the last look that found one.
|
|
160
187
|
*/
|
|
161
188
|
const awaitAll = Effect.fnUntraced(function* (refs, look, why, { timeout, poll }) {
|
|
162
189
|
// What the last look found still waiting, and what was last said of it.
|
|
163
190
|
let pending = [];
|
|
164
191
|
let said = "";
|
|
192
|
+
const timeoutMs = Duration.toMillis(Duration.fromInputUnsafe(timeout));
|
|
193
|
+
const startedAt = yield* Clock.currentTimeMillis;
|
|
194
|
+
let deadline = startedAt + timeoutMs;
|
|
165
195
|
const once = Effect.gen(function* () {
|
|
166
196
|
const states = yield* Effect.forEach(refs, (ref) => Effect.map(look(ref), (state) => [ref, state]), { concurrency: 8 });
|
|
167
197
|
for (const [ref, state] of states) {
|
|
@@ -170,23 +200,53 @@ const awaitAll = Effect.fnUntraced(function* (refs, look, why, { timeout, poll }
|
|
|
170
200
|
}
|
|
171
201
|
pending = states.flatMap(([ref, state]) => (state._tag === "Waiting" ? [[ref, state.status]] : []));
|
|
172
202
|
if (pending.length === 0)
|
|
173
|
-
return;
|
|
203
|
+
return true;
|
|
204
|
+
const now = yield* Clock.currentTimeMillis;
|
|
205
|
+
if (states.some(([, state]) => state._tag === "Waiting" && (state.stoppingUntil ?? 0) > now))
|
|
206
|
+
deadline = Math.max(deadline, now + timeoutMs);
|
|
174
207
|
const saying = pending.map(([ref, status]) => `${ref.name} (${status})`).join(", ");
|
|
175
208
|
if (saying !== said) {
|
|
176
209
|
said = saying;
|
|
177
210
|
yield* Effect.logInfo(`waiting for ${saying}`);
|
|
178
211
|
}
|
|
179
|
-
|
|
212
|
+
if (now >= deadline)
|
|
213
|
+
return yield* new TimedOut();
|
|
214
|
+
return false;
|
|
180
215
|
});
|
|
181
|
-
yield* once.pipe(Effect.retry({
|
|
182
|
-
while: (error) => error._tag !== "RolloutFailed",
|
|
183
|
-
schedule: Schedule.max([Schedule.spaced(poll), Schedule.during(timeout)]),
|
|
184
|
-
}), Effect.catchTag("Pending", () => Effect.forEach(pending, ([ref, status]) => Effect.map(why(ref), (lines) => ({ object: describeRef(ref), status, why: lines }))).pipe(Effect.flatMap((notReady) => Effect.fail(new NotReadyInTime({ within: Duration.toSeconds(timeout), waiting: notReady }))))));
|
|
216
|
+
yield* once.pipe(Effect.retry({ while: (error) => error._tag === "KubeApiError" && Date.now() < deadline, schedule: Schedule.spaced(poll) }), Effect.repeat({ schedule: Schedule.spaced(poll), until: (done) => done }), Effect.catchTag("TimedOut", () => Effect.forEach(pending, ([ref, status]) => Effect.map(why(ref), (lines) => ({ object: describeRef(ref), status, why: lines }))).pipe(Effect.flatMap((notReady) => Effect.fail(new NotReadyInTime({ within: (deadline - startedAt) / 1000, waiting: notReady }))))));
|
|
185
217
|
});
|
|
186
218
|
/** The object `ref`, or null when there is none. */
|
|
187
219
|
const current = (ref) => Effect.flatMap(KubeApi, (kube) => kube.get(ref));
|
|
188
|
-
/**
|
|
189
|
-
|
|
220
|
+
/** What the kubelet answers, in the log's place, for a container that has ended while its pod is still there. */
|
|
221
|
+
const UNRETRIEVABLE_LOG = /^unable to retrieve container logs for /u;
|
|
222
|
+
/**
|
|
223
|
+
* What a pod last logged, of its first container: its last line, alone read, or nothing
|
|
224
|
+
* where it cannot be read, as once that container has ended.
|
|
225
|
+
*/
|
|
226
|
+
const lastLogged = (pod) => Effect.flatMap(KubeApi, (kube) => kube.logs(pod.metadata?.namespace ?? "", pod.metadata?.name ?? "", { container: pod.spec?.containers[0]?.name ?? "", tailLines: 1 }).pipe(Stream.decodeText, Stream.mkString, Effect.map((text) => text.trimEnd().split("\n").at(-1)?.trim() ?? ""), Effect.map((line) => (UNRETRIEVABLE_LOG.test(line) ? "" : line)), Effect.orElseSucceed(() => "")));
|
|
227
|
+
/**
|
|
228
|
+
* Where `object`, a workload, is (readinessOf), and, while it waits, which of its pods stop,
|
|
229
|
+
* each as it may until its grace ends, and what it last logged.
|
|
230
|
+
*/
|
|
231
|
+
const workloadReadiness = (object) => Effect.gen(function* () {
|
|
232
|
+
const state = yield* readinessOf(object);
|
|
233
|
+
const matchLabels = object.spec?.selector?.matchLabels;
|
|
234
|
+
if (state._tag !== "Waiting" || !matchLabels)
|
|
235
|
+
return state;
|
|
236
|
+
const kube = yield* KubeApi;
|
|
237
|
+
const pods = yield* kube.list(POD, { namespace: object.metadata?.namespace, labelSelector: selectorOf(matchLabels) });
|
|
238
|
+
const stopping = pods.filter(({ metadata }) => metadata?.deletionTimestamp !== undefined);
|
|
239
|
+
if (stopping.length === 0)
|
|
240
|
+
return state;
|
|
241
|
+
const said = yield* Effect.forEach(stopping, (pod) => Effect.map(lastLogged(pod), (line) => {
|
|
242
|
+
const until = new Date(pod.metadata?.deletionTimestamp ?? 0).toISOString();
|
|
243
|
+
return `pod ${pod.metadata?.name} on ${pod.spec?.nodeName ?? "no node"} stopping, as it may until ${until}${line === "" ? "" : `, last saying: ${line}`}`;
|
|
244
|
+
}));
|
|
245
|
+
const stoppingUntil = Math.max(...stopping.map(({ metadata }) => new Date(metadata?.deletionTimestamp ?? 0).getTime()));
|
|
246
|
+
return { _tag: "Waiting", status: [state.status, ...said].join("; "), stoppingUntil };
|
|
247
|
+
});
|
|
248
|
+
/** Waits until every ref is ready (readiness), a workload one of whose pods is stopping within its grace for as long as it may. */
|
|
249
|
+
export const awaitReady = (refs, options) => awaitAll(refs, (ref) => Effect.flatMap(current(ref), (object) => (object ? workloadReadiness(object) : Effect.succeed(waiting("not found")))), diagnose, options);
|
|
190
250
|
/**
|
|
191
251
|
* Waits until every StatefulSet ref has made a pod for each of its replicas and each is
|
|
192
252
|
* on a node: scheduled, ready or not. One whose pods start in order makes each only once
|
|
@@ -212,6 +272,4 @@ export const awaitScheduled = (refs, options) => awaitAll(refs, (ref) => Effect.
|
|
|
212
272
|
export const awaitGone = (refs, options) => awaitAll(refs, (ref) => Effect.map(current(ref), (object) => (object ? waiting("being deleted") : READY)), (ref) => Effect.map(current(ref), (object) => (object?.metadata?.finalizers?.length ? [`waits on its finalizers: ${object.metadata.finalizers.join(", ")}`] : [])), options);
|
|
213
273
|
/** Waits until every Job ref has ended, complete or failed, or is gone. */
|
|
214
274
|
export const awaitEnded = (refs, options) => awaitAll(refs, (ref) => Effect.map(current(ref), (job) => (job === null || readiness(job)._tag !== "Waiting" ? READY : waiting("running"))), diagnose, options);
|
|
215
|
-
/** Waits until every volume ref, its claim deleted, is let go of (reclamation). */
|
|
216
|
-
export const awaitReclaimed = (refs, options) => awaitAll(refs, (ref) => Effect.flatMap(KubeApi, (kube) => Effect.map(kube.get(ref), (volume) => (volume ? reclamation(volume) : READY))), diagnose, options);
|
|
217
275
|
//# sourceMappingURL=rollout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollout.js","sourceRoot":"","sources":["../../../../src/kube/rollout.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rollout.js","sourceRoot":"","sources":["../../../../src/kube/rollout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Effect, Option, Schema, Stream } from "effect";
|
|
2
|
+
import { kind, KubeApi, refOf } from "./kube/api.js";
|
|
3
|
+
import { awaitGone, awaitReady, selectorOf } from "./kube/rollout.js";
|
|
4
|
+
import { LAKE_RECONCILE, lakeReconcile } from "./manifests/lake.js";
|
|
5
|
+
/** What the reconciliation logs of a table it lost (neon/lake/src/maintain.ts). */
|
|
6
|
+
const LostTable = Schema.Struct({
|
|
7
|
+
message: Schema.String,
|
|
8
|
+
table: Schema.String,
|
|
9
|
+
files: Schema.Number,
|
|
10
|
+
rows: Schema.Number,
|
|
11
|
+
from: Schema.NullOr(Schema.String),
|
|
12
|
+
to: Schema.NullOr(Schema.String),
|
|
13
|
+
recovered: Schema.NullOr(Schema.Literals(["database", "log", "main"])),
|
|
14
|
+
});
|
|
15
|
+
/** The reconciliation's Job said nothing it could be read by. */
|
|
16
|
+
export class ReconcileUnread extends Schema.TaggedError()("ReconcileUnread", {
|
|
17
|
+
namespace: Schema.String,
|
|
18
|
+
}) {
|
|
19
|
+
get message() {
|
|
20
|
+
return `the lake's reconciliation in ${this.namespace} left no pod whose output could be read`;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/** A reconciliation of the environment's lake runs already, as its Job says, which another would not run beside. */
|
|
24
|
+
export class ReconcileRunning extends Schema.TaggedError()("ReconcileRunning", {
|
|
25
|
+
namespace: Schema.String,
|
|
26
|
+
}) {
|
|
27
|
+
get message() {
|
|
28
|
+
return `a reconciliation of the lake in ${this.namespace} runs already, as its Job ${LAKE_RECONCILE} does: once it ends (kubectl -n ${this.namespace} get job ${LAKE_RECONCILE}), run this again`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/** Whether `job` has ended, complete or failed. */
|
|
32
|
+
const ended = (job) => job.status?.conditions?.some(({ type, status }) => (type === "Complete" || type === "Failed") && status === "True") ?? false;
|
|
33
|
+
/** `count` of `noun`, its plural where it is not one. */
|
|
34
|
+
const counted = (count, noun) => `${count} ${noun}${count === 1 ? "" : "s"}`;
|
|
35
|
+
/** What the lake lost of a table, as people read it. */
|
|
36
|
+
const describeLost = ({ table, files, rows, from, to, recovered }) => `the lake lost ${counted(rows, "row")} of ${table}, in ${counted(files, "file")}${from && to ? `, from ${from} to ${to}` : ""}: ` +
|
|
37
|
+
RECOVERED[recovered ?? "nowhere"];
|
|
38
|
+
/** Where a table's lost rows come back from, as people read it (neon/lake/src/reconcile.ts's Recovery). */
|
|
39
|
+
const RECOVERED = {
|
|
40
|
+
database: "loaded again from alasio's database",
|
|
41
|
+
log: "read again from the log, where it still holds it",
|
|
42
|
+
main: "main's telemetry as of the branch point, which main's lake reads again from the log",
|
|
43
|
+
nowhere: "kept nowhere else",
|
|
44
|
+
};
|
|
45
|
+
const decodeLost = Schema.decodeUnknownOption(Schema.fromJsonString(LostTable));
|
|
46
|
+
/** What the reconciliation logs of telemetry the log no longer holds, from one time to another (neon/lake/src/maintain.ts). */
|
|
47
|
+
const LostForGood = Schema.Struct({
|
|
48
|
+
message: Schema.Literal("lost from the object store, and from the log, which no longer holds it"),
|
|
49
|
+
signal: Schema.String,
|
|
50
|
+
from: Schema.String,
|
|
51
|
+
to: Schema.String,
|
|
52
|
+
});
|
|
53
|
+
const decodeLostForGood = Schema.decodeUnknownOption(Schema.fromJsonString(LostForGood));
|
|
54
|
+
/** What the reconciliation logs of telemetry its intake has not read again yet, as it ends. */
|
|
55
|
+
const StillToRead = Schema.Struct({ message: Schema.Literal("lost from the object store, still to be read again from the log"), signals: Schema.Array(Schema.String) });
|
|
56
|
+
const decodeStillToRead = Schema.decodeUnknownOption(Schema.fromJsonString(StillToRead));
|
|
57
|
+
/** What the reconciliation said of `line`, as people read it: what a table lost, telemetry nothing refills, or telemetry still to be read again; nothing of another line. */
|
|
58
|
+
function describeLine(line) {
|
|
59
|
+
const lost = decodeLost(line);
|
|
60
|
+
if (Option.isSome(lost) && lost.value.message.startsWith("lost from the object store"))
|
|
61
|
+
return [describeLost(lost.value)];
|
|
62
|
+
const gone = decodeLostForGood(line);
|
|
63
|
+
if (Option.isSome(gone))
|
|
64
|
+
return [`the lake's ${gone.value.signal} telemetry from ${gone.value.from} to ${gone.value.to} cannot be refilled: the log no longer holds it`];
|
|
65
|
+
const pending = decodeStillToRead(line);
|
|
66
|
+
if (Option.isSome(pending)) {
|
|
67
|
+
return [`the lake's ${pending.value.signals.join(" and ")} telemetry is still to be read again from the log: its intake had not taken it up as the reconciliation ended`];
|
|
68
|
+
}
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
/** What the reconciliation logs where it failed (neon/lake/src/maintain.ts). */
|
|
72
|
+
const PassFailed = Schema.Struct({ message: Schema.Literal("reconciling the catalog with the object store failed"), error: Schema.String });
|
|
73
|
+
const decodeFailed = Schema.decodeUnknownOption(Schema.fromJsonString(PassFailed));
|
|
74
|
+
/** The reconciliation failed, as it said why. */
|
|
75
|
+
export class ReconcileFailed extends Schema.TaggedError()("ReconcileFailed", {
|
|
76
|
+
namespace: Schema.String,
|
|
77
|
+
error: Schema.String,
|
|
78
|
+
}) {
|
|
79
|
+
get message() {
|
|
80
|
+
return `the lake's reconciliation in ${this.namespace} failed: ${this.error}`;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Runs `environment`'s lake's reconciliation as its Job, afresh, until it completes, and
|
|
85
|
+
* removes it: a line of what the lake lost for each table that lost any, none where none did,
|
|
86
|
+
* and of the telemetry the log no longer holds, or has yet to give back (describeLine); where
|
|
87
|
+
* it failed, why, as it said. Refused while a Job of it runs still, which it leaves to
|
|
88
|
+
* end; one that ended is removed first.
|
|
89
|
+
*/
|
|
90
|
+
export const reconcileLake = Effect.fnUntraced(function* (config, environment, options) {
|
|
91
|
+
const kube = yield* KubeApi;
|
|
92
|
+
const job = lakeReconcile(config, environment);
|
|
93
|
+
const ref = refOf(job);
|
|
94
|
+
const pods = selectorOf({ "batch.kubernetes.io/job-name": LAKE_RECONCILE });
|
|
95
|
+
const removed = Effect.gen(function* () {
|
|
96
|
+
const left = (yield* kube.list(kind("Pod"), { namespace: environment.namespace, labelSelector: pods })).map(refOf);
|
|
97
|
+
yield* Effect.forEach([ref, ...left], (each) => kube.remove(each));
|
|
98
|
+
yield* awaitGone([ref, ...left], options);
|
|
99
|
+
});
|
|
100
|
+
/** What the Job's last pod said, a line each; none where it left no pod. */
|
|
101
|
+
const said = Effect.gen(function* () {
|
|
102
|
+
const made = yield* kube.list(kind("Pod"), { namespace: environment.namespace, labelSelector: pods });
|
|
103
|
+
const pod = made.toSorted((a, b) => (a.metadata?.creationTimestamp?.valueOf() ?? 0) - (b.metadata?.creationTimestamp?.valueOf() ?? 0)).at(-1)?.metadata?.name;
|
|
104
|
+
if (!pod)
|
|
105
|
+
return null;
|
|
106
|
+
return (yield* kube.logs(environment.namespace, pod, { container: "maintenance" }).pipe(Stream.decodeText(), Stream.mkString)).split("\n");
|
|
107
|
+
});
|
|
108
|
+
const running = yield* kube.get(ref);
|
|
109
|
+
if (running && !ended(running))
|
|
110
|
+
return yield* new ReconcileRunning({ namespace: environment.namespace });
|
|
111
|
+
yield* removed;
|
|
112
|
+
yield* kube.apply(job);
|
|
113
|
+
return yield* Effect.gen(function* () {
|
|
114
|
+
yield* awaitReady([ref], options).pipe(Effect.catchTag("RolloutFailed", (failed) => Effect.flatMap(said, (lines) => {
|
|
115
|
+
const why = (lines ?? []).map((line) => decodeFailed(line)).find(Option.isSome);
|
|
116
|
+
return why ? Effect.fail(new ReconcileFailed({ namespace: environment.namespace, error: why.value.error })) : Effect.fail(failed);
|
|
117
|
+
})));
|
|
118
|
+
const lines = yield* said;
|
|
119
|
+
if (!lines)
|
|
120
|
+
return yield* new ReconcileUnread({ namespace: environment.namespace });
|
|
121
|
+
return lines.flatMap(describeLine);
|
|
122
|
+
}).pipe(Effect.ensuring(Effect.ignore(removed)));
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=lake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lake.js","sourceRoot":"","sources":["../../../src/lake.ts"],"names":[],"mappings":"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"}
|