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,18 +8,25 @@
8
8
  * (src/gateway/names.ts folderPodSpec), and a Secret the gateway makes there is an
9
9
  * instance's token: RBAC lets it make pods of any spec, as any ServiceAccount, under any
10
10
  * runtime, and Secrets of any type, a ServiceAccount's token among them;
11
+ * - a pod the sandbox gateway updates or deletes in an environment's own namespace is one of
12
+ * its harness pools', which it binds and releases, and a Lease it writes there one of their
13
+ * bindings': RBAC lets it update and delete every pod there, and write every Lease;
11
14
  * - a pod alasio patches changes its busy label and annotations alone (src/kube/busy.ts),
12
15
  * and in alasio's own namespace is alasio's own: RBAC lets it patch its namespaces'
13
16
  * pods whole, their images among it;
14
17
  * - a compute's Deployment neon-control patches changes its pod template's restartedAt
15
18
  * annotation alone, which restarts it (neon/control/computes.ts): RBAC lets it patch the
16
- * Deployment whole, its image and command among it.
19
+ * Deployment whole, its image and command among it;
20
+ * - a pod neon-control patches is a compute's, and changes its serving label alone, which
21
+ * takes it off its Service as a sleep stops it: RBAC lets it patch any pod of a
22
+ * compute's namespace whole.
17
23
  *
18
24
  * Where a policy holds an object to a rendered one, `pinned` makes the CEL that says so:
19
25
  * the object's fields are the rendered ones', key for key and item for item, but for what
20
26
  * a Check allows, and what the API server defaults where the rendered one has nothing.
21
27
  */
22
28
  import { posix } from "node:path";
29
+ import { SERVING_LABEL } from "../../../neon/control/endpoints.js";
23
30
  import { BINDING_LABEL, FREE_LABEL, KEY_ANNOTATION, POOL_LABEL } from "../../../src/binder/names.js";
24
31
  import { branchNamespace, branchSessionsNamespace } from "../../../src/branch/names.js";
25
32
  import { ATTACH_VOLUME, FOLDER_KEY_PREFIX, FOLDER_POOL, FOLDER_POD, folderPodSpec, folderTokenSecret, ownDirectory, SANDBOX_POD_POLICY } from "../../../src/gateway/names.js";
@@ -42,6 +49,10 @@ const ANY_STRING = new Check((expression) => `type(${expression}) == string`);
42
49
  const matching = (pattern) => new Check((expression) => `type(${expression}) == string && ${expression}.matches(${JSON.stringify(`^(${pattern})$`)})`);
43
50
  /** What the CEL `value` is, of the object asked about. */
44
51
  const sameAs = (value) => new Check((expression) => `${expression} == ${value}`);
52
+ /** A quantity, as the API server writes one, of the amount `value` is. */
53
+ const quantityOf = (value) => new Check((expression) => `isQuantity(${expression}) && quantity(${expression}).compareTo(quantity(${JSON.stringify(value)})) == 0`);
54
+ /** A quantity, as the API server writes one, of at least `least`'s amount, and at most `most`'s where given. */
55
+ const quantityWithin = (least, most) => new Check((expression) => [`isQuantity(${expression})`, `quantity(${expression}).compareTo(quantity(${JSON.stringify(least)})) >= 0`, ...(most ? [`quantity(${expression}).compareTo(quantity(${JSON.stringify(most)})) <= 0`] : [])].join(" && "));
45
56
  /** Any of `alternatives`. */
46
57
  const oneOf = (...alternatives) => new Check((expression, depth) => `(${alternatives.map((each) => pinned(expression, each, depth)).join(" || ")})`);
47
58
  /** Of a map's key: that it may be absent; where present, `value`. */
@@ -91,12 +102,10 @@ function pinnedMap(expression, expected, defaults, depth) {
91
102
  ...extra.map((key) => `(!(${JSON.stringify(key)} in ${expression}) || ${pinned(at(key), defaults[key], depth)})`),
92
103
  ].join(" && ");
93
104
  }
94
- /** The name the ServiceAccount of the alasio of the namespace `namespace` asks as. */
95
- export const alasioAccount = (namespace) => `system:serviceaccount:${namespace}:${RELEASE}`;
96
105
  /** Whether the request is by main's alasio or a branch environment's, as CEL. */
