alasio 5.1.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/cli/src/branches.js +53 -22
  2. package/dist/cli/src/branches.js.map +1 -1
  3. package/dist/cli/src/capacity.js +46 -0
  4. package/dist/cli/src/capacity.js.map +1 -0
  5. package/dist/cli/src/cluster/docker-engine.js +6 -4
  6. package/dist/cli/src/cluster/docker-engine.js.map +1 -1
  7. package/dist/cli/src/cluster/docker.js +49 -10
  8. package/dist/cli/src/cluster/docker.js.map +1 -1
  9. package/dist/cli/src/cluster/host.js +45 -19
  10. package/dist/cli/src/cluster/host.js.map +1 -1
  11. package/dist/cli/src/cluster/k3s.js +109 -9
  12. package/dist/cli/src/cluster/k3s.js.map +1 -1
  13. package/dist/cli/src/cluster/node.js +94 -50
  14. package/dist/cli/src/cluster/node.js.map +1 -1
  15. package/dist/cli/src/cluster/tar.js +43 -1
  16. package/dist/cli/src/cluster/tar.js.map +1 -1
  17. package/dist/cli/src/commands/branch.js +9 -4
  18. package/dist/cli/src/commands/branch.js.map +1 -1
  19. package/dist/cli/src/commands/restore-filer-store.js +247 -0
  20. package/dist/cli/src/commands/restore-filer-store.js.map +1 -0
  21. package/dist/cli/src/commands/status.js +141 -12
  22. package/dist/cli/src/commands/status.js.map +1 -1
  23. package/dist/cli/src/commands/uninstall.js +1 -1
  24. package/dist/cli/src/commands/uninstall.js.map +1 -1
  25. package/dist/cli/src/commands/up.js +42 -4
  26. package/dist/cli/src/commands/up.js.map +1 -1
  27. package/dist/cli/src/commands/upgrade.js +22 -6
  28. package/dist/cli/src/commands/upgrade.js.map +1 -1
  29. package/dist/cli/src/commands.js +2 -1
  30. package/dist/cli/src/commands.js.map +1 -1
  31. package/dist/cli/src/config.js +13 -4
  32. package/dist/cli/src/config.js.map +1 -1
  33. package/dist/cli/src/cpu-baseline.js +97 -0
  34. package/dist/cli/src/cpu-baseline.js.map +1 -0
  35. package/dist/cli/src/install.js +44 -11
  36. package/dist/cli/src/install.js.map +1 -1
  37. package/dist/cli/src/kept-releases.js +59 -0
  38. package/dist/cli/src/kept-releases.js.map +1 -0
  39. package/dist/cli/src/kube/api.js +13 -5
  40. package/dist/cli/src/kube/api.js.map +1 -1
  41. package/dist/cli/src/kube/apply.js +116 -13
  42. package/dist/cli/src/kube/apply.js.map +1 -1
  43. package/dist/cli/src/kube/autoscalers.js +48 -0
  44. package/dist/cli/src/kube/autoscalers.js.map +1 -0
  45. package/dist/cli/src/kube/object-store-scale.js +116 -0
  46. package/dist/cli/src/kube/object-store-scale.js.map +1 -0
  47. package/dist/cli/src/kube/rollout.js +23 -0
  48. package/dist/cli/src/kube/rollout.js.map +1 -1
  49. package/dist/cli/src/manifests/admission.js +416 -0
  50. package/dist/cli/src/manifests/admission.js.map +1 -0
  51. package/dist/cli/src/manifests/agent-sandbox.js +6 -3
  52. package/dist/cli/src/manifests/agent-sandbox.js.map +1 -1
  53. package/dist/cli/src/manifests/alasio.js +165 -25
  54. package/dist/cli/src/manifests/alasio.js.map +1 -1
  55. package/dist/cli/src/manifests/branch.js +2 -1
  56. package/dist/cli/src/manifests/branch.js.map +1 -1
  57. package/dist/cli/src/manifests/cloudeventsources.eventing.keda.sh.json +219 -0
  58. package/dist/cli/src/manifests/clustercloudeventsources.eventing.keda.sh.json +218 -0
  59. package/dist/cli/src/manifests/clustertriggerauthentications.keda.sh.json +997 -0
  60. package/dist/cli/src/manifests/collector.js +92 -45
  61. package/dist/cli/src/manifests/collector.js.map +1 -1
  62. package/dist/cli/src/manifests/common.js +34 -8
  63. package/dist/cli/src/manifests/common.js.map +1 -1
  64. package/dist/cli/src/manifests/config.js +273 -35
  65. package/dist/cli/src/manifests/config.js.map +1 -1
  66. package/dist/cli/src/manifests/controllers.js +39 -0
  67. package/dist/cli/src/manifests/controllers.js.map +1 -0
  68. package/dist/cli/src/manifests/disruption.js +47 -0
  69. package/dist/cli/src/manifests/disruption.js.map +1 -0
  70. package/dist/cli/src/manifests/grafana.js +66 -10
  71. package/dist/cli/src/manifests/grafana.js.map +1 -1
  72. package/dist/cli/src/manifests/headroom.js +40 -0
  73. package/dist/cli/src/manifests/headroom.js.map +1 -0
  74. package/dist/cli/src/manifests/index.js +20 -6
  75. package/dist/cli/src/manifests/index.js.map +1 -1
  76. package/dist/cli/src/manifests/juicefs-csi.js +9 -6
  77. package/dist/cli/src/manifests/juicefs-csi.js.map +1 -1
  78. package/dist/cli/src/manifests/keda.js +271 -0
  79. package/dist/cli/src/manifests/keda.js.map +1 -0
  80. package/dist/cli/src/manifests/lake.js +13 -5
  81. package/dist/cli/src/manifests/lake.js.map +1 -1
  82. package/dist/cli/src/manifests/neon.js +196 -51
  83. package/dist/cli/src/manifests/neon.js.map +1 -1
  84. package/dist/cli/src/manifests/network-policies.js +177 -28
  85. package/dist/cli/src/manifests/network-policies.js.map +1 -1
  86. package/dist/cli/src/manifests/node-agent.js +107 -0
  87. package/dist/cli/src/manifests/node-agent.js.map +1 -0
  88. package/dist/cli/src/manifests/object-store.js +543 -82
  89. package/dist/cli/src/manifests/object-store.js.map +1 -1
  90. package/dist/cli/src/manifests/priorities.js +31 -0
  91. package/dist/cli/src/manifests/priorities.js.map +1 -0
  92. package/dist/cli/src/manifests/scaledjobs.keda.sh.json +7507 -0
  93. package/dist/cli/src/manifests/scaledobjects.keda.sh.json +564 -0
  94. package/dist/cli/src/manifests/scalers.js +24 -0
  95. package/dist/cli/src/manifests/scalers.js.map +1 -0
  96. package/dist/cli/src/manifests/sizing.js +40 -0
  97. package/dist/cli/src/manifests/sizing.js.map +1 -0
  98. package/dist/cli/src/manifests/triggerauthentications.keda.sh.json +992 -0
  99. package/dist/cli/src/manifests/valkey.js +63 -35
  100. package/dist/cli/src/manifests/valkey.js.map +1 -1
  101. package/dist/cli/src/manifests/verticalpodautoscalercheckpoints.autoscaling.k8s.io.json +250 -0
  102. package/dist/cli/src/manifests/verticalpodautoscalers.autoscaling.k8s.io.json +837 -0
  103. package/dist/cli/src/manifests/vpa.js +220 -0
  104. package/dist/cli/src/manifests/vpa.js.map +1 -0
  105. package/dist/cli/src/manifests/workspace-storage.js +12 -2
  106. package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
  107. package/dist/cli/src/object-store.js +57 -0
  108. package/dist/cli/src/object-store.js.map +1 -0
  109. package/dist/cli/src/release.js +6 -6
  110. package/dist/cli/src/target.js +1 -1
  111. package/dist/cli/src/target.js.map +1 -1
  112. package/dist/cluster/node/pins.json +6 -2
  113. package/dist/neon/control/branches.js +31 -12
  114. package/dist/neon/control/branches.js.map +1 -1
  115. package/dist/neon/control/endpoints.js +108 -0
  116. package/dist/neon/control/endpoints.js.map +1 -0
  117. package/dist/neon/control/scram.js +13 -1
  118. package/dist/neon/control/scram.js.map +1 -1
  119. package/dist/neon/control/secrets.js +52 -8
  120. package/dist/neon/control/secrets.js.map +1 -1
  121. package/dist/src/kube/busy-label.js +13 -0
  122. package/dist/src/kube/busy-label.js.map +1 -0
  123. package/dist/src/kube/config.js +30 -4
  124. package/dist/src/kube/config.js.map +1 -1
  125. package/dist/src/kube/sandbox-shape.js +98 -0
  126. package/dist/src/kube/sandbox-shape.js.map +1 -0
  127. package/dist/src/node-agent/names.js +74 -0
  128. package/dist/src/node-agent/names.js.map +1 -0
  129. package/dist/src/sandbox/names.js +44 -0
  130. package/dist/src/sandbox/names.js.map +1 -0
  131. package/package.json +2 -2
  132. package/dist/cluster/node/config-v3.toml.tmpl +0 -12
