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
@@ -1,14 +1,26 @@
1
- import { BRANCH_FORK_PORT, BRANCH_PARENT_LABEL, branchSessionsNamespace, MAIN_ENVIRONMENT_NAME } from "../../../src/branch/names.js";
1
+ /**
2
+ * alasio itself: its Deployment, the namespaces its workspaces run in, its identity in
3
+ * them, and the template it makes its folder workspaces' Sandboxes from (src/kube/
4
+ * config.ts); main's, or a branch environment's in its own namespaces (./branch.ts), and
5
+ * main's Service of the forks it asks the sandbox gateway for them.
6
+ */
7
+ import { posix } from "node:path";
8
+ import { BRANCH_PARENT_LABEL, branchSessionsNamespace, forksGroup, forksTopic, MAIN_ENVIRONMENT_NAME } from "../../../src/branch/names.js";
9
+ import { eventsGroup, eventsTopic } from "../../../src/events/names.js";
2
10
  import { ALASIO_GATEWAY_CALLER_KEY_VARIABLE, ALASIO_GATEWAY_ENVIRONMENT_VARIABLE, ALASIO_GATEWAY_FOLDERS_VARIABLE, ALASIO_GATEWAY_URL_VARIABLE } from "../../../src/gateway/names.js";
11
+ import { STARTED_CONFIG_MAP } from "../../../src/kube/started-map.js";
3
12
  import { gvisorReleases, NODE_PINS } from "../cluster/node.js";
4
13
  import { imageReference } from "../images.js";
5
14
  import { busyLabelPolicy } from "./admission.js";
15
+ import { codexLoginObjects, codexLoginUrl } from "./codex-login.js";
6
16
  import { foldersRun } from "./folders.js";
7
- import { carriedPools, GATEWAY, GATEWAY_PORT, sandboxServiceRuns } from "./sandbox-gateway.js";
8
- import { alasioGroup, environmentLogSecret, environmentName, lakeWakeTopic, LOG_BROKERS, telegramTopic } from "./log.js";
9
- import { BRANCH_FORK_SECRET, BRANCH_LABEL, componentName, databaseSecret, envOf, given, hostVolumeMounts, hostVolumes, imagePullSecrets, labels, lakeRuns, MAIN_ENVIRONMENT, NAMESPACE, ONE, otelEnv, RELEASE, replicasOf, restrictedContainer, restrictedPod, roleVerifiers, selectorLabels, SESSIONS_CALLER_SECRET, } from "./common.js";
17
+ import { carriedPools, GATEWAY, GATEWAY_PORT } from "./sandbox-gateway.js";
18
+ import { alasioGroup, environmentLogSecret, environmentName, lagTrigger, lakeWakeTopic, LOG_BROKERS, logAuthentication, telegramTopic } from "./log.js";
19
+ import { scaledObject } from "./scalers.js";
20
+ import { STOP_GRACE_SECONDS } from "../../../src/telegram/stop.js";
21
+ import { BRANCH_FORK_SECRET, BRANCH_LABEL, componentName, DATABASE_SECRET, envOf, given, imagePullSecrets, labels, lakeRuns, MAIN_ENVIRONMENT, NAMESPACE, otelEnv, RELEASE, replicasOf, restrictedContainer, restrictedPod, roleVerifiers, selectorLabels, SESSIONS_CALLER_SECRET, } from "./common.js";
10
22
  import { durationSeconds } from "./config.js";
11
- import { busyBudget } from "./disruption.js";
23
+ import { busyBudget, replicaBudget, spread } from "./disruption.js";
12
24
  import { priority } from "./priorities.js";
13
25
  import { verticalPodAutoscaler } from "./sizing.js";
14
26
  /** The namespace of the sessions of the alasio of `environment`: the configured one, or a branch environment's own. */
@@ -38,28 +50,23 @@ const BRANCH_SECRETS = "/run/alasio/branch";
38
50
  /**
39
51
  * What alasio is told of branch environments: main, where it forks sessions, where the
40
52
  * key their tokens are signed with is, from the stack's Secret, which may be made after
41
- * it starts; a branch, which it is, and where its parent forks the sessions it inherited
42
- * for it, with its token (src/branch/fork.ts).
53
+ * it starts; a branch, which it is, and its token to ask its parent to fork the sessions it
54
+ * inherited with, on the log (src/branch/fork.ts).
43
55
  */