97
106
  const BY_ANY_ALASIO = `request.userInfo.username.matches('^system:serviceaccount:(${NAMESPACE}|${branchNamespace("")}[a-z0-9-]+):${RELEASE}$')`;
98
107
  /** A ValidatingAdmissionPolicy `name` of alasio's, on `rules`, of what `by` asks, refusing what `validations` do not hold for, and its binding. */
99
- function admissionPolicy(name, rules, by, validations, variables) {
108
+ function admissionPolicy(name, rules, by, validations, variables, namespaceSelector) {
100
109
  const metadata = { name, labels: labels("alasio") };
101
110
  const policy = {
102
111
  apiVersion: "admissionregistration.k8s.io/v1",
@@ -104,7 +113,7 @@ function admissionPolicy(name, rules, by, validations, variables) {
104
113
  metadata,
105
114
  spec: {
106
115
  failurePolicy: "Fail",
107
- matchConstraints: { resourceRules: rules.map((rule) => ({ ...rule, apiVersions: ["*"] })) },
116
+ matchConstraints: { resourceRules: rules.map((rule) => ({ ...rule, apiVersions: ["*"] })), ...(namespaceSelector ? { namespaceSelector } : {}) },
108
117
  matchConditions: [{ name: "by-alasio", expression: by }],
109
118
  ...(variables ? { variables } : {}),
110
119
  validations,
@@ -179,6 +188,39 @@ export function computeRestartPolicy() {
179
188
  { name: "newAnnotations", expression: "object.spec.template.metadata.?annotations.orValue({})" },
180
189
  ]);
181
190
  }
191
+ /** The components of the computes' pods: a primary's, and a read replica's. */
192
+ const COMPUTE_COMPONENTS = ["neon-compute", "neon-compute-ro"];
193
+ /**
194
+ * What neon-control may change of a pod, which RBAC lets it patch whole, of any in a
195
+ * compute's namespace (./neon.ts's computeScaling): of a compute's pod, its serving label
196
+ * (neon/control/endpoints.ts's SERVING_LABEL), which takes it off its Service as a sleep
197
+ * stops it, or gives it back, and nothing else.
198
+ */
199
+ export function computeServingPolicy() {
200
+ const component = "app.kubernetes.io/component";
201
+ const account = `system:serviceaccount:${NAMESPACE}:${neonName("control")}`;
202
+ return admissionPolicy(componentName("compute-serving"), [{ apiGroups: [""], resources: ["pods"], operations: ["UPDATE"] }], `request.userInfo.username == "${account}"`, [
203
+ { expression: "object.spec == oldObject.spec", message: "neon-control changes no pod's spec" },
204
+ {
205
+ expression: `"${component}" in variables.oldLabels && variables.oldLabels["${component}"] in ${JSON.stringify(COMPUTE_COMPONENTS)}`,
206
+ message: "neon-control labels no pod but a compute's",
207
+ },
208
+ {
209
+ expression: "object.metadata.?annotations.orValue({}) == oldObject.metadata.?annotations.orValue({}) && " +
210
+ "object.metadata.?finalizers.orValue([]) == oldObject.metadata.?finalizers.orValue([]) && " +
211
+ "object.metadata.?ownerReferences.orValue([]) == oldObject.metadata.?ownerReferences.orValue([])",
212
+ message: "neon-control changes no pod's annotations, finalizers or owners",
213
+ },
214
+ { expression: unchanged("Labels", [SERVING_LABEL]), message: `neon-control changes no label of a pod's but ${SERVING_LABEL}` },
215
+ {
216
+ expression: `!("${SERVING_LABEL}" in variables.newLabels) || variables.newLabels["${SERVING_LABEL}"] == "true"`,
217
+ message: `neon-control sets ${SERVING_LABEL} to true alone, or takes it off`,
218
+ },
219
+ ], [
220
+ { name: "oldLabels", expression: "oldObject.metadata.?labels.orValue({})" },
221
+ { name: "newLabels", expression: "object.metadata.?labels.orValue({})" },
222
+ ]);
223
+ }
182
224
  /** A path segment as sanitizePathToken makes one. */
183
225
  const PATH_TOKEN = "[A-Za-z0-9_][A-Za-z0-9_.-]*";
184
226
  /** `text`, as a pattern that matches it alone. */
@@ -209,14 +251,19 @@ const POOL_POD_DEFAULTS = {
209
251
  container: { terminationMessagePath: "/dev/termination-log", terminationMessagePolicy: "File", resources: ANY },
210
252
  probe: { timeoutSeconds: 1, successThreshold: 1, failureThreshold: 3 },
211
253
  };
212
- /** `container` of a pool's template, as the API server stores it in a pod (POOL_POD_DEFAULTS). */
213
- function poolContainer(container) {
254
+ /**
255
+ * `container` of a pool's template, as the API server stores it in a pod (POOL_POD_DEFAULTS):
256
+ * its resources any, as VPA sizes a pool's pod as it is made, and resizes it after
257
+ * (pods/resize).
258
+ */
259
+ const poolContainer = (container) => templateContainer(container, ANY);
260
+ /** `container` of a template, as the API server stores it in a pod (POOL_POD_DEFAULTS), its resources as `resources` says. */
261
+ function templateContainer(container, resources) {
214
262
  const each = container;
215
263
  const probe = each["readinessProbe"];
216
264
  return defaulted({
217
265
  ...each,
218
- // Its resources are VPA's, as it sizes the pod as it is made, and resizes it after (pods/resize).
219
- resources: ANY,
266
+ resources,
220
267
  ...(container.ports ? { ports: container.ports.map((port) => defaulted(port, { protocol: "TCP" })) } : {}),
221
268
  ...(container.env
222
269
  ? {
@@ -375,6 +422,160 @@ export function sandboxPodPolicy(templates, { sessionsNamespace, restores = null
375
422
  const binding = { apiVersion: "admissionregistration.k8s.io/v1", kind: "ValidatingAdmissionPolicyBinding", metadata, spec: { policyName: name, validationActions: ["Deny"] } };
376
423
  return [policy, binding];
377
424
  }
425
+ /**
426
+ * What the sandbox gateway, `gateway`, its ServiceAccount, may do to a pod or a Lease of an
427
+ * environment's own namespace, main's or a branch's, where RBAC lets it update and delete pods
428
+ * and write Leases to bind and release its harness pools' (./harness-pools.ts): a pod of one
429
+ * of `pools` alone, which it makes none of, of no other workload beside it; and a Lease of a
430
+ * binding of one of them alone, by its pool's label, as it was and as it is to be, of none of
431
+ * what else keeps Leases there (KEDA's, VPA's, their leaders'). How a pool's pod may change, by
432
+ * anyone, its pool's own policy says (harnessPoolPodPolicy).
433
+ */
434
+ export function harnessPodPolicy(gateway, pools) {
435
+ // An environment's own namespace, main's or a branch's: not a branch's sessions' namespace,
436
+ // whose name may be of the same form, whose sandbox pods the gateway binds, as its labels say.
437
+ const environments = `request.namespace == ${JSON.stringify(NAMESPACE)} || request.namespace.startsWith(${JSON.stringify(branchNamespace(""))})`;
438
+ const ofNoSessions = { matchExpressions: [{ key: "app.kubernetes.io/component", operator: "NotIn", values: ["session"] }] };
439
+ const ofPools = (labels) => `${JSON.stringify(POOL_LABEL)} in ${labels} && ${labels}[${JSON.stringify(POOL_LABEL)}] in ${JSON.stringify(pools)}`;
440
+ return admissionPolicy(componentName("harness-pods"), [
441
+ { apiGroups: [""], resources: ["pods"], operations: ["UPDATE", "DELETE"] },
442
+ { apiGroups: ["coordination.k8s.io"], resources: ["leases"], operations: ["CREATE", "UPDATE", "DELETE"] },
443
+ ], `request.userInfo.username == ${JSON.stringify(gateway)} && (${environments})`, [
444
+ {
445
+ expression: `request.resource.resource != 'pods' || (${ofPools("variables.oldLabels")})`,
446
+ message: "the sandbox gateway changes and deletes no pod of an environment's namespace but its harness pools'",
447
+ },
448
+ {
449
+ expression: `request.resource.resource != 'leases' || ((request.operation == 'CREATE' || (${ofPools("variables.oldLabels")})) && (request.operation == 'DELETE' || (${ofPools("variables.newLabels")})))`,
450
+ message: "the sandbox gateway writes no Lease of an environment's namespace but its harness pools' bindings'",
451
+ },
452
+ ], [
453
+ { name: "oldLabels", expression: "request.operation == 'CREATE' ? {} : oldObject.metadata.?labels.orValue({})" },
454
+ { name: "newLabels", expression: "request.operation == 'DELETE' ? {} : object.metadata.?labels.orValue({})" },
455
+ ], ofNoSessions);
456
+ }
457
+ /**
458
+ * The spec of a pod of the harness pool template `template`, as the API server stores it: as a
459
+ * sandbox pool's pod's (poolPodSpec), and what the API server gives a pod that a harness
460
+ * pool's template leaves out: its DNS policy, the mode of each Secret's volume, each of the
461
+ * machine's paths' type where its mount names none, and the scheme of its readiness probe's
462
+ * request.
463
+ */
464
+ function harnessPodSpec(template) {
465
+ const spec = template.spec ?? { containers: [] };
466
+ const container = (each) => {
467
+ const probe = each.readinessProbe;
468
+ const httpGet = probe?.httpGet;
469
+ return poolContainer({ ...each, ...(probe && httpGet ? { readinessProbe: { ...probe, httpGet: defaulted(httpGet, { scheme: "HTTP" }) } } : {}) });
470
+ };
471
+ const volumes = (spec.volumes ?? []).map((volume) => volume.secret
472
+ ? { ...volume, secret: defaulted(volume.secret, { defaultMode: 420 }) }
473
+ : volume.hostPath && volume.hostPath.type === undefined
474
+ ? { ...volume, hostPath: defaulted(volume.hostPath, { type: "" }) }
475
+ : volume);
476
+ const tolerations = (spec.tolerations ?? []);
477
+ return defaulted({
478
+ ...spec,
479
+ containers: spec.containers.map(container),
480
+ ...(spec.volumes ? { volumes } : {}),
481
+ tolerations: oneOf([...tolerations, ...DEFAULT_TOLERATIONS], [...tolerations, ...[...DEFAULT_TOLERATIONS].reverse()]),
482
+ }, { ...POOL_POD_DEFAULTS.pod, dnsPolicy: "ClusterFirst" });
483
+ }
484
+ /** `templates` by what each is but for its pool's label, in their order. */
485
+ function kindsOf(templates) {
486
+ const kinds = new Map();
487
+ for (const template of templates) {
488
+ const { [POOL_LABEL]: pool = "", ...others } = template.metadata?.labels ?? {};
489
+ const key = JSON.stringify({ ...template, metadata: { ...template.metadata, labels: others } });
490
+ const kind = kinds.get(key) ?? { template, pools: [] };
491
+ kind.pools.push(pool);
492
+ kinds.set(key, kind);
493
+ }
494
+ return [...kinds.values()];
495
+ }
496
+ /** The name of the policy that holds the harness pools' pods of main's environment (`branch` null) or of the branch environment `branch` to their templates. */
497
+ export const harnessPoolPodPolicyName = (branch) => (branch === null ? componentName("harness-pool-pods") : `${componentName("harness-pool-pods")}-${branch}`);
498
+ /**
499
+ * Every pod of a harness pool (./harness-pools.ts) made in the environment's own namespace
500
+ * `namespace`, held to its pool's template, `templates` as `alasio up` renders them for main
501
+ * (`branch` null) or `alasio branch create` for the branch `branch`, of its own
502
+ * configuration, its overrides among it: main's folder conversations' among them, which run
503
+ * as the operator with the machine's mounts, so none is made of another user, other mounts, or
504
+ * capabilities beyond the template's. Each environment's policy is its own, made and deleted
505
+ * with it, as main's alasio up cannot render a branch's templates, whose configuration is the
506
+ * branch's. A pod is made by its Deployment's ReplicaSet, of its template, as the API server
507
+ * stores it (harnessPodSpec), free, of its pool's labels and the template hash alone; a pod
508
+ * labelled of no harness pool is no harness pool's, and is left to what else holds the
509
+ * namespace. A pool's pod changed by anyone, as it was or as it is to be, keeps its spec whole
510
+ * (its resources change by pods/resize, as VPA resizes it, which this does not match), of its
511
+ * labels and annotations changes those a binding has alone and those that keep its node, and
512
+ * of its owners lets go alone; and none gets an ephemeral container, as a sandbox pool's pod
513
+ * gets none (sandboxPodPolicy).
514
+ *
515
+ * It fails closed: where it cannot say, the API server refuses.
516
+ */
517
+ export function harnessPoolPodPolicy({ namespace, branch, templates }) {
518
+ const name = harnessPoolPodPolicyName(branch);
519
+ const metadata = { name, labels: labels("harness") };
520
+ const pinOf = ({ template, pools }) => {
521
+ const podLabels = { ...(template.metadata?.labels ?? {}), [POOL_LABEL]: oneOf(...pools), "pod-template-hash": ANY_STRING };
522
+ const annotations = { ...(template.metadata?.annotations ?? {}), vpaObservedContainers: optional(ANY_STRING), vpaUpdates: optional(ANY_STRING) };
523
+ return `${pinned("object.spec", harnessPodSpec(template))} && ${pinned("variables.labels", podLabels)} && ${pinned("variables.annotations", annotations)}`;
524
+ };
525
+ // Each kind of template's pin a variable of its own, as CEL holds each expression to 100,000
526
+ // code points; the templates of pools that differ in their pool's label alone pinned once, so
527
+ // the policy stays one the API server compiles in time.
528
+ const pins = kindsOf(templates).map((kind, index) => ({ name: `pin${index}`, expression: pinOf(kind) }));
529
+ const pools = [...new Set(templates.map((template) => template.metadata?.labels?.[POOL_LABEL] ?? ""))];
530
+ const ofPools = (pod) => `has(${pod}.metadata.labels) && ${JSON.stringify(POOL_LABEL)} in ${pod}.metadata.labels && ${pod}.metadata.labels[${JSON.stringify(POOL_LABEL)}] in ${JSON.stringify(pools)}`;
531
+ const bound = [BINDING_LABEL, FREE_LABEL];
532
+ const policy = {
533
+ apiVersion: "admissionregistration.k8s.io/v1",
534
+ kind: "ValidatingAdmissionPolicy",
535
+ metadata,
536
+ spec: {
537
+ failurePolicy: "Fail",
538
+ matchConstraints: {
539
+ resourceRules: [
540
+ { apiGroups: [""], apiVersions: ["*"], resources: ["pods"], operations: ["CREATE", "UPDATE"] },
541
+ { apiGroups: [""], apiVersions: ["*"], resources: ["pods/ephemeralcontainers"], operations: ["CREATE", "UPDATE"] },
542
+ ],
543
+ },
544
+ matchConditions: [
545
+ { name: "of-the-environment", expression: `request.namespace == ${JSON.stringify(namespace)}` },
546
+ { name: "of-harness-pools", expression: `(${ofPools("object")}) || (request.operation == 'UPDATE' && ${ofPools("oldObject")})` },
547
+ ],
548
+ variables: [
549
+ { name: "labels", expression: "object.metadata.?labels.orValue({})" },
550
+ { name: "annotations", expression: "object.metadata.?annotations.orValue({})" },
551
+ { name: "oldLabels", expression: "request.operation == 'UPDATE' ? oldObject.metadata.?labels.orValue({}) : {}" },
552
+ { name: "newLabels", expression: "object.metadata.?labels.orValue({})" },
553
+ { name: "oldAnnotations", expression: "request.operation == 'UPDATE' ? oldObject.metadata.?annotations.orValue({}) : {}" },
554
+ { name: "newAnnotations", expression: "object.metadata.?annotations.orValue({})" },
555
+ ...pins,
556
+ ],
557
+ validations: [
558
+ { expression: "request.?subResource.orValue('') != 'ephemeralcontainers'", message: "no pod of a harness pool gets an ephemeral container" },
559
+ {
560
+ expression: `request.operation != 'CREATE' || ${pins.map(({ name: each }) => `variables.${each}`).join(" || ") || "false"}`,
561
+ message: "a pod of a harness pool is its pool's template, as alasio up renders it, and nothing else",
562
+ },
563
+ { expression: "request.operation != 'UPDATE' || object.spec == oldObject.spec", message: "no harness pool's pod's spec changes" },
564
+ { expression: `request.operation != 'UPDATE' || (${unchanged("Labels", bound)})`, message: `no label of a harness pool's pod changes but ${bound.join(" and ")}, as it is bound` },
565
+ {
566
+ expression: `request.operation != 'UPDATE' || (${unchanged("Annotations", [KEY_ANNOTATION, ...Object.keys(BUSY_ANNOTATIONS)])})`,
567
+ message: `no annotation of a harness pool's pod changes but ${KEY_ANNOTATION} and what keeps its node, as it is bound`,
568
+ },
569
+ {
570
+ expression: "request.operation != 'UPDATE' || object.metadata.?ownerReferences.orValue([]).all(owner, owner in oldObject.metadata.?ownerReferences.orValue([]))",
571
+ message: "a harness pool's pod gets no owner it had not",
572
+ },
573
+ ],
574
+ },
575
+ };
576
+ const binding = { apiVersion: "admissionregistration.k8s.io/v1", kind: "ValidatingAdmissionPolicyBinding", metadata, spec: { policyName: name, validationActions: ["Deny"] } };
577
+ return [policy, binding];
578
+ }
378
579
  /** The folder pods' policy, which holds every pod of the folder namespace to the folder template (folderPodPolicy). */
379
580
  export const FOLDER_POD_POLICY = "alasio-folder-pods";
380
581
  /** What stands for a folder instance's pod's own name, and its state directory, in its spec as folderPodSpec makes it, which the policy pins by what they must be. */
@@ -390,6 +591,20 @@ function folderPodPinned(spec) {
390
591
  const { map, defaults } = folderPodParts(spec);
391
592
  return defaulted(map, defaults);
392
593
  }
594
+ /**
595
+ * A folder instance's container's `resources`, its template's: its limits theirs, its CPU
596
+ * request its, and its memory request, where it has one, the gateway's, as it sizes each pod
597
+ * of its folder's instances' use (src/gateway/folders.ts SIZING), between its template's and
598
+ * its limit.
599
+ */
600
+ function folderResources(resources) {
601
+ const quantities = (of) => Object.fromEntries(Object.entries(of ?? {}).map(([name, value]) => [name, quantityOf(value)]));
602
+ const memory = resources?.requests?.["memory"];
603
+ return {
604
+ ...(resources?.limits ? { limits: quantities(resources.limits) } : {}),
605
+ ...(resources?.requests ? { requests: { ...quantities(resources.requests), ...(memory ? { memory: quantityWithin(memory, resources.limits?.["memory"]) } : {}) } } : {}),
606
+ };
607
+ }
393
608
  /** folderPodPinned's map and the defaults it is pinned with. */
394
609
  export function folderPodParts(spec) {
395
610
  const tolerations = (spec.tolerations ?? []);
@@ -397,7 +612,7 @@ export function folderPodParts(spec) {
397
612
  return {
398
613
  map: {
399
614
  ...spec,
400
- containers: spec.containers.map(poolContainer),
615
+ containers: spec.containers.map((container) => templateContainer(container, folderResources(container.resources))),
401
616
  ...(spec.volumes ? { volumes } : {}),
402
617
  tolerations: oneOf([...tolerations, ...DEFAULT_TOLERATIONS], [...tolerations, ...[...DEFAULT_TOLERATIONS].reverse()]),
403
618
  },
@@ -430,7 +645,9 @@ function standingFor(value, stands) {
430
645
  * - A pod made is made by `maker`, the gateway, alone, and is the template's, as the API server
431
646
  * stores it (poolPodSpec), with what folderPodSpec adds, alone: its token's Secret, named for
432
647
  * it, and its state directory under `stateRoot`, of a harness's and a conversation's names;
433
- * bound from the first, to a folder instance's key, its node kept; and named as one.
648
+ * its bayma's memory request the gateway's, between its template's and its limit
649
+ * (folderResources); bound from the first, to a folder instance's key, its node kept; and
650
+ * named as one.
434
651
  * - A pod changed keeps its spec, its labels, and its owners, and of its annotations changes
435
652
  * those that keep its node alone.
436
653
  * - No pod gets an ephemeral container.
@@ -1 +1 @@
1
- {"version":3,"file":"admission.js","sourceRoot":"","sources":["../../../../src/manifests/admission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admission.js","sourceRoot":"","sources":["../../../../src/manifests/admission.ts"],"names":[],"mappings":"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"}