@@ -9,6 +9,8 @@
9
9
  */
10
10
  import { isIPv4 } from "node:net";
11
11
  import { Effect, Predicate, Result, Schema, SchemaGetter, SchemaIssue } from "effect";
12
+ import { memoryBytes, memoryText } from "../capacity.js";
13
+ import { NODE_AGENT_MEMORY_FLOOR } from "../../../src/node-agent/names.js";
12
14
  import { IMAGES } from "../release.js";
13
15
  /** The install configuration is not what alasio installs from; the message says which key and why. */
14
16
  export class InstallConfigError extends Schema.TaggedError()("InstallConfigError", {
@@ -52,6 +54,32 @@ const quantities = (defaults) => defaulted(Quantities.pipe(Schema.decodeTo(Schem
52
54
  })), {});
53
55
  /** A container's resources, its requests and limits over `defaults`. */
54
56
  const Resources = (defaults) => defaulted(Schema.Struct({ requests: quantities(defaults.requests), limits: quantities(defaults.limits) }), {});
57
+ const Count = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0, { message: "must be a number of replicas, 0 or more" }));
58
+ /** What is wrong with `scale`, given `limits`: the key, and why; none when nothing is. */
59
+ function scaleProblem({ min, max }, { floor, scaled, most }) {
60
+ if (min > max)
61
+ return { path: ["max"], issue: "must be at least min" };
62
+ if (floor && min === 0)
63
+ return { path: ["min"], issue: "must be at least 1: it never sleeps" };
64
+ if (!scaled && min !== max)
65
+ return { path: ["max"], issue: "must equal min: nothing scales it between them" };
66
+ if (most !== undefined && max > most)
67
+ return { path: ["max"], issue: `must be at most ${most}` };
68
+ return undefined;
69
+ }
70
+ /**
71
+ * A component's scale, `scaling`, as every component declares it: `{ min, max }`, how
72
+ * many replicas it runs. Equal, they fix the count; apart, the component's scaler moves
73
+ * it between them; a `min` of 0 lets it sleep. One left out is its default, moved as far
74
+ * as the other given needs: `{ min: 2 }` of a scale of 1 is 2 to 2.
75
+ */
76
+ const Scaling = (defaults, limits) => defaulted(Schema.Struct({ min: Schema.optionalKey(Count), max: Schema.optionalKey(Count) }).pipe(Schema.decodeTo(Schema.Struct({ min: Count, max: Count }).check(Schema.makeFilter((scale) => scaleProblem(scale, limits))), {
77
+ decode: SchemaGetter.transform(({ min, max }) => ({
78
+ min: min ?? Math.min(defaults.min, max ?? defaults.min),
79
+ max: max ?? Math.max(defaults.max, min ?? defaults.max),
80
+ })),
81
+ encode: SchemaGetter.transform((scale) => scale),
82
+ })), {});
55
83
  /** A volume: its size, and its StorageClass, the cluster's default when empty. */
