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.
Files changed (148) hide show
  1. package/dist/cli/src/bound-harnesses.js +98 -0
  2. package/dist/cli/src/bound-harnesses.js.map +1 -0
  3. package/dist/cli/src/branches.js +30 -14
  4. package/dist/cli/src/branches.js.map +1 -1
  5. package/dist/cli/src/cluster/docker.js +21 -11
  6. package/dist/cli/src/cluster/docker.js.map +1 -1
  7. package/dist/cli/src/cluster/host.js +5 -1
  8. package/dist/cli/src/cluster/host.js.map +1 -1
  9. package/dist/cli/src/cluster/k3s.js +68 -3
  10. package/dist/cli/src/cluster/k3s.js.map +1 -1
  11. package/dist/cli/src/cluster/node.js +47 -13
  12. package/dist/cli/src/cluster/node.js.map +1 -1
  13. package/dist/cli/src/cluster/stargz.js +40 -3
  14. package/dist/cli/src/cluster/stargz.js.map +1 -1
  15. package/dist/cli/src/commands/common.js +2 -2
  16. package/dist/cli/src/commands/common.js.map +1 -1
  17. package/dist/cli/src/commands/lake.js +1 -1
  18. package/dist/cli/src/commands/lake.js.map +1 -1
  19. package/dist/cli/src/commands/login-relay.js +91 -0
  20. package/dist/cli/src/commands/login-relay.js.map +1 -0
  21. package/dist/cli/src/commands/login.js +11 -10
  22. package/dist/cli/src/commands/login.js.map +1 -1
  23. package/dist/cli/src/commands/logs.js +89 -6
  24. package/dist/cli/src/commands/logs.js.map +1 -1
  25. package/dist/cli/src/commands/restart.js +10 -4
  26. package/dist/cli/src/commands/restart.js.map +1 -1
  27. package/dist/cli/src/commands/restore-filer-store.js +27 -10
  28. package/dist/cli/src/commands/restore-filer-store.js.map +1 -1
  29. package/dist/cli/src/commands/status.js +59 -12
  30. package/dist/cli/src/commands/status.js.map +1 -1
  31. package/dist/cli/src/commands/up.js +9 -6
  32. package/dist/cli/src/commands/up.js.map +1 -1
  33. package/dist/cli/src/commands/upgrade.js +14 -5
  34. package/dist/cli/src/commands/upgrade.js.map +1 -1
  35. package/dist/cli/src/folders.js +9 -13
  36. package/dist/cli/src/folders.js.map +1 -1
  37. package/dist/cli/src/gateway-calls.js +14 -8
  38. package/dist/cli/src/gateway-calls.js.map +1 -1
  39. package/dist/cli/src/install.js +7 -41
  40. package/dist/cli/src/install.js.map +1 -1
  41. package/dist/cli/src/kube/api.js +59 -12
  42. package/dist/cli/src/kube/api.js.map +1 -1
  43. package/dist/cli/src/kube/apply.js +107 -9
  44. package/dist/cli/src/kube/apply.js.map +1 -1
  45. package/dist/cli/src/kube/object-store-scale.js +10 -7
  46. package/dist/cli/src/kube/object-store-scale.js.map +1 -1
  47. package/dist/cli/src/kube/rollout.js +16 -6
  48. package/dist/cli/src/kube/rollout.js.map +1 -1
  49. package/dist/cli/src/main.js +2 -1
  50. package/dist/cli/src/main.js.map +1 -1
  51. package/dist/cli/src/manifests/admission.js +228 -11
  52. package/dist/cli/src/manifests/admission.js.map +1 -1
  53. package/dist/cli/src/manifests/alasio.js +151 -63
  54. package/dist/cli/src/manifests/alasio.js.map +1 -1
  55. package/dist/cli/src/manifests/branch.js +6 -1
  56. package/dist/cli/src/manifests/branch.js.map +1 -1
  57. package/dist/cli/src/manifests/codex-login.js +101 -0
  58. package/dist/cli/src/manifests/codex-login.js.map +1 -0
  59. package/dist/cli/src/manifests/collector.js +26 -21
  60. package/dist/cli/src/manifests/collector.js.map +1 -1
  61. package/dist/cli/src/manifests/common.js +50 -23
  62. package/dist/cli/src/manifests/common.js.map +1 -1
  63. package/dist/cli/src/manifests/config.js +79 -30
  64. package/dist/cli/src/manifests/config.js.map +1 -1
  65. package/dist/cli/src/manifests/disruption.js +8 -3
  66. package/dist/cli/src/manifests/disruption.js.map +1 -1
  67. package/dist/cli/src/manifests/folders.js +8 -5
  68. package/dist/cli/src/manifests/folders.js.map +1 -1
  69. package/dist/cli/src/manifests/harness-pools.js +236 -0
  70. package/dist/cli/src/manifests/harness-pools.js.map +1 -0
  71. package/dist/cli/src/manifests/image-holder.js +61 -0
  72. package/dist/cli/src/manifests/image-holder.js.map +1 -0
  73. package/dist/cli/src/manifests/index.js +6 -2
  74. package/dist/cli/src/manifests/index.js.map +1 -1
  75. package/dist/cli/src/manifests/keda.js +4 -2
  76. package/dist/cli/src/manifests/keda.js.map +1 -1
  77. package/dist/cli/src/manifests/lake.js +1 -17
  78. package/dist/cli/src/manifests/lake.js.map +1 -1
  79. package/dist/cli/src/manifests/log.js +63 -16
  80. package/dist/cli/src/manifests/log.js.map +1 -1
  81. package/dist/cli/src/manifests/neon.js +57 -77
  82. package/dist/cli/src/manifests/neon.js.map +1 -1
  83. package/dist/cli/src/manifests/network-policies.js +111 -39
  84. package/dist/cli/src/manifests/network-policies.js.map +1 -1
  85. package/dist/cli/src/manifests/node-agent.js +39 -19
  86. package/dist/cli/src/manifests/node-agent.js.map +1 -1
  87. package/dist/cli/src/manifests/object-store.js +98 -24
  88. package/dist/cli/src/manifests/object-store.js.map +1 -1
  89. package/dist/cli/src/manifests/sandbox-gateway.js +147 -46
  90. package/dist/cli/src/manifests/sandbox-gateway.js.map +1 -1
  91. package/dist/cli/src/manifests/scalers.js +5 -4
  92. package/dist/cli/src/manifests/scalers.js.map +1 -1
  93. package/dist/cli/src/manifests/sizing.js +1 -1
  94. package/dist/cli/src/manifests/sizing.js.map +1 -1
  95. package/dist/cli/src/manifests/valkey.js +19 -5
  96. package/dist/cli/src/manifests/valkey.js.map +1 -1
  97. package/dist/cli/src/manifests/volume-lock.js +43 -0
  98. package/dist/cli/src/manifests/volume-lock.js.map +1 -0
  99. package/dist/cli/src/manifests/vpa.js +12 -1
  100. package/dist/cli/src/manifests/vpa.js.map +1 -1
  101. package/dist/cli/src/manifests/workspace-storage.js +19 -16
  102. package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
  103. package/dist/cli/src/neon-storage.js +0 -2
  104. package/dist/cli/src/neon-storage.js.map +1 -1
  105. package/dist/cli/src/release.js +9 -9
  106. package/dist/cli/src/release.js.map +1 -1
  107. package/dist/cli/src/target.js +2 -2
  108. package/dist/cli/src/target.js.map +1 -1
  109. package/dist/cli/src/telegram.js +13 -4
  110. package/dist/cli/src/telegram.js.map +1 -1
  111. package/dist/cli/src/wakes.js +68 -0
  112. package/dist/cli/src/wakes.js.map +1 -0
  113. package/dist/cli/src/webhook.js +5 -2
  114. package/dist/cli/src/webhook.js.map +1 -1
  115. package/dist/cluster/node/pins.json +6 -5
  116. package/dist/neon/control/branches.js +11 -4
  117. package/dist/neon/control/branches.js.map +1 -1
  118. package/dist/neon/control/endpoints.js +81 -10
  119. package/dist/neon/control/endpoints.js.map +1 -1
  120. package/dist/neon/control/secrets.js +11 -6
  121. package/dist/neon/control/secrets.js.map +1 -1
  122. package/dist/src/binder/bindings.js +195 -0
  123. package/dist/src/binder/bindings.js.map +1 -0
  124. package/dist/src/binder/names.js +30 -0
  125. package/dist/src/binder/names.js.map +1 -1
  126. package/dist/src/binder/tokens.js +17 -4
  127. package/dist/src/binder/tokens.js.map +1 -1
  128. package/dist/src/branch/names.js +10 -6
  129. package/dist/src/branch/names.js.map +1 -1
  130. package/dist/src/events/names.js +24 -3
  131. package/dist/src/events/names.js.map +1 -1
  132. package/dist/src/gateway/names.js +44 -5
  133. package/dist/src/gateway/names.js.map +1 -1
  134. package/dist/src/harness/names.js +18 -0
  135. package/dist/src/harness/names.js.map +1 -1
  136. package/dist/src/kube/client.js +212 -0
  137. package/dist/src/kube/client.js.map +1 -0
  138. package/dist/src/kube/sandbox-shape.js +6 -0
  139. package/dist/src/kube/sandbox-shape.js.map +1 -1
  140. package/dist/src/kube/started-map.js +12 -0
  141. package/dist/src/kube/started-map.js.map +1 -0
  142. package/dist/src/node-agent/names.js +16 -8
  143. package/dist/src/node-agent/names.js.map +1 -1
  144. package/dist/src/telegram/bot-commands.js +17 -0
  145. package/dist/src/telegram/bot-commands.js.map +1 -0
  146. package/dist/src/telegram/stop.js +12 -0
  147. package/dist/src/telegram/stop.js.map +1 -0
  148. package/package.json +1 -1
@@ -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, nodeAgentRuns } from "./manifests/common.js";
12
- import { mountServices as mountServicesOf, sandboxServiceRuns } from "./manifests/sandbox-gateway.js";
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 && sandboxServiceRuns(settings);
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 sessions' namespace holds the release before's session
123
- * workspaces (SessionWorkspacesLeft), or where an object the cluster has cannot take this
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. Where sessions are snapshotted, it
155
- * holds them to the CPU baseline it recorded before, then to the one the node agents' pods
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":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/install.ts"],"names":[],"mappings":"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"}
@@ -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 { NodeStream } from "@effect/platform-node";
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
- /** The API `kubeconfig` reaches. */
122
- static layer = (kubeconfig) => Layer.effect(KubeApi, Effect.map(loadKubeConfig(kubeconfig), makeKubeApi));
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
- /** The API `kubeConfig` reaches, at its current context. */
155
- function makeKubeApi(kubeConfig) {
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 { RELEASE } from "../manifests/common.js";
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
- /** Applies `objects` in the order of PHASES, as the module says, without waiting for their workloads. */
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
- yield* Effect.forEach(batch, (object) => kube.apply(object), { concurrency: 8, discard: true });
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