alasio 9.0.0 → 10.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/src/bound-harnesses.js +98 -0
- package/dist/cli/src/bound-harnesses.js.map +1 -0
- package/dist/cli/src/branches.js +30 -14
- package/dist/cli/src/branches.js.map +1 -1
- package/dist/cli/src/cluster/docker.js +21 -11
- package/dist/cli/src/cluster/docker.js.map +1 -1
- package/dist/cli/src/cluster/host.js +5 -1
- package/dist/cli/src/cluster/host.js.map +1 -1
- package/dist/cli/src/cluster/k3s.js +68 -3
- package/dist/cli/src/cluster/k3s.js.map +1 -1
- package/dist/cli/src/cluster/node.js +47 -13
- package/dist/cli/src/cluster/node.js.map +1 -1
- package/dist/cli/src/cluster/stargz.js +40 -3
- package/dist/cli/src/cluster/stargz.js.map +1 -1
- package/dist/cli/src/commands/common.js +2 -2
- package/dist/cli/src/commands/common.js.map +1 -1
- package/dist/cli/src/commands/lake.js +1 -1
- package/dist/cli/src/commands/lake.js.map +1 -1
- package/dist/cli/src/commands/login-relay.js +91 -0
- package/dist/cli/src/commands/login-relay.js.map +1 -0
- package/dist/cli/src/commands/login.js +11 -10
- package/dist/cli/src/commands/login.js.map +1 -1
- package/dist/cli/src/commands/logs.js +89 -6
- package/dist/cli/src/commands/logs.js.map +1 -1
- package/dist/cli/src/commands/restart.js +10 -4
- package/dist/cli/src/commands/restart.js.map +1 -1
- package/dist/cli/src/commands/restore-filer-store.js +27 -10
- package/dist/cli/src/commands/restore-filer-store.js.map +1 -1
- package/dist/cli/src/commands/status.js +59 -12
- package/dist/cli/src/commands/status.js.map +1 -1
- package/dist/cli/src/commands/up.js +9 -6
- package/dist/cli/src/commands/up.js.map +1 -1
- package/dist/cli/src/commands/upgrade.js +14 -5
- package/dist/cli/src/commands/upgrade.js.map +1 -1
- package/dist/cli/src/folders.js +9 -13
- package/dist/cli/src/folders.js.map +1 -1
- package/dist/cli/src/gateway-calls.js +14 -8
- package/dist/cli/src/gateway-calls.js.map +1 -1
- package/dist/cli/src/install.js +7 -41
- package/dist/cli/src/install.js.map +1 -1
- package/dist/cli/src/kube/api.js +59 -12
- package/dist/cli/src/kube/api.js.map +1 -1
- package/dist/cli/src/kube/apply.js +107 -9
- package/dist/cli/src/kube/apply.js.map +1 -1
- package/dist/cli/src/kube/object-store-scale.js +10 -7
- package/dist/cli/src/kube/object-store-scale.js.map +1 -1
- package/dist/cli/src/kube/rollout.js +16 -6
- package/dist/cli/src/kube/rollout.js.map +1 -1
- package/dist/cli/src/main.js +2 -1
- package/dist/cli/src/main.js.map +1 -1
- package/dist/cli/src/manifests/admission.js +228 -11
- package/dist/cli/src/manifests/admission.js.map +1 -1
- package/dist/cli/src/manifests/alasio.js +151 -63
- package/dist/cli/src/manifests/alasio.js.map +1 -1
- package/dist/cli/src/manifests/branch.js +6 -1
- package/dist/cli/src/manifests/branch.js.map +1 -1
- package/dist/cli/src/manifests/codex-login.js +101 -0
- package/dist/cli/src/manifests/codex-login.js.map +1 -0
- package/dist/cli/src/manifests/collector.js +26 -21
- package/dist/cli/src/manifests/collector.js.map +1 -1
- package/dist/cli/src/manifests/common.js +50 -23
- package/dist/cli/src/manifests/common.js.map +1 -1
- package/dist/cli/src/manifests/config.js +79 -30
- package/dist/cli/src/manifests/config.js.map +1 -1
- package/dist/cli/src/manifests/disruption.js +8 -3
- package/dist/cli/src/manifests/disruption.js.map +1 -1
- package/dist/cli/src/manifests/folders.js +8 -5
- package/dist/cli/src/manifests/folders.js.map +1 -1
- package/dist/cli/src/manifests/harness-pools.js +236 -0
- package/dist/cli/src/manifests/harness-pools.js.map +1 -0
- package/dist/cli/src/manifests/image-holder.js +61 -0
- package/dist/cli/src/manifests/image-holder.js.map +1 -0
- package/dist/cli/src/manifests/index.js +6 -2
- package/dist/cli/src/manifests/index.js.map +1 -1
- package/dist/cli/src/manifests/keda.js +4 -2
- package/dist/cli/src/manifests/keda.js.map +1 -1
- package/dist/cli/src/manifests/lake.js +1 -17
- package/dist/cli/src/manifests/lake.js.map +1 -1
- package/dist/cli/src/manifests/log.js +63 -16
- package/dist/cli/src/manifests/log.js.map +1 -1
- package/dist/cli/src/manifests/neon.js +57 -77
- package/dist/cli/src/manifests/neon.js.map +1 -1
- package/dist/cli/src/manifests/network-policies.js +111 -39
- package/dist/cli/src/manifests/network-policies.js.map +1 -1
- package/dist/cli/src/manifests/node-agent.js +39 -19
- package/dist/cli/src/manifests/node-agent.js.map +1 -1
- package/dist/cli/src/manifests/object-store.js +98 -24
- package/dist/cli/src/manifests/object-store.js.map +1 -1
- package/dist/cli/src/manifests/sandbox-gateway.js +147 -46
- package/dist/cli/src/manifests/sandbox-gateway.js.map +1 -1
- package/dist/cli/src/manifests/scalers.js +5 -4
- package/dist/cli/src/manifests/scalers.js.map +1 -1
- package/dist/cli/src/manifests/sizing.js +1 -1
- package/dist/cli/src/manifests/sizing.js.map +1 -1
- package/dist/cli/src/manifests/valkey.js +19 -5
- package/dist/cli/src/manifests/valkey.js.map +1 -1
- package/dist/cli/src/manifests/volume-lock.js +43 -0
- package/dist/cli/src/manifests/volume-lock.js.map +1 -0
- package/dist/cli/src/manifests/vpa.js +12 -1
- package/dist/cli/src/manifests/vpa.js.map +1 -1
- package/dist/cli/src/manifests/workspace-storage.js +19 -16
- package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
- package/dist/cli/src/neon-storage.js +0 -2
- package/dist/cli/src/neon-storage.js.map +1 -1
- package/dist/cli/src/release.js +9 -9
- package/dist/cli/src/release.js.map +1 -1
- package/dist/cli/src/target.js +2 -2
- package/dist/cli/src/target.js.map +1 -1
- package/dist/cli/src/telegram.js +13 -4
- package/dist/cli/src/telegram.js.map +1 -1
- package/dist/cli/src/wakes.js +68 -0
- package/dist/cli/src/wakes.js.map +1 -0
- package/dist/cli/src/webhook.js +5 -2
- package/dist/cli/src/webhook.js.map +1 -1
- package/dist/cluster/node/pins.json +6 -5
- package/dist/neon/control/branches.js +11 -4
- package/dist/neon/control/branches.js.map +1 -1
- package/dist/neon/control/endpoints.js +81 -10
- package/dist/neon/control/endpoints.js.map +1 -1
- package/dist/neon/control/secrets.js +11 -6
- package/dist/neon/control/secrets.js.map +1 -1
- package/dist/src/binder/bindings.js +195 -0
- package/dist/src/binder/bindings.js.map +1 -0
- package/dist/src/binder/names.js +30 -0
- package/dist/src/binder/names.js.map +1 -1
- package/dist/src/binder/tokens.js +17 -4
- package/dist/src/binder/tokens.js.map +1 -1
- package/dist/src/branch/names.js +10 -6
- package/dist/src/branch/names.js.map +1 -1
- package/dist/src/events/names.js +24 -3
- package/dist/src/events/names.js.map +1 -1
- package/dist/src/gateway/names.js +44 -5
- package/dist/src/gateway/names.js.map +1 -1
- package/dist/src/harness/names.js +18 -0
- package/dist/src/harness/names.js.map +1 -1
- package/dist/src/kube/client.js +212 -0
- package/dist/src/kube/client.js.map +1 -0
- package/dist/src/kube/sandbox-shape.js +6 -0
- package/dist/src/kube/sandbox-shape.js.map +1 -1
- package/dist/src/kube/started-map.js +12 -0
- package/dist/src/kube/started-map.js.map +1 -0
- package/dist/src/node-agent/names.js +16 -8
- package/dist/src/node-agent/names.js.map +1 -1
- package/dist/src/telegram/bot-commands.js +17 -0
- package/dist/src/telegram/bot-commands.js.map +1 -0
- package/dist/src/telegram/stop.js +12 -0
- package/dist/src/telegram/stop.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
|
|
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
|
|
8
|
-
import { alasioGroup, environmentLogSecret, environmentName, lakeWakeTopic, LOG_BROKERS, telegramTopic } from "./log.js";
|
|
9
|
-
import {
|
|
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
|
|
42
|
-
*
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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
|
-
|
|
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
|
|
120
|
-
*
|
|
121
|
-
*
|
|
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
|
|
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(
|
|
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(
|
|
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:
|
|
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
|
-
...(
|
|
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
|
-
...
|
|
229
|
+
...machine.mounts,
|
|
177
230
|
],
|
|
178
231
|
}],
|
|
179
232
|
volumes: [
|
|
180
233
|
{ name: "state", emptyDir: {} },
|
|
181
|
-
...(
|
|
234
|
+
...(ownHome ? [{ name: "alasio-home", emptyDir: {} }] : []),
|
|
182
235
|
{
|
|
183
236
|
name: "database",
|
|
184
237
|
secret: {
|
|
185
|
-
secretName:
|
|
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
|
-
...
|
|
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.
|
|
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
|
-
|
|
238
|
-
|
|
239
|
-
|
|
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),
|
|
257
|
-
*
|
|
258
|
-
*
|
|
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 = {
|
|
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, "
|
|
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.
|
|
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":"
|
|
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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"}
|