56
84
  const Storage = (size) => defaulted(Schema.Struct({ size: defaulted(Size, size), storageClassName: defaulted(Schema.String, "") }), {});
57
85
  const Env = defaulted(Schema.Record(Schema.String, Schema.String), {});
@@ -78,7 +106,7 @@ const Alasio = Schema.Struct({
78
106
  claude: defaulted(Schema.Struct({ existingSecret: defaulted(OptionalSecretName, ""), key: defaulted(NonEmpty, "token") }), {}),
79
107
  env: Env,
80
108
  envFrom: defaulted(Schema.Array(object()), []),
81
- resources: Resources({ requests: { cpu: "500m", memory: "1Gi" }, limits: { memory: "8Gi" } }),
109
+ resources: Resources({ requests: { cpu: "250m", memory: "768Mi" }, limits: { memory: "8Gi" } }),
82
110
  /** Whom alasio runs as, unless the host profile says. */
83
111
  runAsUser: defaulted(Id, 1000),
84
112
  runAsGroup: defaulted(Id, 1000),
@@ -114,6 +142,24 @@ const Telemetry = Schema.Struct({
114
142
  resources: Resources({ requests: { cpu: "50m", memory: "128Mi" }, limits: { memory: "512Mi" } }),
115
143
  }), {}),
116
144
  });