44
- function branchEnv(config, { branch }) {
56
+ function branchEnv({ branch }) {
45
57
  if (branch) {
46
58
  return [
47
59
  { name: "ALASIO_BRANCH", value: branch },
48
- { name: "ALASIO_PARENT_FORKS_URL", value: `http://${componentName("branches")}.${NAMESPACE}.svc:${BRANCH_FORK_PORT}` },
49
60
  { name: "ALASIO_BRANCH_FORK_TOKEN_FILE", value: `${BRANCH_SECRETS}/token` },
50
61
  ];
51
62
  }
52
- return forksForBranches(config) ? [{ name: "ALASIO_BRANCH_FORK_KEY_FILE", value: `${BRANCH_SECRETS}/fork-key` }] : [];
63
+ return [{ name: "ALASIO_BRANCH_FORK_KEY_FILE", value: `${BRANCH_SECRETS}/fork-key` }];
53
64
  }
54
65
  /** The volume of branch environments' Secret: main's key, kept optional, or a branch's token. */
55
- function branchSecretVolume(config, { branch }) {
66
+ function branchSecretVolume({ branch }) {
56
67
  if (branch)
57
68
  return [{ name: "branch", secret: { secretName: BRANCH_FORK_SECRET, items: [{ key: "token", path: "token" }] } }];
58
- return forksForBranches(config) ? [{ name: "branch", secret: { secretName: componentName("branches"), items: [{ key: "fork-key", path: "fork-key" }], optional: true } }] : [];
59
- }
60
- /** Whether main forks its sessions for branch environments: where it has Neon to branch, and the sandbox service, whose node agents clone them. */
61
- export function forksForBranches(config) {
62
- return config.neon.enabled && sandboxServiceRuns(config);
69
+ return [{ name: "branch", secret: { secretName: componentName("branches"), items: [{ key: "fork-key", path: "fork-key" }], optional: true } }];
63
70
  }
64
71
  /**
65
72
  * The roles main's alasio makes for what reads its Neon beside it (common.ts
@@ -77,7 +84,6 @@ function alasioEnv(config, home, operatorHome, environment) {
77
84
  { name: "HOME", value: home },
78
85
  // A home of alasio's own does not outlast its pod; the operator's keeps their login.
79
86
  ...(operatorHome ? [] : [{ name: "ALASIO_KEEP_CODEX_LOGIN", value: "1" }]),
80
- { name: "ALASIO_DEPLOYMENT", value: RELEASE },
81
87
  { name: "ALASIO_NAMESPACE", valueFrom: { fieldRef: { fieldPath: "metadata.namespace" } } },
82
88
  { name: "ALASIO_POD", valueFrom: { fieldRef: { fieldPath: "metadata.name" } } },
83
89
  { name: "TELEGRAM_BOT_TOKEN", valueFrom: { secretKeyRef: { name: alasio.telegram.existingSecret, key: "token" } } },
@@ -85,8 +91,9 @@ function alasioEnv(config, home, operatorHome, environment) {
85
91
  { name: "ALASIO_DATABASE_URL_FILE", value: "/run/alasio/database/url" },
86
92
  { name: "ALASIO_LAKE_VERIFIER_FILE", value: "/run/alasio/database/lake-verifier" },
87
93
  { name: "ALASIO_HARNESS_VERIFIER_FILE", value: "/run/alasio/database/harness-verifier" },
94
+ { name: "ALASIO_CODEX_LOGIN_VERIFIER_FILE", value: "/run/alasio/database/codex-login-verifier" },
88
95
  ...readerRoles(config, environment).map(({ key, variable }) => ({ name: variable, value: `/run/alasio/database/${key}` })),
89
- { name: "ALASIO_LAKE_ENABLED", value: config.lake.enabled && config.neon.enabled ? "1" : "0" },
96
+ { name: "ALASIO_LAKE_ENABLED", value: config.lake.enabled ? "1" : "0" },
90
97
  // Its Telegram updates: its environment's topic, read in its group as its principal.
91
98
  { name: "ALASIO_LOG_BROKERS", value: LOG_BROKERS },
92
99
  { name: "ALASIO_LOG_USERNAME", valueFrom: { secretKeyRef: { name: environmentLogSecret(environment), key: "username" } } },
@@ -101,27 +108,71 @@ function alasioEnv(config, home, operatorHome, environment) {
101
108
  ? [{ name: "CLAUDE_CODE_OAUTH_TOKEN", valueFrom: { secretKeyRef: { name: alasio.claude.existingSecret, key: alasio.claude.key } } }]
102
109
  : []),
103
110
  // Its environment's sessions, through the sandbox gateway, by its environment's own key of the gateway's.
104
- ...(sandboxServiceRuns(config)
105
- ? [
106
- { name: ALASIO_GATEWAY_URL_VARIABLE, value: `http://${GATEWAY}.${NAMESPACE}.svc.cluster.local:${GATEWAY_PORT}` },
107
- { name: ALASIO_GATEWAY_ENVIRONMENT_VARIABLE, value: environmentName(environment) },
108
- { name: ALASIO_GATEWAY_CALLER_KEY_VARIABLE, valueFrom: { secretKeyRef: { name: SESSIONS_CALLER_SECRET, key: "caller-key" } } },
109
- ]
110
- : []),
111
+ { name: ALASIO_GATEWAY_URL_VARIABLE, value: `http://${GATEWAY}.${NAMESPACE}.svc.cluster.local:${GATEWAY_PORT}` },
112
+ { name: ALASIO_GATEWAY_ENVIRONMENT_VARIABLE, value: environmentName(environment) },
113
+ { name: ALASIO_GATEWAY_CALLER_KEY_VARIABLE, valueFrom: { secretKeyRef: { name: SESSIONS_CALLER_SECRET, key: "caller-key" } } },
111
114
  // Main's folder workspaces, the gateway's folder instances, where the host profile renders them.
112
115
  ...(environment.branch === null && foldersRun(config) ? [{ name: ALASIO_GATEWAY_FOLDERS_VARIABLE, value: "1" }] : []),
113
- ...branchEnv(config, environment),
116
+ // Where its conversations' harnesses' pools' pods reach its environment's relay of its Codex login (./codex-login.ts).
117
+ { name: "ALASIO_CODEX_LOGIN_URL", value: codexLoginUrl(environment) },
118
+ ...branchEnv(environment),
114
119
  ...otelEnv(config, environment),
115
120
  ...envOf(alasio.env),
116
121
  ];
117
122
  }
118
123
  /**
119
- * alasio's Deployment: one replica, the one member of its group on its topic's one
120
- * partition, which its turns run in, so an update stops the old pod before the new one
121
- * starts. It keeps no volume: its state is in Neon,
124
+ * What of the machine alasio's pod mounts under the host profile: what alasio itself reads and
125
+ * writes there, now that no harness runs in its pod, each where the host profile's mounts put it
126
+ * (its folder conversations' harnesses run in pools of their own, with every mount):
127
+ * - the root its folder workspaces are under (ALASIO_WORKSPACE_ROOT, else its home), which it
128
+ * lists and makes folders in, reads a reply's media from, and starts Claude Code in to list
129
+ * the models its login can use (../../../src/harness/claude/models.ts);
130
+ * - where its home is the operator's and outside that root, the operator's Claude and Codex
131
+ * homes in it, `~/.claude` and `~/.codex`: Claude Code's login and settings it lists models
132
+ * with, and the Codex login its app-server keeps fresh and lists models with, and the
133
+ * configuration it gives folder conversations' Codex (../../../src/codex/configuration.ts);
134
+ * the rest of that home its own, an emptyDir.
135
+ * Nothing else: no socket, binary, or other path of the machine any mount gives. A path no mount
136
+ * gives is mounted from nowhere, as it was not given the machine's.
137
+ */
138
+ export function hostPaths(config, home) {
139
+ const { host } = config;
140
+ if (!host.enabled)
141
+ return { mounts: [], volumes: [], homeIsGiven: false };
142
+ const under = (path, of) => path === of || path.startsWith(`${of.replace(/\/$/u, "")}/`);
143
+ /** Where on the machine the mount that gives `path` has it, and whether it gives it read-only; null where none does. */
144
+ const given = (path) => {
145
+ const [mount] = host.mounts.filter(({ mountPath }) => under(path, mountPath)).sort((a, b) => b.mountPath.length - a.mountPath.length);
146
+ return mount ? { hostPath: posix.join(mount.hostPath, posix.relative(mount.mountPath, path)), readOnly: mount.readOnly } : null;
147
+ };
148
+ const root = host.workspaceRoot || home;
149
+ const operatorHome = host.alasioHome;
150
+ const paths = [
151
+ { name: "workspace-root", path: root, type: "Directory" },
152
+ ...(operatorHome && !under(home, root)
153
+ ? [{ name: "claude-home", path: posix.join(home, ".claude"), type: "DirectoryOrCreate" }, { name: "codex-home", path: posix.join(home, ".codex"), type: "DirectoryOrCreate" }]
154
+ : []),
155
+ ];
156
+ const mounts = [];
157
+ const volumes = [];
158
+ for (const { name, path, type } of paths) {
159
+ const at = given(path);
160
+ if (!at)
161
+ continue;
162
+ mounts.push({ name, mountPath: path, ...(at.readOnly ? { readOnly: true } : {}) });
163
+ volumes.push({ name, hostPath: { path: at.hostPath, type } });
164
+ }
165
+ return { mounts, volumes, homeIsGiven: operatorHome && under(home, root) && given(root) !== null };
166
+ }
167
+ /**
168
+ * alasio's Deployment: of alasio.scaling's replicas, which KEDA moves between its min and max
169
+ * where they are apart (alasioScaling). At one at most, an update stops the old pod before the
170
+ * new one starts; beyond, the new one starts beside the old, which drains as it stops, within
171
+ * STOP_GRACE_SECONDS (src/telegram/stop.ts, src/telegram/drain.ts). It keeps no volume: its state is in Neon,
122
172
  * and what it writes to disk (received files written for the agent, its home unless it
123
173
  * is the operator's) is written again as needed, on emptyDirs. Under the
124
- * host profile it runs as the operator, in their home, with the machine's mounts. A
174
+ * host profile it runs as the operator, in their home, with what of the machine it reads
175
+ * itself (hostPaths), no more of the machine's mounts. A
125
176
  * branch environment's runs in its namespace on the branch's database, told it is the
126
177
  * branch, with its token to ask main to fork the sessions it inherited; main's is given
127
178
  * the key branch environments' tokens are signed with, where it forks sessions. Its pod
@@ -136,14 +187,17 @@ function deployment(config, botChecksum, environment) {
136
187
  const gid = host.enabled ? host.gid : alasio.runAsGroup;
137
188
  const groups = [...new Set([...alasio.supplementalGroups, ...(host.enabled ? host.supplementalGroups : [])])];
138
189
  const image = imageReference(config.images.alasio);
139
- const branchSecret = branchSecretVolume(config, environment);
190
+ const branchSecret = branchSecretVolume(environment);
191
+ const machine = hostPaths(config, home);
192
+ // Its home its own, an emptyDir, but where the machine's root it is given holds it.
193
+ const ownHome = !machine.homeIsGiven;
140
194
  return {
141
195
  apiVersion: "apps/v1",
142
196
  kind: "Deployment",
143
197
  metadata: { name: RELEASE, namespace: environment.namespace, labels: labels("alasio") },
144
198
  spec: {
145
- ...replicasOf(ONE),
146
- strategy: { type: "Recreate" },
199
+ ...replicasOf(alasio.scaling),
200
+ strategy: alasio.scaling.max > 1 ? { type: "RollingUpdate", rollingUpdate: { maxSurge: 1, maxUnavailable: 0 } } : { type: "Recreate" },
147
201
  selector: { matchLabels: selectorLabels("alasio") },
148
202
  template: {
149
203
  metadata: {
@@ -153,8 +207,8 @@ function deployment(config, botChecksum, environment) {
153
207
  spec: {
154
208
  serviceAccountName: RELEASE,
155
209
  ...priority("turn"),
156
- // alasio finishes its turns' bookkeeping and records what it interrupts as it stops.
157
- terminationGracePeriodSeconds: 60,
210
+ // alasio finishes its turns' bookkeeping and records what it interrupts as it stops, and delivers what it owes.
211
+ terminationGracePeriodSeconds: STOP_GRACE_SECONDS,
158
212
  securityContext: { ...restrictedPod(uid, gid), ...given("supplementalGroups", groups) },
159
213
  ...imagePullSecrets(config),
160
214
  containers: [{
@@ -164,49 +218,41 @@ function deployment(config, botChecksum, environment) {
164
218
  workingDir: home,
165
219
  env: alasioEnv(config, home, operatorHome, environment),
166
220
  ...given("envFrom", [...alasio.envFrom]),
167
- ...(environment.branch === null && forksForBranches(config) ? { ports: [{ name: "branch-forks", containerPort: BRANCH_FORK_PORT }] } : {}),
168
221
  securityContext: restrictedContainer(),
169
222
  resources: alasio.resources,
170
223
  volumeMounts: [
171
224
  { name: "state", mountPath: "/var/lib/alasio/state" },
172
- ...(operatorHome ? [] : [{ name: "alasio-home", mountPath: home }]),
225
+ ...(ownHome ? [{ name: "alasio-home", mountPath: home }] : []),
173
226
  { name: "database", mountPath: "/run/alasio/database", readOnly: true },
174
227
  { name: "log", mountPath: "/run/alasio/log", readOnly: true },
175
228
  ...branchSecret.map(({ name }) => ({ name, mountPath: BRANCH_SECRETS, readOnly: true })),
176
- ...(host.enabled ? hostVolumeMounts(config) : []),
229
+ ...machine.mounts,
177
230
  ],
178
231
  }],
179
232
  volumes: [
180
233
  { name: "state", emptyDir: {} },
181
- ...(operatorHome ? [] : [{ name: "alasio-home", emptyDir: {} }]),
234
+ ...(ownHome ? [{ name: "alasio-home", emptyDir: {} }] : []),
182
235
  {
183
236
  name: "database",
184
237
  secret: {
185
- secretName: databaseSecret(config),
186
- items: ["url", "lake-verifier", "harness-verifier", ...readerRoles(config, environment).map(({ key }) => key)].map((key) => ({ key, path: key })),
238
+ secretName: DATABASE_SECRET,
239
+ items: ["url", "lake-verifier", "harness-verifier", "codex-login-verifier", ...readerRoles(config, environment).map(({ key }) => key)].map((key) => ({ key, path: key })),
187
240
  },
188
241
  },
189
242
  { name: "log", secret: { secretName: environmentLogSecret(environment), items: [{ key: "password", path: "password" }] } },
190
243
  ...branchSecret,
191
- ...(host.enabled ? hostVolumes(config) : []),
244
+ ...machine.volumes,
192
245
  ],
193
246
  ...given("nodeSelector", { ...alasio.nodeSelector }),
194
247
  ...given("tolerations", [...alasio.tolerations]),
195
248
  ...given("affinity", alasio.affinity),
249
+ // Its replicas, where it may run more than one, on as many nodes as there are.
250
+ ...spread("alasio", alasio.scaling),
196
251
  },
197
252
  },
198
253
  },
199
254
  };
200
255
  }
201
- /** Where branch environments ask main to fork the sessions they inherited (src/branch/fork.ts). */
202
- function branchForksService() {
203
- return {
204
- apiVersion: "v1",
205
- kind: "Service",
206
- metadata: { name: componentName("branches"), namespace: NAMESPACE, labels: labels("alasio") },
207
- spec: { selector: selectorLabels("alasio"), ports: [{ name: "branch-forks", port: BRANCH_FORK_PORT, targetPort: "branch-forks" }] },
208
- };
209
- }
210
256
  /**
211
257
  * The namespaces workspaces run in, which alasio makes unless told not to. Sessions'
212
258
  * enforces Pod Security "restricted": nothing privileged, no host paths, no added
@@ -224,7 +270,7 @@ function namespaces(config, environment) {
224
270
  const branched = branch ? { [BRANCH_LABEL]: branch } : {};
225
271
  return [
226
272
  ...(branch ? [{ apiVersion: "v1", kind: "Namespace", metadata: { name: environment.namespace, labels: { ...labels("alasio"), ...branched } } }] : []),
227
- ...(sessions.enabled && (sessions.createNamespace || branch)
273
+ ...(sessions.createNamespace || branch
228
274
  ? [{
229
275
  apiVersion: "v1",
230
276
  kind: "Namespace",
@@ -234,9 +280,9 @@ function namespaces(config, environment) {
234
280
  ...labels("session"),
235
281
  ...branched,
236
282
  ...(branch ? { [BRANCH_PARENT_LABEL]: MAIN_ENVIRONMENT_NAME } : {}),
237
- ...(sandboxServiceRuns(config)
238
- ? { "pod-security.kubernetes.io/enforce": "privileged", "pod-security.kubernetes.io/audit": "restricted", "pod-security.kubernetes.io/audit-version": "latest" }
239
- : { "pod-security.kubernetes.io/enforce": "restricted", "pod-security.kubernetes.io/enforce-version": "latest" }),
283
+ "pod-security.kubernetes.io/enforce": "privileged",
284
+ "pod-security.kubernetes.io/audit": "restricted",
285
+ "pod-security.kubernetes.io/audit-version": "latest",
240
286
  "pod-security.kubernetes.io/warn": "restricted",
241
287
  "pod-security.kubernetes.io/warn-version": "latest",
242
288
  },
@@ -253,13 +299,25 @@ function namespaces(config, environment) {
253
299
  ];
254
300
  }
255
301
  /**
256
- * alasio's identity: it labels its own pod busy while turns run in it (src/kube/busy.ts), and
257
- * nothing else. Its sessions and its folder workspaces are the sandbox gateway's, which it
258
- * reaches by its key alone.
302
+ * alasio's identity: it labels its own pod busy while turns run in it (src/kube/busy.ts),
303
+ * reads it to stop as it is deleted (src/kube/own-pod.ts), and keeps the time of its last
304
+ * start in a ConfigMap of its own, made here empty, which it may read and patch alone
305
+ * (src/kube/started.ts); nothing else. Its sessions and its folder workspaces are the sandbox
306
+ * gateway's, which it reaches by its key alone.
259
307
  */
260
308
  function identity(config, environment) {
261
309
  const inOwnNamespace = { name: RELEASE, namespace: environment.namespace, labels: labels("alasio") };
262
- const own = { apiVersion: "rbac.authorization.k8s.io/v1", kind: "Role", metadata: inOwnNamespace, rules: [{ apiGroups: [""], resources: ["pods"], verbs: ["list", "patch"] }] };
310
+ const own = {
311
+ apiVersion: "rbac.authorization.k8s.io/v1",
312
+ kind: "Role",
313
+ metadata: inOwnNamespace,
314
+ rules: [
315
+ { apiGroups: [""], resources: ["pods"], verbs: ["get", "list", "patch"] },
316
+ { apiGroups: [""], resources: ["configmaps"], resourceNames: [STARTED_CONFIG_MAP], verbs: ["get", "patch"] },
317
+ ],
318
+ };
319
+ // Of no data, which alasio's starts write and `alasio up` leaves to them.
320
+ const started = { apiVersion: "v1", kind: "ConfigMap", metadata: { name: STARTED_CONFIG_MAP, namespace: environment.namespace, labels: labels("alasio") } };
263
321
  const binding = {
264
322
  apiVersion: "rbac.authorization.k8s.io/v1",
265
323
  kind: "RoleBinding",
@@ -268,7 +326,7 @@ function identity(config, environment) {
268
326
  roleRef: { apiGroup: "rbac.authorization.k8s.io", kind: "Role", name: RELEASE },
269
327
  };
270
328
  const serviceAccount = { apiVersion: "v1", kind: "ServiceAccount", metadata: { name: RELEASE, namespace: environment.namespace, labels: labels("alasio") } };
271
- return [serviceAccount, own, binding, ...(environment.branch === null && foldersRun(config) ? hostAgentIdentity(config) : [])];
329
+ return [serviceAccount, own, binding, started, ...(environment.branch === null && foldersRun(config) ? hostAgentIdentity(config) : [])];
272
330
  }
273
331
  /**
274
332
  * Folder workspaces' bayma: the operator's agents, which may restart alasio as they
@@ -301,6 +359,34 @@ function hostAgentIdentity(config) {
301
359
  };
302
360
  return [serviceAccount, role, binding];
303
361
  }
362
+ /** How many updates waiting on its environment's Telegram topic ask for one more alasio: a few chats' bursts. */
363
+ const UPDATES_PER_ALASIO = 20;
364
+ /** What a bound harness asks of alasio's scale: so much that any number of them ask for one alasio, to hear and deliver what they do, and no more. */
365
+ const BOUND_TARGET = 1_000_000;
366
+ /**
367
+ * KEDA's scaling of the environment's alasio (deployment), where its scale's min and max are
368
+ * apart: up from none at the first update, event or fork request waiting on its topics, or
369
+ * harness bound to one of its conversations, and up by one for each UPDATES_PER_ALASIO updates
370
+ * waiting; back to its min once none of that has been seen for its cooldown. Its groups' lags
371
+ * read as the log's scaler principal; a group that has read none of a topic counts its records
372
+ * as it reads them, from its first or from the next written (src/events/consume.ts).
373
+ */
374
+ export function alasioScaling(config, environment, alasio) {
375
+ const name = environmentName(environment);
376
+ const authentication = RELEASE;
377
+ const triggers = [
378
+ lagTrigger(alasioGroup(name), telegramTopic(name), UPDATES_PER_ALASIO, authentication),
379
+ lagTrigger(eventsGroup(name), eventsTopic(name), 1, authentication, environment.branch === null ? "latest" : "earliest"),
380
+ ...(environment.branch === null ? [lagTrigger(forksGroup(MAIN_ENVIRONMENT_NAME), forksTopic(MAIN_ENVIRONMENT_NAME), 1, authentication)] : []),
381
+ // Its harnesses bound, of every pool in its namespace, as the gateway counts them.
382
+ {
383
+ type: "metrics-api",
384
+ metadata: { url: `http://${GATEWAY}.${NAMESPACE}.svc.cluster.local:${GATEWAY_PORT}/counts/${environment.namespace}`, valueLocation: "bound", targetValue: String(BOUND_TARGET), activationTargetValue: "0" },
385
+ },
386
+ ];
387
+ const scaledObjects = scaledObject(alasio, config.alasio.scaling, triggers, { pollingSeconds: config.alasio.pollingSeconds, cooldownSeconds: config.alasio.cooldownSeconds });
388
+ return scaledObjects.length > 0 ? [logAuthentication(authentication, environment.namespace, "alasio"), ...scaledObjects] : [];
389
+ }
304
390
  /** The objects of the alasio of `environment`, main's unless a branch environment's, with what main's carries forward. */
305
391
  export function alasioObjects(config, environment = MAIN_ENVIRONMENT, carried = NOTHING_CARRIED) {
306
392
  const alasio = deployment(config, carried.botChecksum, environment);
@@ -308,11 +394,13 @@ export function alasioObjects(config, environment = MAIN_ENVIRONMENT, carried =
308
394
  ...namespaces(config, environment),
309
395
  ...identity(config, environment),
310
396
  alasio,
397
+ ...alasioScaling(config, environment, alasio),
311
398
  // It runs turns, in its harnesses, which a recreation would end.
312
- verticalPodAutoscaler(alasio, "Recommended"),
313
- // A drain waits for the turns running in its pod to end.
399
+ verticalPodAutoscaler(alasio, "AtStart"),
400
+ // A drain waits for the turns running in its pod to end, and evicts one of its pods not busy at a time.
314
401
  busyBudget(environment.namespace),
315
- ...(environment.branch === null && forksForBranches(config) ? [branchForksService()] : []),
402
+ ...replicaBudget("alasio", environment.namespace, config.alasio.scaling, { unlessBusy: true }),
403
+ ...codexLoginObjects(config, environment),
316
404
  // What alasio may do beyond what RBAC can say: the cluster's, made with main's.
317
405
  ...(environment.branch === null ? busyLabelPolicy() : []),
318
406
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"alasio.js","sourceRoot":"","sources":["../../../../src/manifests/alasio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alasio.js","sourceRoot":"","sources":["../../../../src/manifests/alasio.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
- import { branchNamespace } from "../../../src/branch/names.js";
1
+ import { branchNamespace, branchSessionsNamespace } from "../../../src/branch/names.js";
2
2
  import { alasioObjects } from "./alasio.js";
3
3
  import { BRANCH_LABEL } from "./common.js";
4
4
  import { lakeObjects } from "./lake.js";
5
+ import { harnessPoolObjects } from "./harness-pools.js";
5
6
  import { compute, computeScaling } from "./neon.js";
6
7
  import { networkPolicyObjects } from "./network-policies.js";
8
+ import { nodeAgentPodReaders } from "./node-agent.js";
7
9
  import { sandboxPoolObjects } from "./sandbox-gateway.js";
8
10
  /** The environment of the branch `name`. */
9
11
  export const branchEnvironment = (name) => ({ namespace: branchNamespace(name), branch: name });
@@ -25,6 +27,9 @@ export function branchObjects(config, name, cpuBaseline) {
25
27
  ...lakeObjects(config, environment),
26
28
  ...networkPolicyObjects(config, environment),
27
29
  ...sandboxPoolObjects(config, environment, cpuBaseline),
30
+ ...harnessPoolObjects(config, environment),
31
+ // That the node agents may read the pods of the branch's namespaces they attach into, its harness pools' and its sessions'.
32
+ ...[environment.namespace, branchSessionsNamespace(name)].flatMap(nodeAgentPodReaders),
28
33
  ].map((object) => branchLabelled(object, name));
29
34
  }
30
35
  //# sourceMappingURL=branch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"branch.js","sourceRoot":"","sources":["../../../../src/manifests/branch.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,4CAA4C;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAe,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAErH,iDAAiD;AACjD,SAAS,cAAc,CAAC,MAAwB,EAAE,IAAY;IAC5D,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACvH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAqB,EAAE,IAAY,EAAE,WAAwB;IACzF,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC;QACrC,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC;QAC/B,GAAG,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;QACxC,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC;QACnC,GAAG,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC;QAC5C,GAAG,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC;KACxD,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"branch.js","sourceRoot":"","sources":["../../../../src/manifests/branch.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,4CAA4C;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAe,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAErH,iDAAiD;AACjD,SAAS,cAAc,CAAC,MAAwB,EAAE,IAAY;IAC5D,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACvH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAqB,EAAE,IAAY,EAAE,WAAwB;IACzF,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC;QACrC,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC;QAC/B,GAAG,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;QACxC,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC;QACnC,GAAG,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC;QAC5C,GAAG,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC;QACvD,GAAG,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC;QAC1C,4HAA4H;QAC5H,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;KACvF,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { posix } from "node:path";
2
+ import { CODEX_LOGIN_DRAIN_SECONDS, CODEX_LOGIN_KEY_VARIABLE, CODEX_LOGIN_PORT } from "../../../src/harness/names.js";
3
+ import { imageReference } from "../images.js";
4
+ import { CODEX_LOGIN_DATABASE_SECRET, CODEX_LOGIN_KEY_SECRET, componentName, envOf, given, imagePullSecrets, labels, NAMESPACE, otelEnv, replicasOf, restrictedContainer, restrictedPod, selectorLabels, } from "./common.js";
5
+ import { foldersRun } from "./folders.js";
6
+ import { FOLDER_HARNESS_POOLS, HARNESS_POOLS } from "./harness-pools.js";
7
+ import { priority } from "./priorities.js";
8
+ import { verticalPodAutoscaler } from "./sizing.js";
9
+ import { GATEWAY, GATEWAY_PORT } from "./sandbox-gateway.js";
10
+ import { scaledObject } from "./scalers.js";
11
+ /** The relay's name, its Service's, which the pools' pods reach it by, and its pods' component. */
12
+ export const CODEX_LOGIN = componentName("codex-login");
13
+ export const CODEX_LOGIN_COMPONENT = "codex-login";
14
+ /** Where `environment`'s harness pools' pods' Codex reaches its relay of its Codex login: the Service's model API. */
15
+ export const codexLoginUrl = (environment) => `http://${CODEX_LOGIN}.${environment.namespace}.svc.cluster.local:${CODEX_LOGIN_PORT}/v1`;
16
+ /** What a bound Codex harness asks of the relay's scale: so much that any number of them ask for one relay, and no more. */
17
+ const BOUND_TARGET = 1_000_000;
18
+ /** The Codex harness pools of `environment`, its session conversations' and, main's, its folder conversations', where the host profile renders them. */
19
+ const codexPools = (config, environment) => [HARNESS_POOLS.codex, ...(environment.branch === null && foldersRun(config) ? [FOLDER_HARNESS_POOLS.codex] : [])];
20
+ /** The relay's Deployment in `environment`, as the module says. */
21
+ function deployment(config, environment) {
22
+ const { alasio, host } = config;
23
+ // The operator's home where the host profile gives it alasio, as alasio's Codex login is theirs then; else one of its own.
24
+ const operatorHome = host.enabled && host.alasioHome;
25
+ const home = operatorHome ? host.home : "/var/lib/alasio/home";
26
+ const codexHome = posix.join(home, ".codex");
27
+ const [uid, gid] = operatorHome ? [host.uid, host.gid] : [alasio.runAsUser, alasio.runAsGroup];
28
+ const homeVolume = operatorHome
29
+ ? { name: "codex-home", hostPath: { path: codexHome, type: "Directory" } }
30
+ : { name: "codex-home", emptyDir: {} };
31
+ const mounts = [
32
+ { name: "codex-home", mountPath: operatorHome ? codexHome : home },
33
+ { name: "database", mountPath: "/run/alasio/database", readOnly: true },
34
+ ];
35
+ return {
36
+ apiVersion: "apps/v1",
37
+ kind: "Deployment",
38
+ metadata: { name: CODEX_LOGIN, namespace: environment.namespace, labels: labels(CODEX_LOGIN_COMPONENT) },
39
+ spec: {
40
+ ...replicasOf(alasio.codexLogin.scaling),
41
+ selector: { matchLabels: selectorLabels(CODEX_LOGIN_COMPONENT) },
42
+ template: {
43
+ metadata: { labels: labels(CODEX_LOGIN_COMPONENT) },
44
+ spec: {
45
+ automountServiceAccountToken: false,
46
+ // Long enough for the answers streaming through it as it stops to end (CODEX_LOGIN_DRAIN_SECONDS), and its telemetry to be sent.
47
+ terminationGracePeriodSeconds: CODEX_LOGIN_DRAIN_SECONDS + 10,
48
+ // As a running turn's Codex calls the model through it.
49
+ ...priority("turn"),
50
+ securityContext: restrictedPod(uid, gid),
51
+ ...imagePullSecrets(config),
52
+ containers: [{
53
+ name: CODEX_LOGIN_COMPONENT,
54
+ image: imageReference(config.images.alasio),
55
+ imagePullPolicy: config.images.pullPolicy,
56
+ args: ["node", "/opt/alasio/src/codex/relay-main.ts"],
57
+ workingDir: home,
58
+ // alasio's variables first, as its Codex's binary among them, then its own, which win.
59
+ env: [
60
+ ...envOf(alasio.env),
61
+ { name: "HOME", value: home },
62
+ { name: "CODEX_HOME", value: codexHome },
63
+ // A home of its own does not outlast its pod: the store keeps its login.
64
+ ...(operatorHome ? [] : [{ name: "ALASIO_KEEP_CODEX_LOGIN", value: "1" }]),
65
+ { name: "ALASIO_DATABASE_URL_FILE", value: "/run/alasio/database/url" },
66
+ { name: CODEX_LOGIN_KEY_VARIABLE, valueFrom: { secretKeyRef: { name: CODEX_LOGIN_KEY_SECRET, key: "key" } } },
67
+ ...otelEnv(config, environment),
68
+ ],
69
+ ports: [{ name: "codex-login", containerPort: CODEX_LOGIN_PORT }],
70
+ readinessProbe: { tcpSocket: { port: "codex-login" }, periodSeconds: 2 },
71
+ securityContext: restrictedContainer(),
72
+ resources: alasio.codexLogin.resources,
73
+ volumeMounts: mounts,
74
+ }],
75
+ volumes: [homeVolume, { name: "database", secret: { secretName: CODEX_LOGIN_DATABASE_SECRET, items: [{ key: "url", path: "url" }] } }],
76
+ ...given("nodeSelector", { ...alasio.nodeSelector }),
77
+ ...given("tolerations", [...alasio.tolerations]),
78
+ ...given("affinity", alasio.affinity),
79
+ },
80
+ },
81
+ },
82
+ };
83
+ }
84
+ /** The objects of `environment`'s relay of its Codex login, as the module says. */
85
+ export function codexLoginObjects(config, environment) {
86
+ const relay = deployment(config, environment);
87
+ const service = {
88
+ apiVersion: "v1",
89
+ kind: "Service",
90
+ metadata: { name: CODEX_LOGIN, namespace: environment.namespace, labels: labels(CODEX_LOGIN_COMPONENT) },
91
+ spec: { selector: selectorLabels(CODEX_LOGIN_COMPONENT), ports: [{ name: "codex-login", port: CODEX_LOGIN_PORT, targetPort: "codex-login" }] },
92
+ };
93
+ // Its Codex harnesses bound, of each pool, as the gateway counts them: KEDA scales on the most of them, so on whether any is.
94
+ const triggers = codexPools(config, environment).map((pool) => ({
95
+ type: "metrics-api",
96
+ metadata: { url: `http://${GATEWAY}.${NAMESPACE}.svc.cluster.local:${GATEWAY_PORT}/counts/${environment.namespace}/${pool}`, valueLocation: "bound", targetValue: String(BOUND_TARGET), activationTargetValue: "0" },
97
+ }));
98
+ // Sized in place, of its memory alone, as what wakes from none is (./sizing.ts).
99
+ return [relay, service, verticalPodAutoscaler(relay, "InPlace", ["memory"]), ...scaledObject(relay, config.alasio.codexLogin.scaling, triggers, { pollingSeconds: config.alasio.pollingSeconds, cooldownSeconds: config.alasio.cooldownSeconds })];
100
+ }
101
+ //# sourceMappingURL=codex-login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-login.js","sourceRoot":"","sources":["../../../../src/manifests/codex-login.ts"],"names":[],"mappings":"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"}