alasio 9.0.0 → 10.0.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/cli/src/bound-harnesses.js +98 -0
- package/dist/cli/src/bound-harnesses.js.map +1 -0
- package/dist/cli/src/branches.js +30 -14
- package/dist/cli/src/branches.js.map +1 -1
- package/dist/cli/src/cluster/docker.js +21 -11
- package/dist/cli/src/cluster/docker.js.map +1 -1
- package/dist/cli/src/cluster/host.js +5 -1
- package/dist/cli/src/cluster/host.js.map +1 -1
- package/dist/cli/src/cluster/k3s.js +68 -3
- package/dist/cli/src/cluster/k3s.js.map +1 -1
- package/dist/cli/src/cluster/node.js +47 -13
- package/dist/cli/src/cluster/node.js.map +1 -1
- package/dist/cli/src/cluster/stargz.js +40 -3
- package/dist/cli/src/cluster/stargz.js.map +1 -1
- package/dist/cli/src/commands/common.js +2 -2
- package/dist/cli/src/commands/common.js.map +1 -1
- package/dist/cli/src/commands/lake.js +1 -1
- package/dist/cli/src/commands/lake.js.map +1 -1
- package/dist/cli/src/commands/login-relay.js +91 -0
- package/dist/cli/src/commands/login-relay.js.map +1 -0
- package/dist/cli/src/commands/login.js +11 -10
- package/dist/cli/src/commands/login.js.map +1 -1
- package/dist/cli/src/commands/logs.js +89 -6
- package/dist/cli/src/commands/logs.js.map +1 -1
- package/dist/cli/src/commands/restart.js +10 -4
- package/dist/cli/src/commands/restart.js.map +1 -1
- package/dist/cli/src/commands/restore-filer-store.js +27 -10
- package/dist/cli/src/commands/restore-filer-store.js.map +1 -1
- package/dist/cli/src/commands/status.js +59 -12
- package/dist/cli/src/commands/status.js.map +1 -1
- package/dist/cli/src/commands/up.js +9 -6
- package/dist/cli/src/commands/up.js.map +1 -1
- package/dist/cli/src/commands/upgrade.js +14 -5
- package/dist/cli/src/commands/upgrade.js.map +1 -1
- package/dist/cli/src/folders.js +9 -13
- package/dist/cli/src/folders.js.map +1 -1
- package/dist/cli/src/gateway-calls.js +14 -8
- package/dist/cli/src/gateway-calls.js.map +1 -1
- package/dist/cli/src/install.js +7 -41
- package/dist/cli/src/install.js.map +1 -1
- package/dist/cli/src/kube/api.js +59 -12
- package/dist/cli/src/kube/api.js.map +1 -1
- package/dist/cli/src/kube/apply.js +107 -9
- package/dist/cli/src/kube/apply.js.map +1 -1
- package/dist/cli/src/kube/object-store-scale.js +10 -7
- package/dist/cli/src/kube/object-store-scale.js.map +1 -1
- package/dist/cli/src/kube/rollout.js +16 -6
- package/dist/cli/src/kube/rollout.js.map +1 -1
- package/dist/cli/src/main.js +2 -1
- package/dist/cli/src/main.js.map +1 -1
- package/dist/cli/src/manifests/admission.js +228 -11
- package/dist/cli/src/manifests/admission.js.map +1 -1
- package/dist/cli/src/manifests/alasio.js +151 -63
- package/dist/cli/src/manifests/alasio.js.map +1 -1
- package/dist/cli/src/manifests/branch.js +6 -1
- package/dist/cli/src/manifests/branch.js.map +1 -1
- package/dist/cli/src/manifests/codex-login.js +101 -0
- package/dist/cli/src/manifests/codex-login.js.map +1 -0
- package/dist/cli/src/manifests/collector.js +26 -21
- package/dist/cli/src/manifests/collector.js.map +1 -1
- package/dist/cli/src/manifests/common.js +50 -23
- package/dist/cli/src/manifests/common.js.map +1 -1
- package/dist/cli/src/manifests/config.js +79 -30
- package/dist/cli/src/manifests/config.js.map +1 -1
- package/dist/cli/src/manifests/disruption.js +8 -3
- package/dist/cli/src/manifests/disruption.js.map +1 -1
- package/dist/cli/src/manifests/folders.js +8 -5
- package/dist/cli/src/manifests/folders.js.map +1 -1
- package/dist/cli/src/manifests/harness-pools.js +236 -0
- package/dist/cli/src/manifests/harness-pools.js.map +1 -0
- package/dist/cli/src/manifests/image-holder.js +61 -0
- package/dist/cli/src/manifests/image-holder.js.map +1 -0
- package/dist/cli/src/manifests/index.js +6 -2
- package/dist/cli/src/manifests/index.js.map +1 -1
- package/dist/cli/src/manifests/keda.js +4 -2
- package/dist/cli/src/manifests/keda.js.map +1 -1
- package/dist/cli/src/manifests/lake.js +1 -17
- package/dist/cli/src/manifests/lake.js.map +1 -1
- package/dist/cli/src/manifests/log.js +63 -16
- package/dist/cli/src/manifests/log.js.map +1 -1
- package/dist/cli/src/manifests/neon.js +57 -77
- package/dist/cli/src/manifests/neon.js.map +1 -1
- package/dist/cli/src/manifests/network-policies.js +111 -39
- package/dist/cli/src/manifests/network-policies.js.map +1 -1
- package/dist/cli/src/manifests/node-agent.js +39 -19
- package/dist/cli/src/manifests/node-agent.js.map +1 -1
- package/dist/cli/src/manifests/object-store.js +98 -24
- package/dist/cli/src/manifests/object-store.js.map +1 -1
- package/dist/cli/src/manifests/sandbox-gateway.js +147 -46
- package/dist/cli/src/manifests/sandbox-gateway.js.map +1 -1
- package/dist/cli/src/manifests/scalers.js +5 -4
- package/dist/cli/src/manifests/scalers.js.map +1 -1
- package/dist/cli/src/manifests/sizing.js +1 -1
- package/dist/cli/src/manifests/sizing.js.map +1 -1
- package/dist/cli/src/manifests/valkey.js +19 -5
- package/dist/cli/src/manifests/valkey.js.map +1 -1
- package/dist/cli/src/manifests/volume-lock.js +43 -0
- package/dist/cli/src/manifests/volume-lock.js.map +1 -0
- package/dist/cli/src/manifests/vpa.js +12 -1
- package/dist/cli/src/manifests/vpa.js.map +1 -1
- package/dist/cli/src/manifests/workspace-storage.js +19 -16
- package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
- package/dist/cli/src/neon-storage.js +0 -2
- package/dist/cli/src/neon-storage.js.map +1 -1
- package/dist/cli/src/release.js +9 -9
- package/dist/cli/src/release.js.map +1 -1
- package/dist/cli/src/target.js +2 -2
- package/dist/cli/src/target.js.map +1 -1
- package/dist/cli/src/telegram.js +13 -4
- package/dist/cli/src/telegram.js.map +1 -1
- package/dist/cli/src/wakes.js +68 -0
- package/dist/cli/src/wakes.js.map +1 -0
- package/dist/cli/src/webhook.js +5 -2
- package/dist/cli/src/webhook.js.map +1 -1
- package/dist/cluster/node/pins.json +6 -5
- package/dist/neon/control/branches.js +11 -4
- package/dist/neon/control/branches.js.map +1 -1
- package/dist/neon/control/endpoints.js +81 -10
- package/dist/neon/control/endpoints.js.map +1 -1
- package/dist/neon/control/secrets.js +11 -6
- package/dist/neon/control/secrets.js.map +1 -1
- package/dist/src/binder/bindings.js +195 -0
- package/dist/src/binder/bindings.js.map +1 -0
- package/dist/src/binder/names.js +30 -0
- package/dist/src/binder/names.js.map +1 -1
- package/dist/src/binder/tokens.js +17 -4
- package/dist/src/binder/tokens.js.map +1 -1
- package/dist/src/branch/names.js +10 -6
- package/dist/src/branch/names.js.map +1 -1
- package/dist/src/events/names.js +24 -3
- package/dist/src/events/names.js.map +1 -1
- package/dist/src/gateway/names.js +44 -5
- package/dist/src/gateway/names.js.map +1 -1
- package/dist/src/harness/names.js +18 -0
- package/dist/src/harness/names.js.map +1 -1
- package/dist/src/kube/client.js +212 -0
- package/dist/src/kube/client.js.map +1 -0
- package/dist/src/kube/sandbox-shape.js +6 -0
- package/dist/src/kube/sandbox-shape.js.map +1 -1
- package/dist/src/kube/started-map.js +12 -0
- package/dist/src/kube/started-map.js.map +1 -0
- package/dist/src/node-agent/names.js +16 -8
- package/dist/src/node-agent/names.js.map +1 -1
- package/dist/src/telegram/bot-commands.js +17 -0
- package/dist/src/telegram/bot-commands.js.map +1 -0
- package/dist/src/telegram/stop.js +12 -0
- package/dist/src/telegram/stop.js.map +1 -0
- package/package.json +1 -1
package/dist/cli/src/install.js
CHANGED
|
@@ -8,8 +8,8 @@ import { describeRef, hasStatus, kind, KubeApi, refOf } from "./kube/api.js";
|
|
|
8
8
|
import { applyInstallation, labelled } from "./kube/apply.js";
|
|
9
9
|
import { checkAutoscalers } from "./kube/autoscalers.js";
|
|
10
10
|
import { checkObjectStoreLayout, checkObjectStoreScale } from "./kube/object-store-scale.js";
|
|
11
|
-
import { labels, NAMESPACE
|
|
12
|
-
import { mountServices as mountServicesOf
|
|
11
|
+
import { labels, NAMESPACE } from "./manifests/common.js";
|
|
12
|
+
import { mountServices as mountServicesOf } from "./manifests/sandbox-gateway.js";
|
|
13
13
|
import { carriedFrom, manifests, NOTHING_CARRIED } from "./manifests/index.js";
|
|
14
14
|
import { checkNeonStorage } from "./neon-storage.js";
|
|
15
15
|
import { botChecksum, ensureBotChecksumKey, readBotChecksumKey, readClaudeToken, readTelegramBot } from "./secrets.js";
|
|
@@ -55,7 +55,7 @@ export const installConfig = Effect.fnUntraced(function* (config) {
|
|
|
55
55
|
return install.success;
|
|
56
56
|
});
|
|
57
57
|
/** Whether the installation `settings` confines what reaches its API server to it, by NetworkPolicies, but could not, as `apiServer` was not read. */
|
|
58
|
-
export const apiServerUnconfined = (settings, apiServer) => apiServer === null && settings.networkPolicies.enabled
|
|
58
|
+
export const apiServerUnconfined = (settings, apiServer) => apiServer === null && settings.networkPolicies.enabled;
|
|
59
59
|
/** An object the cluster has that cannot take this release's of it, and why, as a dry run of its apply said. */
|
|
60
60
|
const Refusal = Schema.Struct({ object: Schema.String, reason: Schema.String });
|
|
61
61
|
/**
|
|
@@ -86,42 +86,12 @@ const checkApplicable = (objects) => Effect.flatMap(KubeApi, (kube) => Effect.fo
|
|
|
86
86
|
const [first, ...more] = refused;
|
|
87
87
|
return first === undefined ? Effect.void : Effect.fail(new ObjectRefused({ refused: [first, ...more] }));
|
|
88
88
|
})));
|
|
89
|
-
/**
|
|
90
|
-
* The sessions' namespace holds session workspaces of the release before: its Sandboxes, and
|
|
91
|
-
* their workspaces' claims, which this release runs no session on and moves nothing of. alasio
|
|
92
|
-
* applies nothing while one remains, saying how to delete each, which deletes its files.
|
|
93
|
-
*/
|
|
94
|
-
export class SessionWorkspacesLeft extends Schema.TaggedError()("SessionWorkspacesLeft", {
|
|
95
|
-
namespace: Schema.String,
|
|
96
|
-
sandboxes: Schema.Array(Schema.String),
|
|
97
|
-
claims: Schema.Array(Schema.String),
|
|
98
|
-
}) {
|
|
99
|
-
get message() {
|
|
100
|
-
const deletions = [
|
|
101
|
-
...this.sandboxes.map((name) => `kubectl -n ${this.namespace} delete sandboxes.agents.x-k8s.io ${name}`),
|
|
102
|
-
...this.claims.map((name) => `kubectl -n ${this.namespace} delete pvc ${name}`),
|
|
103
|
-
];
|
|
104
|
-
return `${this.namespace} holds session workspaces of the release before (${[...this.sandboxes.map((name) => `Sandbox ${name}`), ...this.claims.map((name) => `claim ${name}`)].join(", ")}), ` +
|
|
105
|
-
`which this release runs no session on and moves nothing of, so alasio applies nothing: delete each first, its files with it (${deletions.join("; ")})`;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/** Refuses a cluster whose sessions' namespace, `namespace`, holds the release before's session workspaces (SessionWorkspacesLeft); none where its Sandboxes' CRD is gone. */
|
|
109
|
-
const checkSessionWorkspacesGone = (namespace) => Effect.gen(function* () {
|
|
110
|
-
const kube = yield* KubeApi;
|
|
111
|
-
const names = (objects) => objects.map(({ metadata }) => metadata?.name ?? "").sort();
|
|
112
|
-
const sandboxes = names(yield* kube.list(kind("Sandbox"), { namespace }).pipe(Effect.catchIf(hasStatus(404), () => Effect.succeed([]))));
|
|
113
|
-
// This release claims no volume there: each claim is a workspace of the release before's.
|
|
114
|
-
const claims = names(yield* kube.list(kind("PersistentVolumeClaim"), { namespace }));
|
|
115
|
-
if (sandboxes.length > 0 || claims.length > 0)
|
|
116
|
-
return yield* new SessionWorkspacesLeft({ namespace, sandboxes, claims });
|
|
117
|
-
});
|
|
118
89
|
/**
|
|
119
90
|
* The installation `config` describes, with its bot, refused where applying it would not do:
|
|
120
91
|
* with no bot set, or one that allows no user, with no address for Telegram to deliver to,
|
|
121
92
|
* against the cluster's own autoscalers, its object store's layout and scale, or Neon's
|
|
122
|
-
* storage (./neon-storage.ts), where the
|
|
123
|
-
*
|
|
124
|
-
* release's of it. Its objects carry forward what the installation they replace recorded.
|
|
93
|
+
* storage (./neon-storage.ts), or where an object the cluster has cannot take this release's
|
|
94
|
+
* of it. Its objects carry forward what the installation they replace recorded.
|
|
125
95
|
*/
|
|
126
96
|
export const checkInstallation = Effect.fnUntraced(function* (config, wait) {
|
|
127
97
|
const bot = yield* readTelegramBot;
|
|
@@ -144,15 +114,13 @@ export const checkInstallation = Effect.fnUntraced(function* (config, wait) {
|
|
|
144
114
|
yield* checkObjectStoreLayout(objects);
|
|
145
115
|
yield* checkObjectStoreScale(objects);
|
|
146
116
|
yield* checkNeonStorage(settings, wait);
|
|
147
|
-
if (settings.sessions.enabled)
|
|
148
|
-
yield* checkSessionWorkspacesGone(settings.sessions.namespace);
|
|
149
117
|
yield* checkApplicable(objects);
|
|
150
118
|
return { bot, settings, objects, liveGateway, recorded, gvisorReleases, checksum, apiServer, mountServices };
|
|
151
119
|
});
|
|
152
120
|
/**
|
|
153
121
|
* Applies the installation `config` describes, once its bot is set, waits until it runs,
|
|
154
|
-
* and has Telegram deliver main's bot's updates to it.
|
|
155
|
-
*
|
|
122
|
+
* and has Telegram deliver main's bot's updates to it. It holds sessions, which are
|
|
123
|
+
* snapshotted, to the CPU baseline it recorded before, then to the one the node agents' pods
|
|
156
124
|
* then say (./cpu-baseline.ts), applied again where that differs.
|
|
157
125
|
*/
|
|
158
126
|
export const install = Effect.fnUntraced(function* (config, options) {
|
|
@@ -162,8 +130,6 @@ export const install = Effect.fnUntraced(function* (config, options) {
|
|
|
162
130
|
yield* applyInstallation(objects, options);
|
|
163
131
|
yield* registerBot(settings, "main", bot, route, options);
|
|
164
132
|
const installed = { bot, claude: settings.alasio.claude.existingSecret !== "", apiServerUnconfined: apiServerUnconfined(settings, apiServer) };
|
|
165
|
-
if (!nodeAgentRuns(settings))
|
|
166
|
-
return { ...installed, cpuBaseline: null };
|
|
167
133
|
const decision = decideCpuBaseline(yield* surveyCpu, recorded);
|
|
168
134
|
// Carried from the installation before this one, as the first apply carried it.
|
|
169
135
|
if (!sameBaseline(decision.baseline, recorded)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/install.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAkB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAuB,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAyB,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAqB,KAAK,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAmB,iBAAiB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAA2B,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAgC,MAAM,8BAA8B,CAAC;AAG3H,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/install.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/src/kube/api.js
CHANGED
|
@@ -14,9 +14,9 @@ import { request as httpRequest, STATUS_CODES } from "node:http";
|
|
|
14
14
|
import { request as httpsRequest } from "node:https";
|
|
15
15
|
import { buffer } from "node:stream/consumers";
|
|
16
16
|
import { inspect } from "node:util";
|
|
17
|
-
import
|
|
17
|
+
import * as NodeStream from "@effect/platform-node/NodeStream";
|
|
18
18
|
import { Exec, KubeConfig, PortForward } from "@kubernetes/client-node";
|
|
19
|
-
import { Context, Effect, Layer, Predicate, Schema, Stream } from "effect";
|
|
19
|
+
import { Clock, Context, Duration, Effect, Layer, Predicate, Schema, Stream } from "effect";
|
|
20
20
|
/** The kinds alasio's command line reads or makes, by name: their API version, their resource's plural, and whether their objects are in a namespace. */
|
|
21
21
|
const KINDS = {
|
|
22
22
|
CustomResourceDefinition: { apiVersion: "apiextensions.k8s.io/v1", plural: "customresourcedefinitions", namespaced: false },
|
|
@@ -41,6 +41,7 @@ const KINDS = {
|
|
|
41
41
|
EndpointSlice: { apiVersion: "discovery.k8s.io/v1", plural: "endpointslices", namespaced: true },
|
|
42
42
|
Pod: { apiVersion: "v1", plural: "pods", namespaced: true },
|
|
43
43
|
Event: { apiVersion: "v1", plural: "events", namespaced: true },
|
|
44
|
+
Lease: { apiVersion: "coordination.k8s.io/v1", plural: "leases", namespaced: true },
|
|
44
45
|
NetworkPolicy: { apiVersion: "networking.k8s.io/v1", plural: "networkpolicies", namespaced: true },
|
|
45
46
|
PodDisruptionBudget: { apiVersion: "policy/v1", plural: "poddisruptionbudgets", namespaced: true },
|
|
46
47
|
Deployment: { apiVersion: "apps/v1", plural: "deployments", namespaced: true },
|
|
@@ -48,8 +49,9 @@ const KINDS = {
|
|
|
48
49
|
DaemonSet: { apiVersion: "apps/v1", plural: "daemonsets", namespaced: true },
|
|
49
50
|
Job: { apiVersion: "batch/v1", plural: "jobs", namespaced: true },
|
|
50
51
|
CronJob: { apiVersion: "batch/v1", plural: "cronjobs", namespaced: true },
|
|
51
|
-
Sandbox: { apiVersion: "agents.x-k8s.io/v1beta1", plural: "sandboxes", namespaced: true },
|
|
52
52
|
ScaledObject: { apiVersion: "keda.sh/v1alpha1", plural: "scaledobjects", namespaced: true },
|
|
53
|
+
// What KEDA makes of a ScaledObject, whose metrics name its triggers', in their order.
|
|
54
|
+
HorizontalPodAutoscaler: { apiVersion: "autoscaling/v2", plural: "horizontalpodautoscalers", namespaced: true },
|
|
53
55
|
TriggerAuthentication: { apiVersion: "keda.sh/v1alpha1", plural: "triggerauthentications", namespaced: true },
|
|
54
56
|
VerticalPodAutoscaler: { apiVersion: "autoscaling.k8s.io/v1", plural: "verticalpodautoscalers", namespaced: true },
|
|
55
57
|
// What the cluster's metrics server measures its pods and nodes using now.
|
|
@@ -91,6 +93,8 @@ export class KubeApiError extends Schema.TaggedError()("KubeApiError", {
|
|
|
91
93
|
call: Schema.String,
|
|
92
94
|
/** The API's HTTP status (404 for absent, 409 for a conflict), when it answered. */
|
|
93
95
|
status: Schema.optional(Schema.Number),
|
|
96
|
+
/** How long the API said to wait before asking again, in seconds (its Retry-After), when it said. */
|
|
97
|
+
retryAfterSeconds: Schema.optional(Schema.Number),
|
|
94
98
|
/** What the API answered, or why it could not be reached. */
|
|
95
99
|
reason: Schema.String,
|
|
96
100
|
}) {
|
|
@@ -118,8 +122,12 @@ export const hasStatus = (status) => (error) => error.status === status;
|
|
|
118
122
|
export const FIELD_MANAGER = "alasio";
|
|
119
123
|
/** The Kubernetes API a kubeconfig reaches, as alasio's command line calls it. */
|
|
120
124
|
export class KubeApi extends Context.Service()("alasio/kube/KubeApi") {
|
|
121
|
-
/**
|
|
122
|
-
|
|
125
|
+
/**
|
|
126
|
+
* The API `kubeconfig` reaches, a call it is too busy for asked again for BUSY_WITHIN at most,
|
|
127
|
+
* and never past `busyUntil`, in milliseconds since the epoch, where given: the deadline of the
|
|
128
|
+
* command it serves.
|
|
129
|
+
*/
|
|
130
|
+
static layer = (kubeconfig, { busyUntil } = {}) => Layer.effect(KubeApi, Effect.map(loadKubeConfig(kubeconfig), (kubeConfig) => makeKubeApi(kubeConfig, busyUntil)));
|
|
123
131
|
}
|
|
124
132
|
/** The kubeconfig `ref` names, at its context. */
|
|
125
133
|
const loadKubeConfig = (ref) => Effect.try({
|
|
@@ -151,8 +159,19 @@ function exitCodeOf(status) {
|
|
|
151
159
|
const cause = status.details?.causes?.find((entry) => entry.reason === "ExitCode");
|
|
152
160
|
return cause ? Number(cause.message) : null;
|
|
153
161
|
}
|
|
154
|
-
/**
|
|
155
|
-
|
|
162
|
+
/**
|
|
163
|
+
* The statuses an API server answers a call with as it is too busy to serve it, or timed it out,
|
|
164
|
+
* which it may serve asked again: 429 Too Many Requests, 503 Service Unavailable, 504 Gateway
|
|
165
|
+
* Timeout (its own request timeout, "context deadline exceeded"). No other: a 500 says the call
|
|
166
|
+
* itself failed, which asking again need not change.
|
|
167
|
+
*/
|
|
168
|
+
const BUSY_STATUSES = new Set([429, 503, 504]);
|
|
169
|
+
/** The longest wait between asks of a call the API was too busy for, where it said none. */
|
|
170
|
+
const BUSY_WAIT_AT_MOST = Duration.seconds(10);
|
|
171
|
+
/** How long a call the API is too busy for is asked again for, at most, from its first ask. */
|
|
172
|
+
export const BUSY_WITHIN = Duration.minutes(1);
|
|
173
|
+
/** The API `kubeConfig` reaches, at its current context, a call it is too busy for asked again as `busy` says, never past `busyUntil` where given. */
|
|
174
|
+
function makeKubeApi(kubeConfig, busyUntil) {
|
|
156
175
|
const server = new URL(kubeConfig.getCurrentCluster()?.server ?? "");
|
|
157
176
|
const request = server.protocol === "http:" ? httpRequest : httpsRequest;
|
|
158
177
|
const executor = new Exec(kubeConfig);
|
|
@@ -178,6 +197,8 @@ function makeKubeApi(kubeConfig) {
|
|
|
178
197
|
/** The API's refusal of `call`: the status of `response`, and the message of the Status its body holds. */
|
|
179
198
|
const refusal = (call, response) => readAll(call, response).pipe(Effect.flatMap((content) => {
|
|
180
199
|
const status = response.statusCode ?? 0;
|
|
200
|
+
const said = response.headers["retry-after"]?.trim();
|
|
201
|
+
const retryAfter = said ? Number(said) : Number.NaN;
|
|
181
202
|
const text = content.toString("utf8").trim();
|
|
182
203
|
let reason = text || STATUS_CODES[status] || "no message";
|
|
183
204
|
try {
|
|
@@ -188,7 +209,7 @@ function makeKubeApi(kubeConfig) {
|
|
|
188
209
|
catch {
|
|
189
210
|
// Not JSON: the text is the message.
|
|
190
211
|
}
|
|
191
|
-
return Effect.fail(new KubeApiError({ call: describeCall(call), status, reason }));
|
|
212
|
+
return Effect.fail(new KubeApiError({ call: describeCall(call), status, reason, ...(Number.isFinite(retryAfter) && retryAfter >= 0 ? { retryAfterSeconds: retryAfter } : {}) }));
|
|
192
213
|
}));
|
|
193
214
|
/** The response to `call`, open while the scope is; a status of 400 or over is its refusal. */
|
|
194
215
|
const open = (call) => Effect.acquireRelease(Effect.flatMap(send(call), (sent) => Effect.callback((resume) => {
|
|
@@ -196,8 +217,29 @@ function makeKubeApi(kubeConfig) {
|
|
|
196
217
|
sent.on("error", (cause) => resume(Effect.fail(unreachable(call, cause))));
|
|
197
218
|
return Effect.sync(() => sent.destroy());
|
|
198
219
|
})), (response) => Effect.sync(() => response.destroy())).pipe(Effect.tap((response) => ((response.statusCode ?? 0) >= 400 ? refusal(call, response) : Effect.void)));
|
|
199
|
-
/** The JSON the API answers `call` with. */
|
|
200
|
-
const json = (call) => Effect.scoped(Effect.flatMap(open(call), (response) => readAll(call, response))).pipe(Effect.map((content) => JSON.parse(content.toString("utf8"))));
|
|
220
|
+
/** The JSON the API answers `call` with, asked again while the API is too busy to answer it (busy). */
|
|
221
|
+
const json = (call) => busy(Effect.scoped(Effect.flatMap(open(call), (response) => readAll(call, response))).pipe(Effect.map((content) => JSON.parse(content.toString("utf8")))));
|
|
222
|
+
/**
|
|
223
|
+
* `asked`, asked again while the API answers it as too busy to (BUSY_STATUSES), after the wait
|
|
224
|
+
* it says (its Retry-After), or one of its own doubling from a second to BUSY_WAIT_AT_MOST:
|
|
225
|
+
* for BUSY_WITHIN from the first ask at most, and never past `busyUntil`, where given, the
|
|
226
|
+
* deadline of what makes the call (`up`'s, as its --timeout ends); then failing as it was last
|
|
227
|
+
* answered. The bound says when the next ask may start: an ask under way, as one the server
|
|
228
|
+
* itself times out after its own request timeout, ends as it ends. A 503 or 504 may come of a
|
|
229
|
+
* call the API server did, behind its own timeout: so every call of these is one a second ask
|
|
230
|
+
* does no more than the first did, and alasio makes no other (KubeCall): a read; a server-side
|
|
231
|
+
* apply or merge patch, which sets what it sets again, or, made over the version it read, is
|
|
232
|
+
* refused 409, for its caller to read again; or a delete, which a second ask finds done, 404,
|
|
233
|
+
* which remove takes as done.
|
|
234
|
+
*/
|
|
235
|
+
const busy = (asked) => Effect.flatMap(Clock.currentTimeMillis, (began) => {
|
|
236
|
+
const until = Math.min(began + Duration.toMillis(BUSY_WITHIN), busyUntil ?? Number.POSITIVE_INFINITY);
|
|
237
|
+
const attempt = (own) => Effect.catchIf(asked, (error) => error.status !== undefined && BUSY_STATUSES.has(error.status), (error) => Effect.flatMap(Clock.currentTimeMillis, (now) => {
|
|
238
|
+
const wait = error.retryAfterSeconds ?? own / 1000;
|
|
239
|
+
return now + wait * 1000 > until ? Effect.fail(error) : Effect.andThen(Effect.sleep(Duration.seconds(wait)), attempt(Math.min(own * 2, Duration.toMillis(BUSY_WAIT_AT_MOST))));
|
|
240
|
+
}));
|
|
241
|
+
return attempt(1000);
|
|
242
|
+
});
|
|
201
243
|
const exec = Effect.fnUntraced(function* ({ namespace, pod, container }, command, { stdin, stdout, stderr, tty }) {
|
|
202
244
|
const call = { method: "GET", path: `/api/v1/namespaces/${namespace}/pods/${pod}/exec` };
|
|
203
245
|
// Held in an object: the status callback sets it where control flow cannot see.
|
|
@@ -266,15 +308,20 @@ function makeKubeApi(kubeConfig) {
|
|
|
266
308
|
body: { contentType: "application/apply-patch+yaml", content: object },
|
|
267
309
|
}),
|
|
268
310
|
get: (ref) => json({ method: "GET", path: objectPath(ref) }).pipe(Effect.catchIf(hasStatus(404), () => Effect.succeed(null))),
|
|
311
|
+
externalMetric: (namespace, name, labelSelector) => json({
|
|
312
|
+
method: "GET",
|
|
313
|
+
path: `/apis/external.metrics.k8s.io/v1beta1/namespaces/${encodeURIComponent(namespace)}/${encodeURIComponent(name)}`,
|
|
314
|
+
query: { labelSelector },
|
|
315
|
+
}).pipe(Effect.map(({ items }) => (items ?? []).map(({ value }) => value))),
|
|
269
316
|
nodePods: (node) => json({ method: "GET", path: `/api/v1/nodes/${encodeURIComponent(node)}/proxy/pods` }).pipe(Effect.map(({ items }) => items ?? [])),
|
|
270
317
|
list: (kind, { namespace, labelSelector, fieldSelector } = {}) => json({ method: "GET", path: collectionPath(kind, namespace), query: { labelSelector, fieldSelector } }).pipe(Effect.map(({ items }) => items.map((item) => ({ ...item, apiVersion: kind.apiVersion, kind: kind.kind })))),
|
|
271
318
|
patch: (ref, patch, fieldManager) => json({ method: "PATCH", path: objectPath(ref), query: { fieldManager }, body: { contentType: "application/merge-patch+json", content: patch } }),
|
|
272
319
|
remove: (ref) => json({ method: "DELETE", path: objectPath(ref), query: { propagationPolicy: "Background" } }).pipe(Effect.asVoid, Effect.catchIf(hasStatus(404), () => Effect.void)),
|
|
273
|
-
logs: (namespace, pod, { container, follow = false, sinceSeconds, previous = false, tailLines }) => {
|
|
320
|
+
logs: (namespace, pod, { container, follow = false, sinceSeconds, previous = false, tailLines, timestamps = false }) => {
|
|
274
321
|
const call = {
|
|
275
322
|
method: "GET",
|
|
276
323
|
path: `/api/v1/namespaces/${encodeURIComponent(namespace)}/pods/${encodeURIComponent(pod)}/log`,
|
|
277
|
-
query: { container, follow: String(follow), sinceSeconds: sinceSeconds === undefined ? undefined : String(sinceSeconds), previous: previous ? "true" : undefined, tailLines: tailLines === undefined ? undefined : String(tailLines) },
|
|
324
|
+
query: { container, follow: String(follow), sinceSeconds: sinceSeconds === undefined ? undefined : String(sinceSeconds), previous: previous ? "true" : undefined, tailLines: tailLines === undefined ? undefined : String(tailLines), timestamps: timestamps ? "true" : undefined },
|
|
278
325
|
};
|
|
279
326
|
return Stream.unwrap(Effect.map(open(call), (response) => NodeStream.fromReadable({ evaluate: () => response, onError: (cause) => unreachable(call, cause) })));
|
|
280
327
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/kube/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/kube/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { Duration, Effect } from "effect";
|
|
2
|
-
import {
|
|
1
|
+
import { Clock, Duration, Effect, Schedule, Schema } from "effect";
|
|
2
|
+
import { POOL_LABEL } from "../../../src/binder/names.js";
|
|
3
|
+
import { harnessPoolPodPolicyName } from "../manifests/admission.js";
|
|
4
|
+
import { APPLIED_AFTER_ANNOTATION, RELEASE } from "../manifests/common.js";
|
|
5
|
+
import { FOLDER_HARNESS_POOLS, HARNESS_POOLS } from "../manifests/harness-pools.js";
|
|
3
6
|
import { describeRef, FIELD_MANAGER, hasStatus, kind, KubeApi, refOf } from "./api.js";
|
|
4
7
|
import { awaitGone, awaitReady, selectorOf } from "./rollout.js";
|
|
5
8
|
/** The label every object of an installation carries, whose value is the installation: what prune and removal find its objects by. */
|
|
@@ -32,6 +35,8 @@ const PHASES = [
|
|
|
32
35
|
["Deployment", "StatefulSet", "DaemonSet", "CronJob"],
|
|
33
36
|
["TriggerAuthentication", "ScaledObject", "VerticalPodAutoscaler"],
|
|
34
37
|
];
|
|
38
|
+
/** The phase of PHASES `object` is applied in, by its index; -1 where none applies it. */
|
|
39
|
+
const phaseOf = (object) => PHASES.findIndex((phase) => phase.some((name) => name === object.kind));
|
|
35
40
|
/** The kinds alasio makes, in the order it applies them. */
|
|
36
41
|
const MADE_KINDS = PHASES.flat().map(kind);
|
|
37
42
|
/** The kinds of the workloads alasio waits for until they run. */
|
|
@@ -80,6 +85,45 @@ export function labelled(object) {
|
|
|
80
85
|
return { ...object, metadata: { ...object.metadata, labels: { ...object.metadata?.labels, [INSTALLATION_LABEL]: RELEASE } } };
|
|
81
86
|
}
|
|
82
87
|
const key = (ref) => `${ref.apiVersion}/${ref.kind}/${ref.namespace ?? ""}/${ref.name}`;
|
|
88
|
+
/** How long the harness pools' pods' policy is waited for to come into force before their pools are made, at most. */
|
|
89
|
+
const POLICY_IN_FORCE_MS = 60_000;
|
|
90
|
+
/** How often whether it is in force is asked. */
|
|
91
|
+
const POLICY_PROBE_EVERY = "200 millis";
|
|
92
|
+
/** The harness pools' pods' policy was not in force in time, so none of their pools was made. */
|
|
93
|
+
export class PolicyNotInForce extends Schema.TaggedError()("PolicyNotInForce", { policy: Schema.String, reason: Schema.String }) {
|
|
94
|
+
get message() {
|
|
95
|
+
return `the policy that holds the harness pools' pods to their templates, ${this.policy}, was not in force within ${POLICY_IN_FORCE_MS / 1000} s (${this.reason}), so none of their pools was made`;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/** A dry run's pod the policy did not refuse, as it was made, or refused for another reason: why. */
|
|
99
|
+
class NotYetInForce extends Schema.TaggedError()("NotYetInForce", { reason: Schema.String }) {
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Waits, where `objects` hold an environment's harness pools and the policy that holds their
|
|
103
|
+
* pods to their templates (../manifests/admission.ts harnessPoolPodPolicy), until the API server
|
|
104
|
+
* holds pods to it, as a policy comes into force a moment after it is applied, and a pool's pod
|
|
105
|
+
* made before would be held to none: in force once it refuses a pod of a pool's labels but of
|
|
106
|
+
* none of its template, made as a dry run. One made, or refused for another reason, as by a
|
|
107
|
+
* namespace whose ServiceAccount is not made yet, is asked again, for POLICY_IN_FORCE_MS at most.
|
|
108
|
+
*/
|
|
109
|
+
const harnessPoolPolicyInForce = Effect.fnUntraced(function* (objects) {
|
|
110
|
+
const kube = yield* KubeApi;
|
|
111
|
+
const pools = [...Object.values(HARNESS_POOLS), ...Object.values(FOLDER_HARNESS_POOLS)];
|
|
112
|
+
const policy = objects.find(({ kind: of, metadata }) => of === "ValidatingAdmissionPolicy" && metadata?.name?.startsWith(harnessPoolPodPolicyName(null)))?.metadata?.name;
|
|
113
|
+
const pool = objects.filter(({ kind: of }) => of === "Deployment").find((deployment) => pools.includes(deployment.spec?.template.metadata?.labels?.[POOL_LABEL] ?? ""));
|
|
114
|
+
if (!policy || !pool)
|
|
115
|
+
return;
|
|
116
|
+
const probe = {
|
|
117
|
+
apiVersion: "v1",
|
|
118
|
+
kind: "Pod",
|
|
119
|
+
metadata: { name: "alasio-policy-probe", namespace: pool.metadata?.namespace ?? "", labels: { ...pool.spec?.template.metadata?.labels } },
|
|
120
|
+
spec: { containers: [{ name: "probe", image: "alasio-policy-probe" }] },
|
|
121
|
+
};
|
|
122
|
+
yield* kube.dryApply(probe).pipe(Effect.matchEffect({
|
|
123
|
+
onFailure: (error) => (error.reason.includes(policy) ? Effect.void : Effect.fail(new NotYetInForce({ reason: error.reason }))),
|
|
124
|
+
onSuccess: () => Effect.fail(new NotYetInForce({ reason: "a pod of none of its templates was made" })),
|
|
125
|
+
}), Effect.retry({ schedule: Schedule.max([Schedule.spaced(POLICY_PROBE_EVERY), Schedule.during(POLICY_IN_FORCE_MS)]) }), Effect.mapError(({ reason }) => new PolicyNotInForce({ policy, reason })));
|
|
126
|
+
});
|
|
83
127
|
/** The installation's objects of `kinds`, as it has them now: none of a kind whose CRD the cluster lacks. */
|
|
84
128
|
const installed = (kinds) => Effect.flatMap(KubeApi, (kube) => Effect.forEach(kinds, (each) => kube.list(each, { labelSelector: INSTALLATION_SELECTOR }).pipe(Effect.catchIf(hasStatus(404), () => Effect.succeed([]))), { concurrency: 4 }).pipe(Effect.map((lists) => lists.flat())));
|
|
85
129
|
/** Runs `job` to completion afresh: one of its name that ran before is deleted first, as a Job's pod template cannot change, and it is deleted once done. */
|
|
@@ -159,15 +203,55 @@ const replaceChangedClasses = Effect.fnUntraced(function* (objects, options) {
|
|
|
159
203
|
yield* Effect.forEach(changed, (object) => kube.remove(refOf(object)), { discard: true });
|
|
160
204
|
yield* awaitGone(changed.map(refOf), options);
|
|
161
205
|
});
|
|
206
|
+
/** The workloads of `objects` that `object` is applied only once they are ready, as its APPLIED_AFTER_ANNOTATION names them, in its order. */
|
|
207
|
+
const appliedOnceReady = (object, objects) => {
|
|
208
|
+
const refs = new Map(objects.map(refOf).map((ref) => [nameOf(ref), ref]));
|
|
209
|
+
// In the order the annotation names them.
|
|
210
|
+
return namedBy(object).flatMap((named) => refs.get(named) ?? []);
|
|
211
|
+
};
|
|
212
|
+
/** How APPLIED_AFTER_ANNOTATION names `ref`. */
|
|
213
|
+
const nameOf = (ref) => `${ref.kind}/${ref.namespace ?? ""}/${ref.name}`;
|
|
214
|
+
/** What `object`'s APPLIED_AFTER_ANNOTATION names. */
|
|
215
|
+
const namedBy = (object) => (object.metadata?.annotations?.[APPLIED_AFTER_ANNOTATION] ?? "").split(",").filter(Boolean);
|
|
216
|
+
/**
|
|
217
|
+
* What `object` of `batch`, one phase's of `objects`, names in its APPLIED_AFTER_ANNOTATION that
|
|
218
|
+
* `objects` has in another phase: a manifest's mistake, as a wait is among its own phase's alone.
|
|
219
|
+
* What `objects` has not, as a filer store where another object store serves the bucket, is no
|
|
220
|
+
* mistake, and waited for by none.
|
|
221
|
+
*/
|
|
222
|
+
const namedElsewhere = (object, batch, objects) => {
|
|
223
|
+
const inPhase = new Set(batch.map(refOf).map(nameOf));
|
|
224
|
+
const installed = new Set(objects.map(refOf).map(nameOf));
|
|
225
|
+
return namedBy(object).filter((named) => installed.has(named) && !inPhase.has(named));
|
|
226
|
+
};
|
|
227
|
+
/**
|
|
228
|
+
* `options` for a wait of those that share one timeout, the waits for what runs: those for the
|
|
229
|
+
* workloads others wait for (APPLIED_AFTER_ANNOTATION) and the one for every workload after
|
|
230
|
+
* them. Counted as though the wait began `spent` milliseconds before now, what those before it
|
|
231
|
+
* waited, so the timeout bounds their waiting together, and nothing else an apply does between
|
|
232
|
+
* them, its Jobs or its prune.
|
|
233
|
+
*/
|
|
234
|
+
const sharedAfter = (options, spent) => Effect.map(Clock.currentTimeMillis, (now) => ({ ...options, since: now - spent }));
|
|
162
235
|
/** The workloads of `objects`. */
|
|
163
236
|
const workloadsOf = (objects) => objects.filter((object) => WORKLOADS.some((name) => name === object.kind)).map(refOf);
|
|
164
|
-
/**
|
|
237
|
+
/**
|
|
238
|
+
* Applies `objects` in the order of PHASES, as the module says, without waiting for their
|
|
239
|
+
* workloads but those others wait for, within the timeout those waits share (sharedAfter): how
|
|
240
|
+
* many milliseconds they waited.
|
|
241
|
+
*/
|
|
165
242
|
const applyPhases = Effect.fnUntraced(function* (objects, options) {
|
|
166
243
|
const kube = yield* KubeApi;
|
|
167
244
|
const unplaced = objects.filter((object) => !MADE_KINDS.some((each) => each.kind === object.kind && each.apiVersion === object.apiVersion));
|
|
168
245
|
if (unplaced.length > 0)
|
|
169
246
|
return yield* Effect.die(new Error(`alasio does not apply ${unplaced.map((object) => describeRef(refOf(object))).join(", ")}`));
|
|
247
|
+
// A wait named across phases refused before anything is applied, as one of its own phase's alone is waited for.
|
|
248
|
+
for (const object of objects) {
|
|
249
|
+
const elsewhere = namedElsewhere(object, objects.filter((each) => phaseOf(each) === phaseOf(object)), objects);
|
|
250
|
+
if (elsewhere.length > 0)
|
|
251
|
+
return yield* Effect.die(new Error(`${describeRef(refOf(object))} waits for ${elsewhere.join(", ")}, which ${elsewhere.length === 1 ? "is" : "are"} applied in another phase than its own, where it waits for none`));
|
|
252
|
+
}
|
|
170
253
|
yield* Effect.logInfo(`applying ${objects.length} objects to ${kube.server}`);
|
|
254
|
+
let spent = 0;
|
|
171
255
|
for (const phase of PHASES) {
|
|
172
256
|
const batch = objects.filter((object) => phase.some((name) => name === object.kind));
|
|
173
257
|
if (phase.includes("Job")) {
|
|
@@ -177,12 +261,26 @@ const applyPhases = Effect.fnUntraced(function* (objects, options) {
|
|
|
177
261
|
}
|
|
178
262
|
if (phase.includes("PriorityClass"))
|
|
179
263
|
yield* replaceChangedClasses(batch, options);
|
|
180
|
-
if (phase.includes("Deployment"))
|
|
264
|
+
if (phase.includes("Deployment")) {
|
|
265
|
+
// No pool's pod made before its policy holds it.
|
|
266
|
+
yield* harnessPoolPolicyInForce(objects);
|
|
181
267
|
yield* handOverReplicas(batch);
|
|
182
|
-
|
|
268
|
+
}
|
|
269
|
+
// Those that wait for others of theirs (APPLIED_AFTER_ANNOTATION) once the rest are applied, each once those are ready.
|
|
270
|
+
const later = batch.filter((object) => appliedOnceReady(object, batch).length > 0);
|
|
271
|
+
yield* Effect.forEach(batch.filter((object) => !later.includes(object)), (object) => kube.apply(object), { concurrency: 8, discard: true });
|
|
272
|
+
for (const object of later) {
|
|
273
|
+
const before = appliedOnceReady(object, batch);
|
|
274
|
+
yield* Effect.logInfo(`applying ${describeRef(refOf(object))} once ${before.map(describeRef).join(", ")} ${before.length === 1 ? "is" : "are"} ready`);
|
|
275
|
+
const began = yield* Clock.currentTimeMillis;
|
|
276
|
+
yield* awaitReady(before, yield* sharedAfter(options, spent));
|
|
277
|
+
spent += (yield* Clock.currentTimeMillis) - began;
|
|
278
|
+
yield* kube.apply(object);
|
|
279
|
+
}
|
|
183
280
|
if (phase.includes("CustomResourceDefinition"))
|
|
184
281
|
yield* awaitReady(batch.map(refOf), options);
|
|
185
282
|
}
|
|
283
|
+
return spent;
|
|
186
284
|
});
|
|
187
285
|
/** Applies the installation `objects` are, deletes what it no longer has, and waits until its workloads run. */
|
|
188
286
|
export const applyInstallation = Effect.fnUntraced(function* (objects, options) {
|
|
@@ -190,17 +288,17 @@ export const applyInstallation = Effect.fnUntraced(function* (objects, options)
|
|
|
190
288
|
// A scaler no longer wanted goes before the workloads are applied, as it would set the
|
|
191
289
|
// replicas they are given back to its own.
|
|
192
290
|
yield* removeFinalized(yield* staleOf(desired, FINALIZED_KINDS), options);
|
|
193
|
-
yield* applyPhases(desired, options);
|
|
291
|
+
const spent = yield* applyPhases(desired, options);
|
|
194
292
|
yield* prune(desired, options);
|
|
195
|
-
yield* awaitReady(workloadsOf(desired), options);
|
|
293
|
+
yield* awaitReady(workloadsOf(desired), yield* sharedAfter(options, spent));
|
|
196
294
|
});
|
|
197
295
|
/**
|
|
198
296
|
* Applies `objects`, of no installation (a branch environment's, which a prune of the
|
|
199
297
|
* installation leaves be), and waits until their workloads run.
|
|
200
298
|
*/
|
|
201
299
|
export const applyObjects = Effect.fnUntraced(function* (objects, options) {
|
|
202
|
-
yield* applyPhases(objects, options);
|
|
203
|
-
yield* awaitReady(workloadsOf(objects), options);
|
|
300
|
+
const spent = yield* applyPhases(objects, options);
|
|
301
|
+
yield* awaitReady(workloadsOf(objects), yield* sharedAfter(options, spent));
|
|
204
302
|
});
|
|
205
303
|
/**
|
|
206
304
|
* Deletes the installation's objects, but for what holds data unless `purge`, and with
|