145
+ /**
146
+ * Sessions' whole-sandbox snapshots, taken where they run under gVisor
147
+ * (sessions.runtimeClassName), by the node agent on each node sessions run on.
148
+ */
149
+ const Snapshots = Schema.Struct({
150
+ /** How long a session's bayma runs no exec before its sandbox is snapshotted and its pod let go: a duration such as 5m. */
151
+ releaseAfter: defaulted(Schema.String.check(Schema.makeFilter((duration) => (durationSeconds(duration) ?? 0) > 0 || "must be a duration such as 5m")), "5m"),
152
+ /** The most of snapshots each node keeps on its disk, for restores there. */
153
+ nodeCache: defaulted(Size, "5Gi"),
154
+ /**
155
+ * The node agent, which takes snapshots on its node and prepares them there. Its memory
156
+ * request is its own, as measured (NODE_AGENT_OWN_BYTES, src/node-agent/names.ts); its
157
+ * limit is at least that and its budget of what it holds written and not yet on the disk
158
+ * (NODE_AGENT_MEMORY_FLOOR, 192 MiB), and leaves room over both for the page cache it
159
+ * reads through, which the kernel reclaims under it.
160
+ */
161
+ nodeAgent: defaulted(Schema.Struct({ resources: Resources({ requests: { cpu: "20m", memory: "160Mi" }, limits: { memory: "512Mi" } }) }), {}),
162
+ });
117
163
  const Sessions = Schema.Struct({
118
164
  enabled: defaulted(Schema.Boolean, true),
119
165
  namespace: defaulted(Namespace, "alasio-sessions"),
@@ -131,6 +177,7 @@ const Sessions = Schema.Struct({
131
177
  blockedCidrs: defaulted(Schema.Array(matching(/^[0-9.]+\/[0-9]{1,2}$/u, "must be an IPv4 CIDR")), ["0.0.0.0/8", "10.0.0.0/8", "100.64.0.0/10", "127.0.0.0/8", "169.254.0.0/16", "172.16.0.0/12", "192.168.0.0/16", "224.0.0.0/4", "240.0.0.0/4"]),
132
178
  nodeSelector: NodeSelector,
133
179
  tolerations: Tolerations,
180
+ snapshots: defaulted(Snapshots, {}),
134
181
  });
135
182
  const Host = Schema.Struct({
136
183
  /** The host profile: folder workspaces on the machine's own files. Privileged, for a single-node cluster the operator owns. */
@@ -139,8 +186,8 @@ const Host = Schema.Struct({
139
186
  createNamespace: defaulted(Schema.Boolean, true),
140
187
  baymaImage: Image({
141
188
  repository: "ghcr.io/eaucoin/bayma",
142
- tag: "0.12.2",
143
- digest: "sha256:654750dd6a1ddcc36aaf46bf5676c58a3438fab3545da454c05aeb296f42a4e6",
189
+ tag: "0.13.0",
190
+ digest: "sha256:840bfbbb660c5a0fefb562448db2ee93ceef3715142e538c7717ef9c34f3acc1",
144
191
  }),
145
192
  /** The operator's user and home, which alasio and each folder's bayma run as and in. */
146
193
  uid: defaulted(Id, 1000),
@@ -155,7 +202,7 @@ const Host = Schema.Struct({
155
202
  /** Whether alasio's home is the operator's rather than its volume. */
156
203
  alasioHome: defaulted(Schema.Boolean, true),
157
204
  env: Env,
158
- resources: Resources({ requests: { cpu: "100m", memory: "256Mi" }, limits: { memory: "8Gi" } }),
205
+ resources: Resources({ requests: { cpu: "100m", memory: "512Mi" }, limits: { memory: "8Gi" } }),
159
206
  });
160
207
  /** A service of Neon's with a volume. */
161
208
  const NeonStored = (size, resources) => defaulted(Schema.Struct({ storage: Storage(size), resources: Resources(resources) }), {});
@@ -163,7 +210,7 @@ const NeonStored = (size, resources) => defaulted(Schema.Struct({ storage: Stora
163
210
  const NeonService = (resources) => defaulted(Schema.Struct({ resources: Resources(resources) }), {});
164
211
  const Neon = Schema.Struct({
165
212
  enabled: defaulted(Schema.Boolean, true),
166
- /** Without Neon, alasio's database: a Secret with `url` and `lake-password`. */
213
+ /** Without Neon, alasio's database: a Secret with `url` and `lake-verifier`, the SCRAM verifier of the lake role's password. */
167
214
  external: defaulted(Schema.Struct({ existingSecret: defaulted(OptionalSecretName, "") }), {}),
168
215
  image: Image({
169
216
  repository: "neondatabase/neon",
@@ -184,17 +231,30 @@ const Neon = Schema.Struct({
184
231
  runAsUser: defaulted(Id, 1000),
185
232
  runAsGroup: defaulted(Id, 1000),
186
233
  safekeepers: defaulted(Schema.Struct({
187
- /** How many safekeepers hold each timeline's WAL. */
188
- replicas: defaulted(Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 7 }, { message: "must be from 1 to 7" })), 3),
234
+ /** How many safekeepers hold each timeline's WAL: a count, which neon-control registers them by. */
235
+ scaling: Scaling({ min: 3, max: 3 }, { floor: true, scaled: false, most: 7 }),
189
236
  storage: Storage("20Gi"),
190
- resources: Resources({ requests: { cpu: "100m", memory: "256Mi" }, limits: { memory: "1Gi" } }),
237
+ resources: Resources({ requests: { cpu: "50m", memory: "64Mi" }, limits: { memory: "1Gi" } }),
238
+ }), {}),
239
+ pageserver: NeonStored("50Gi", { requests: { cpu: "100m", memory: "256Mi" }, limits: { memory: "4Gi" } }),
240
+ storageController: NeonService({ requests: { cpu: "20m", memory: "64Mi" }, limits: { memory: "512Mi" } }),
241
+ storageBroker: NeonService({ requests: { cpu: "20m", memory: "32Mi" }, limits: { memory: "256Mi" } }),
242
+ controllerDb: NeonStored("2Gi", { requests: { cpu: "50m", memory: "64Mi" }, limits: { memory: "512Mi" } }),
243
+ /** neon-control, alasio's stand-in for Neon's control plane: a count, its replicas sharing its record of the branches. */
244
+ control: defaulted(Schema.Struct({
245
+ scaling: Scaling({ min: 1, max: 1 }, { floor: true, scaled: false }),
246
+ resources: Resources({ requests: { cpu: "20m", memory: "96Mi" }, limits: { memory: "256Mi" } }),
247
+ }), {}),
248
+ /** Neon's proxy, which every client of the computes connects through, and which wakes them: a count. */
249
+ proxy: defaulted(Schema.Struct({
250
+ scaling: Scaling({ min: 1, max: 1 }, { floor: true, scaled: false }),
251
+ resources: Resources({ requests: { cpu: "20m", memory: "64Mi" }, limits: { memory: "256Mi" } }),
252
+ }), {}),
253
+ compute: defaulted(Schema.Struct({
254
+ /** How long the compute may have no client session before it sleeps, until the next connection wakes it: a duration of 1m or more. */
255
+ suspendAfter: defaulted(Schema.String.check(Schema.makeFilter((duration) => (durationSeconds(duration) ?? 0) >= 60 || "must be a duration of 1m or more, such as 5m")), "5m"),
256
+ resources: Resources({ requests: { cpu: "250m", memory: "384Mi" }, limits: { memory: "4Gi" } }),
191
257
  }), {}),
192
- pageserver: NeonStored("50Gi", { requests: { cpu: "250m", memory: "512Mi" }, limits: { memory: "4Gi" } }),
193
- storageController: NeonService({ requests: { cpu: "50m", memory: "128Mi" }, limits: { memory: "512Mi" } }),
194
- storageBroker: NeonService({ requests: { cpu: "50m", memory: "64Mi" }, limits: { memory: "256Mi" } }),
195
- controllerDb: NeonStored("2Gi", { requests: { cpu: "50m", memory: "128Mi" }, limits: { memory: "512Mi" } }),
196
- control: NeonStored("100Mi", { requests: { cpu: "20m", memory: "64Mi" }, limits: { memory: "256Mi" } }),
197
- compute: NeonService({ requests: { cpu: "500m", memory: "1Gi" }, limits: { memory: "4Gi" } }),
198
258
  /**
199
259
  * A daily logical dump of alasio's database to the object store, and a copy of
200
260
  * JuiceFS's newest dump of workspace storage's metadata beside it; of each, the last
@@ -208,27 +268,118 @@ const Neon = Schema.Struct({
208
268
  nodeSelector: NodeSelector,
209
269
  tolerations: Tolerations,
210
270
  });
271
+ /** The Valkey of workspace storage's metadata and of the object store's filers. */
272
+ const VALKEY_IMAGE = { repository: "valkey/valkey", tag: "9.1.2-alpine", digest: "sha256:48332870af354a799964c0012ae1194a0bf2bf894eb508f945810596dc2d8d11" };
273
+ /** What an entry of the filer store, an object or a directory, takes in its Valkey: 1,339 bytes as measured, rounded up. */
274
+ const FILER_STORE_ENTRY_BYTES = 1400;
275
+ /** The filer store's `maxmemory` for `entries`: what they take and a quarter more, in whole 64 MiB. */
276
+ export function filerStoreMaxmemoryBytes(entries) {
277
+ const unit = 64 * 2 ** 20;
278
+ return Math.ceil((entries * FILER_STORE_ENTRY_BYTES * 1.25) / unit) * unit;
279
+ }
211
280
  const ObjectStore = Schema.Struct({
212
- /** SeaweedFS, run beside Neon. */
281
+ /**
282
+ * SeaweedFS, run beside Neon, as its parts: masters, which place objects on volume
283
+ * servers, which keep them; filers, which keep the store's namespace in a Valkey of its
284
+ * own, the filer store, so every filer sees what any has written; and S3 gateways, on the
285
+ * filers. Each takes its scale; the gateways', apart, scale on their CPU.
286
+ */
213
287
  bundled: defaulted(Schema.Struct({
214
288
  enabled: defaulted(Schema.Boolean, true),
215
289
  image: Image({
216
290
  repository: "chrislusf/seaweedfs",
217
- tag: "4.47",
218
- digest: "sha256:ce9e796f1fe6f06968f4c04bdaf8f678dad9c8acdfef3d244133d71bfa6bf882",
291
+ tag: "4.48",
292
+ digest: "sha256:4e61d15fd35994cb1e43e1e553dff106794841fd9a99ade2fc8c8bfce4d7872d",
219
293
  }),
220
- storage: Storage("100Gi"),
221
- /** The most volumes it keeps, each up to 1GiB. */
222
- volumes: defaulted(Schema.Int.check(Schema.isGreaterThanOrEqualTo(30, { message: "must be at least 30" })), 100),
223
- /** The disk it leaves free. */
224
- minFreeSpace: defaulted(matching(/^[0-9]+(KiB|MiB|GiB|TiB)$/u, "must be a size in KiB, MiB, GiB or TiB"), "5GiB"),
225
- resources: Resources({ requests: { cpu: "100m", memory: "256Mi" }, limits: { memory: "2Gi" } }),
294
+ /**
295
+ * How many copies of each object are kept, as SeaweedFS's replication says it: 000,
296
+ * one; 00N, N more, each on another volume server, so N + 1 of them at least. A copy
297
+ * outlives a disk's loss only on another disk: volume servers whose volumes are on one
298
+ * disk, as local-path's are on one node's, lose every copy with it, and need room
299
+ * there for all of them. Where copies are kept, each volume server is on a node of
300
+ * its own while there are as many, one left unplaced rather than beside another, and
301
+ * what a lost server held is copied again, each hour, onto the others. Changed, it
302
+ * holds for what is written from then on at once, and for what was written before
303
+ * from the next hour's lifecycle pass, which sets each volume's own to it and copies
304
+ * each that lacks copies; until then, those are kept as they were.
305
+ */
306
+ replication: defaulted(matching(/^00[0-9]$/u, "must be 000, or 00N for N more copies, each on another volume server"), "000"),
307
+ /**
308
+ * The masters, 1, or 3 in Raft, each with a volume of its state; their count is set
309
+ * as the store is made, and never changed after: fewer would lose what their Raft
310
+ * keeps, and one master's state, made without peers, is no Raft's that more could join.
311
+ */
312
+ masters: defaulted(Schema.Struct({
313
+ scaling: Scaling({ min: 1, max: 1 }, { floor: true, scaled: false, most: 3 }),
314
+ storage: Storage("1Gi"),
315
+ resources: Resources({ requests: { cpu: "10m", memory: "64Mi" }, limits: { memory: "512Mi" } }),
316
+ }), {}),
317
+ /**
318
+ * The volume servers, each keeping objects on a volume of its own. Their count is
319
+ * lowered only once those it would remove hold no volumes, moved to the others first.
320
+ */
321
+ volumeServers: defaulted(Schema.Struct({
322
+ scaling: Scaling({ min: 1, max: 1 }, { floor: true, scaled: false }),
323
+ storage: Storage("100Gi"),
324
+ /** The most volumes each keeps, each up to 1GiB. */
325
+ volumes: defaulted(Schema.Int.check(Schema.isGreaterThanOrEqualTo(30, { message: "must be at least 30" })), 100),
326
+ /**
327
+ * The disk each leaves free. Once its disk has less free, a volume server takes no
328
+ * more writes; once none takes any, nor does the store, as each of its filers'
329
+ * writes is logged to a volume: `alasio status`, the Stack health dashboard and an
330
+ * alert say how near each is.
331
+ */
332
+ minFreeSpace: defaulted(matching(/^[0-9]+(KiB|MiB|GiB|TiB)$/u, "must be a size in KiB, MiB, GiB or TiB"), "5GiB"),
333
+ resources: Resources({ requests: { cpu: "50m", memory: "256Mi" }, limits: { memory: "2Gi" } }),
334
+ }), {}),
335
+ /** The filers, started one after another. */
336
+ filers: defaulted(Schema.Struct({
337
+ scaling: Scaling({ min: 1, max: 1 }, { floor: true, scaled: false }),
338
+ resources: Resources({ requests: { cpu: "20m", memory: "128Mi" }, limits: { memory: "1Gi" } }),
339
+ }), {}),
340
+ /** The S3 gateways, the store's endpoint. */
341
+ gateways: defaulted(Schema.Struct({
342
+ scaling: Scaling({ min: 1, max: 1 }, { floor: true, scaled: true }),
343
+ resources: Resources({ requests: { cpu: "20m", memory: "96Mi" }, limits: { memory: "1Gi" } }),
344
+ }), {}),
345
+ /**
346
+ * The filers' store: a Valkey of its own, its memory sized for `entries`, the store's
347
+ * objects and directories, as about 1.4 KB each, with a quarter more. Full, it
348
+ * refuses writes, and the store with it: an alert says when it nears that.
349
+ */
350
+ filerStore: defaulted(Schema.Struct({
351
+ image: Image(VALKEY_IMAGE),
352
+ storage: Storage("2Gi"),
353
+ entries: defaulted(Schema.Int.check(Schema.isGreaterThanOrEqualTo(10_000, { message: "must be at least 10000" })), 150_000),
354
+ resources: Resources({ requests: { cpu: "10m", memory: "32Mi" }, limits: { memory: "512Mi" } }),
355
+ /**
356
+ * A snapshot of the filer store on `schedule`, hourly, onto a volume of its own,
357
+ * the last `keep` kept. One put back rolls the store's namespace back to when it
358
+ * was taken, so what was written since is lost, as an hour's at most. On a
359
+ * cluster of several nodes the volume is made on another node than the filer
360
+ * store's where one can take it, so a node's loss takes one of the two alone; on
361
+ * a single node, its disk's loss takes both.
362
+ */
363
+ backups: defaulted(Schema.Struct({
364
+ enabled: defaulted(Schema.Boolean, true),
365
+ schedule: defaulted(Schema.String.check(Schema.isMinLength(9, { message: "must be a cron schedule" })), "23 * * * *"),
366
+ keep: defaulted(Schema.Int.check(Schema.isGreaterThanOrEqualTo(1, { message: "must be at least 1" })), 48),
367
+ storage: Storage("10Gi"),
368
+ }), {}),
369
+ }), {}),
226
370
  }), {}),
227
- /** Or an S3-compatible store of the operator's: its endpoint, region, and a Secret with `accessKey` and `secretKey`. */
371
+ /**
372
+ * Or an S3-compatible store of the operator's: its endpoint, region, and a Secret with
373
+ * `accessKey` and `secretKey`; and, where sessions are snapshotted, a Secret of the same
374
+ * keys for a key of the store's that reaches the snapshots bucket alone, which only the
375
+ * node agents hold, as what writes that bucket writes what they restore as root: the
376
+ * first key may not write it, and Neon's setup, which tries, refuses one that can.
377
+ */
228
378
  external: defaulted(Schema.Struct({
229
379
  endpoint: defaulted(OptionalUrl, ""),
230
380
  region: defaulted(NonEmpty, "us-east-1"),
231
381
  existingSecret: defaulted(OptionalSecretName, ""),
382
+ snapshotsSecret: defaulted(OptionalSecretName, ""),
232
383
  }), {}),
233
384
  buckets: defaulted(Schema.Struct({
234
385
  neon: defaulted(Bucket, "neon"),
@@ -236,10 +387,12 @@ const ObjectStore = Schema.Struct({
236
387
  backups: defaulted(Bucket, "backups"),
237
388
  /** Workspace storage's data; an external store must have it already, as it must the others. */
238
389
  workspaces: defaulted(Bucket, "workspaces"),
390
+ /** Session sandboxes' snapshots, when sessions run under gVisor (sessions.runtimeClassName); an external store must have it then, as it must the others. */
391
+ snapshots: defaulted(Bucket, "snapshots"),
239
392
  }), {}),
240
393
  });
241
- /** The seconds of a duration as JuiceFS takes one (1h, 1h30m, 90s), or null when it is none. */
242
- function durationSeconds(duration) {
394
+ /** The seconds of a duration, as alasio's settings and JuiceFS take one (1h, 1h30m, 90s), or null when it is none. */
395
+ export function durationSeconds(duration) {
243
396
  const match = /^(?:([0-9]+)h)?(?:([0-9]+)m)?(?:([0-9]+)s)?$/u.exec(duration);
244
397
  if (!match || duration === "")
245
398
  return null;
@@ -291,11 +444,7 @@ const Csi = Schema.Struct({
291
444
  });
292
445
  /** Valkey, the file system's metadata engine. */
293
446
  const Valkey = Schema.Struct({
294
- image: Image({
295
- repository: "valkey/valkey",
296
- tag: "9.1.2-alpine",
297
- digest: "sha256:48332870af354a799964c0012ae1194a0bf2bf894eb508f945810596dc2d8d11",
298
- }),
447
+ image: Image(VALKEY_IMAGE),
299
448
  /** Its snapshots and append-only file. */
300
449
  storage: Storage("2Gi"),
301
450
  /** What it may hold, half its memory limit, leaving room for the fork that writes its snapshots; about a million files at 384mb. */
@@ -333,11 +482,65 @@ const AgentSandbox = Schema.Struct({
333
482
  digest: defaulted(Digest, "sha256:28a9cbdbfd6ac0a4e5c7e9261ace1aa30ee2da681cb640dccdfed98e8dd9d98b"),
334
483
  pullPolicy: defaulted(PullPolicy, "IfNotPresent"),
335
484
  }), {}),
336
- resources: Resources({ requests: { cpu: "50m", memory: "64Mi" }, limits: { memory: "256Mi" } }),
485
+ resources: Resources({ requests: { cpu: "20m", memory: "32Mi" }, limits: { memory: "256Mi" } }),
337
486
  nodeSelector: NodeSelector,
338
487
  tolerations: Tolerations,
339
488
  affinity: Affinity,
340
489
  });
490
+ /** A container of a controller alasio installs: its pinned image and its resources. */
491
+ const ControllerContainer = (image, resources) => defaulted(Schema.Struct({ image: Image(image), resources: Resources(resources) }), {});
492
+ /**
493
+ * How alasio's components scale: KEDA, which moves a component's replicas between its
494
+ * scale's min and max on what its ScaledObject names; VPA, which sizes every workload's
495
+ * requests from what it uses; each installed once per cluster, and off where the cluster
496
+ * has its own already, which alasio then uses; and headroom for a node autoscaler.
497
+ */
498
+ const Autoscaling = Schema.Struct({
499
+ /**
500
+ * KEDA (kedacore/keda v2.21.0), as its release's manifest installs it, but that it reads
501
+ * Secrets in its own namespace alone, and of what ScaledObjects scale, Deployments and
502
+ * StatefulSets, and runs no ScaledJob's Jobs (./keda.ts): a cluster whose ScaledObjects
503
+ * scale custom resources, or authenticate through TriggerAuthentications in their own
504
+ * namespaces, or whose ScaledJobs run, brings a KEDA of its own, which enabled false uses.
505
+ */
506
+ keda: defaulted(Schema.Struct({
507
+ enabled: defaulted(Schema.Boolean, true),
508
+ operator: ControllerContainer({ repository: "ghcr.io/kedacore/keda", tag: "2.21.0", digest: "sha256:81fe6547ce8d1cc29273f887b76507e9b853e5bc1f875ec23fe60061a38ed809" }, { requests: { cpu: "20m", memory: "64Mi" }, limits: { memory: "512Mi" } }),
509
+ metricsApiServer: ControllerContainer({ repository: "ghcr.io/kedacore/keda-metrics-apiserver", tag: "2.21.0", digest: "sha256:255375037fe592732eeb554743aae360c2da88cf0b9b1258d0a987ef885f0881" }, { requests: { cpu: "10m", memory: "48Mi" }, limits: { memory: "256Mi" } }),
510
+ admissionWebhooks: ControllerContainer({ repository: "ghcr.io/kedacore/keda-admission-webhooks", tag: "2.21.0", digest: "sha256:e1969628cca6123e32eea13c47c75817091af2657fa68d9d0d58a8620d1b75b1" }, { requests: { cpu: "10m", memory: "32Mi" }, limits: { memory: "256Mi" } }),
511
+ }), {}),
512
+ /** VPA (kubernetes/autoscaler vertical-pod-autoscaler-1.8.0), as its deploy/ installs it, with its chart's certificate Job. */
513
+ vpa: defaulted(Schema.Struct({
514
+ enabled: defaulted(Schema.Boolean, true),
515
+ recommender: ControllerContainer({ repository: "registry.k8s.io/autoscaling/vpa-recommender", tag: "1.8.0", digest: "sha256:e743e3a7e58a614f850063dba5df88eec5a19cf4cc43edb2050248df2d7dd8d3" }, { requests: { cpu: "20m", memory: "64Mi" }, limits: { memory: "512Mi" } }),
516
+ updater: ControllerContainer({ repository: "registry.k8s.io/autoscaling/vpa-updater", tag: "1.8.0", digest: "sha256:1d0229e52f90f645f1ee2e86ddfac8f451d166777c2aab066b9c5ab5e8bc5d5c" }, { requests: { cpu: "10m", memory: "32Mi" }, limits: { memory: "256Mi" } }),
517
+ admissionController: ControllerContainer({ repository: "registry.k8s.io/autoscaling/vpa-admission-controller", tag: "1.8.0", digest: "sha256:3d94f53e4c5a6891b8b32af545dda975e45842486432b69475afaf8df278d23d" }, { requests: { cpu: "10m", memory: "32Mi" }, limits: { memory: "256Mi" } }),
518
+ /** What makes the admission controller's certificate, and gives its webhook the CA. */
519
+ certgenImage: Image({
520
+ repository: "registry.k8s.io/ingress-nginx/kube-webhook-certgen",
521
+ tag: "v1.6.9",
522
+ digest: "sha256:01038e7de14b78d702d2849c3aad72fd25903c4765af63cf16aa3398f5d5f2dd",
523
+ }),
524
+ }), {}),
525
+ /**
526
+ * Whether alasio's pods take the places of pods of lower priority to be scheduled where
527
+ * there is no room for them (./priorities.ts): alasio's own, and, on a cluster it shares,
528
+ * the cluster's others, of priority 0 unless their class says; or wait for room. So true
529
+ * on a cluster alasio makes, and false on one a kubeconfig reaches, unless said
530
+ * (installConfigOf in ../config.ts).
531
+ */
532
+ preemption: defaulted(Schema.Boolean, true),
533
+ /**
534
+ * Placeholder pods, each requesting `resources`, which any pod takes the place of: room a
535
+ * node autoscaler keeps ready, of use only where one runs, and where pods preempt. None
536
+ * unless a fixed count is given.
537
+ */
538
+ headroom: defaulted(Schema.Struct({
539
+ scaling: Scaling({ min: 0, max: 0 }, { floor: false, scaled: false }),
540
+ image: Image({ repository: "registry.k8s.io/pause", tag: "3.10.1", digest: "sha256:278fb9dbcca9518083ad1e11276933a2e96f23de604a3a08cc3c80002767d24c" }),
541
+ resources: Resources({ requests: { cpu: "500m", memory: "512Mi" }, limits: {} }),
542
+ }), {}),
543
+ });
341
544
  /** What a configuration must also hold, given what it turns off: the issue of the first it lacks. */
342
545
  function completeness(config) {
343
546
  if (!config.neon.enabled && !config.neon.external.existingSecret) {
@@ -348,6 +551,9 @@ function completeness(config) {
348
551
  return { path: ["objectStore", "external", "endpoint"], issue: "is required when objectStore.bundled.enabled is false" };
349
552
  if (!config.objectStore.external.existingSecret)
350
553
  return { path: ["objectStore", "external", "existingSecret"], issue: "is required with an external object store" };
554
+ if (config.sessions.enabled && config.sessions.runtimeClassName !== "" && !config.objectStore.external.snapshotsSecret) {
555
+ return { path: ["objectStore", "external", "snapshotsSecret"], issue: "is required with an external object store where sessions are snapshotted: a key that reaches the snapshots bucket alone" };
556
+ }
351
557
  }
352
558
  if (config.workspaceStorage.enabled && !config.sessions.enabled) {
353
559
  return { path: ["workspaceStorage", "enabled"], issue: "must be false when sessions.enabled is false, as its volumes are sessions' workspaces" };
@@ -355,6 +561,29 @@ function completeness(config) {
355
561
  if (config.workspaceStorage.enabled && !config.neon.enabled) {
356
562
  return { path: ["workspaceStorage", "enabled"], issue: "must be false when neon.enabled is false, as its data is in the object store that runs with Neon" };
357
563
  }
564
+ const { bundled } = config.objectStore;
565
+ if (bundled.masters.scaling.min === 2)
566
+ return { path: ["objectStore", "bundled", "masters", "scaling"], issue: "must be 1 or 3: two masters elect no leader once one is gone" };
567
+ const copies = Number(bundled.replication.slice(2)) + 1;
568
+ if (bundled.volumeServers.scaling.min < copies) {
569
+ return { path: ["objectStore", "bundled", "volumeServers", "scaling"], issue: `must be at least ${copies}, one for each copy objectStore.bundled.replication keeps` };
570
+ }
571
+ if (memoryBytes(bundled.filerStore.resources.limits["memory"] ?? "0") < 2 * filerStoreMaxmemoryBytes(bundled.filerStore.entries)) {
572
+ return {
573
+ path: ["objectStore", "bundled", "filerStore", "resources", "limits", "memory"],
574
+ issue: `must be at least ${memoryText(2 * filerStoreMaxmemoryBytes(bundled.filerStore.entries))}, twice what its entries take, for the fork that writes its snapshots`,
575
+ };
576
+ }
577
+ const { nodeAgent } = config.sessions.snapshots;
578
+ if (config.sessions.enabled && config.sessions.runtimeClassName !== "" && memoryBytes(nodeAgent.resources.limits["memory"] ?? "0") < NODE_AGENT_MEMORY_FLOOR) {
579
+ return {
580
+ path: ["sessions", "snapshots", "nodeAgent", "resources", "limits", "memory"],
581
+ issue: `must be at least ${memoryText(NODE_AGENT_MEMORY_FLOOR)}: the node agent's own memory, and what a restore holds written and not yet on the disk`,
582
+ };
583
+ }
584
+ if (config.autoscaling.headroom.scaling.min > 0 && !config.autoscaling.preemption) {
585
+ return { path: ["autoscaling", "headroom", "scaling"], issue: "must be 0 when autoscaling.preemption is false, as no pod takes a placeholder's place then" };
586
+ }
358
587
  return undefined;
359
588
  }
360
589
  const InstallStruct = Schema.Struct({
@@ -379,13 +608,22 @@ const InstallStruct = Schema.Struct({
379
608
  lake: defaulted(Schema.Struct({
380
609
  enabled: defaulted(Schema.Boolean, true),
381
610
  resources: Resources({ requests: { cpu: "100m", memory: "512Mi" }, limits: { memory: "1536Mi" } }),
382
- query: defaulted(Schema.Struct({ resources: Resources({ requests: { cpu: "50m", memory: "192Mi" }, limits: { memory: "1Gi" } }) }), {}),
611
+ query: defaulted(Schema.Struct({ resources: Resources({ requests: { cpu: "50m", memory: "128Mi" }, limits: { memory: "1Gi" } }) }), {}),
612
+ }), {}),
613
+ /**
614
+ * Grafana, with the lake: dashboards and alerts on it, alerting through the Telegram bot;
615
+ * alasio grafana reaches it. Two replicas or more are its high availability, which sends
616
+ * each alert once; min and max apart scale it on its CPU.
617
+ */
618
+ grafana: defaulted(Schema.Struct({
619
+ enabled: defaulted(Schema.Boolean, true),
620
+ scaling: Scaling({ min: 1, max: 1 }, { floor: true, scaled: true }),
621
+ resources: Resources({ requests: { cpu: "50m", memory: "256Mi" }, limits: { memory: "768Mi" } }),
383
622
  }), {}),
384
- /** Grafana, with the lake: dashboards and alerts on it, alerting through the Telegram bot; alasio grafana reaches it. */
385
- grafana: defaulted(Schema.Struct({ enabled: defaulted(Schema.Boolean, true), resources: Resources({ requests: { cpu: "50m", memory: "256Mi" }, limits: { memory: "768Mi" } }) }), {}),
386
623
  /** NetworkPolicies confining sessions, folder workspaces' bayma and Neon. */
387
624
  networkPolicies: defaulted(Schema.Struct({ enabled: defaulted(Schema.Boolean, true) }), {}),
388
625
  agentSandbox: defaulted(AgentSandbox, {}),
626
+ autoscaling: defaulted(Autoscaling, {}),
389
627
  });
390
628
  /** The install configuration: what the config file holds, every key left out its default. */
391
629
  export const InstallConfig = InstallStruct.check(Schema.makeFilter(completeness));
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/manifests/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/manifests/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { componentName, imagePullSecrets, labels, NAMESPACE, ONE, replicasOf, restrictedContainer, restrictedPod, selectorLabels } from "./common.js";
2
+ import { priority } from "./priorities.js";
3
+ import { verticalPodAutoscaler } from "./sizing.js";
4
+ /** The user of KEDA's and VPA's distroless images. */
5
+ const NONROOT = 65532;
6
+ /** The Deployment of the controller `component`: `container`, as `serviceAccountName`, with `volumes`. */
7
+ function controllerDeployment(config, component, serviceAccountName, container, volumes = []) {
8
+ return {
9
+ apiVersion: "apps/v1",
10
+ kind: "Deployment",
11
+ metadata: { name: componentName(component), namespace: NAMESPACE, labels: labels(component) },
12
+ spec: {
13
+ ...replicasOf(ONE),
14
+ selector: { matchLabels: selectorLabels(component) },
15
+ template: {
16
+ metadata: { labels: labels(component) },
17
+ spec: {
18
+ serviceAccountName,
19
+ ...priority("floor"),
20
+ securityContext: restrictedPod(NONROOT, NONROOT),
21
+ ...imagePullSecrets(config),
22
+ terminationGracePeriodSeconds: 10,
23
+ ...(volumes.length > 0 ? { volumes } : {}),
24
+ containers: [{ ...container, imagePullPolicy: "IfNotPresent", securityContext: { ...restrictedContainer(), readOnlyRootFilesystem: true } }],
25
+ },
26
+ },
27
+ },
28
+ };
29
+ }
30
+ /** The controller `component`'s Deployment (controllerDeployment) and its VerticalPodAutoscaler, which resizes it in place. */
31
+ export function sizedController(...args) {
32
+ const deployment = controllerDeployment(...args);
33
+ return [deployment, verticalPodAutoscaler(deployment, "InPlace")];
34
+ }
35
+ /** A rule granting `verbs` on `resources` of `apiGroups`, of those named `resourceNames` alone when given. */
36
+ export function rule(apiGroups, resources, verbs, resourceNames) {
37
+ return { apiGroups, resources, verbs, ...(resourceNames ? { resourceNames } : {}) };
38
+ }
39
+ //# sourceMappingURL=controllers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../../../src/manifests/controllers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEtJ,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,sDAAsD;AACtD,MAAM,OAAO,GAAG,KAAK,CAAC;AAEtB,0GAA0G;AAC1G,SAAS,oBAAoB,CAAC,MAAqB,EAAE,SAAiB,EAAE,kBAA0B,EAAE,SAAsB,EAAE,OAAO,GAAe,EAAE;IAClJ,OAAO;QACL,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;QAC7F,IAAI,EAAE;YACJ,GAAG,UAAU,CAAC,GAAG,CAAC;YAClB,QAAQ,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE;YACpD,QAAQ,EAAE;gBACR,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;gBACvC,IAAI,EAAE;oBACJ,kBAAkB;oBAClB,GAAG,QAAQ,CAAC,OAAO,CAAC;oBACpB,eAAe,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC;oBAChD,GAAG,gBAAgB,CAAC,MAAM,CAAC;oBAC3B,6BAA6B,EAAE,EAAE;oBACjC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1C,UAAU,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,GAAG,mBAAmB,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,CAAC;iBAC7I;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,+HAA+H;AAC/H,MAAM,UAAU,eAAe,CAAC,GAAG,IAA6C;IAC9E,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,IAAI,CAAC,SAAmB,EAAE,SAAmB,EAAE,KAAe,EAAE,aAAwB;IACtG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACtF,CAAC"}