alasio 5.1.0 → 6.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.
- package/dist/cli/src/branches.js +6 -14
- package/dist/cli/src/branches.js.map +1 -1
- package/dist/cli/src/capacity.js +46 -0
- package/dist/cli/src/capacity.js.map +1 -0
- package/dist/cli/src/cluster/k3s.js +12 -4
- package/dist/cli/src/cluster/k3s.js.map +1 -1
- package/dist/cli/src/commands/branch.js +2 -1
- package/dist/cli/src/commands/branch.js.map +1 -1
- package/dist/cli/src/commands/restore-filer-store.js +236 -0
- package/dist/cli/src/commands/restore-filer-store.js.map +1 -0
- package/dist/cli/src/commands/status.js +110 -9
- package/dist/cli/src/commands/status.js.map +1 -1
- package/dist/cli/src/commands/uninstall.js +1 -1
- package/dist/cli/src/commands/uninstall.js.map +1 -1
- package/dist/cli/src/commands/up.js +2 -1
- package/dist/cli/src/commands/up.js.map +1 -1
- package/dist/cli/src/commands.js +2 -1
- package/dist/cli/src/commands.js.map +1 -1
- package/dist/cli/src/config.js +13 -4
- package/dist/cli/src/config.js.map +1 -1
- package/dist/cli/src/install.js +9 -3
- package/dist/cli/src/install.js.map +1 -1
- package/dist/cli/src/kube/api.js +11 -3
- package/dist/cli/src/kube/api.js.map +1 -1
- package/dist/cli/src/kube/apply.js +116 -13
- package/dist/cli/src/kube/apply.js.map +1 -1
- package/dist/cli/src/kube/autoscalers.js +48 -0
- package/dist/cli/src/kube/autoscalers.js.map +1 -0
- package/dist/cli/src/kube/object-store-scale.js +116 -0
- package/dist/cli/src/kube/object-store-scale.js.map +1 -0
- package/dist/cli/src/kube/rollout.js +2 -0
- package/dist/cli/src/kube/rollout.js.map +1 -1
- package/dist/cli/src/manifests/admission.js +296 -0
- package/dist/cli/src/manifests/admission.js.map +1 -0
- package/dist/cli/src/manifests/agent-sandbox.js +6 -3
- package/dist/cli/src/manifests/agent-sandbox.js.map +1 -1
- package/dist/cli/src/manifests/alasio.js +34 -12
- package/dist/cli/src/manifests/alasio.js.map +1 -1
- package/dist/cli/src/manifests/cloudeventsources.eventing.keda.sh.json +219 -0
- package/dist/cli/src/manifests/clustercloudeventsources.eventing.keda.sh.json +218 -0
- package/dist/cli/src/manifests/clustertriggerauthentications.keda.sh.json +997 -0
- package/dist/cli/src/manifests/collector.js +77 -38
- package/dist/cli/src/manifests/collector.js.map +1 -1
- package/dist/cli/src/manifests/common.js +11 -0
- package/dist/cli/src/manifests/common.js.map +1 -1
- package/dist/cli/src/manifests/config.js +217 -31
- package/dist/cli/src/manifests/config.js.map +1 -1
- package/dist/cli/src/manifests/controllers.js +39 -0
- package/dist/cli/src/manifests/controllers.js.map +1 -0
- package/dist/cli/src/manifests/disruption.js +47 -0
- package/dist/cli/src/manifests/disruption.js.map +1 -0
- package/dist/cli/src/manifests/grafana.js +49 -5
- package/dist/cli/src/manifests/grafana.js.map +1 -1
- package/dist/cli/src/manifests/headroom.js +40 -0
- package/dist/cli/src/manifests/headroom.js.map +1 -0
- package/dist/cli/src/manifests/index.js +12 -3
- package/dist/cli/src/manifests/index.js.map +1 -1
- package/dist/cli/src/manifests/juicefs-csi.js +9 -6
- package/dist/cli/src/manifests/juicefs-csi.js.map +1 -1
- package/dist/cli/src/manifests/keda.js +271 -0
- package/dist/cli/src/manifests/keda.js.map +1 -0
- package/dist/cli/src/manifests/lake.js +7 -3
- package/dist/cli/src/manifests/lake.js.map +1 -1
- package/dist/cli/src/manifests/neon.js +33 -25
- package/dist/cli/src/manifests/neon.js.map +1 -1
- package/dist/cli/src/manifests/network-policies.js +90 -10
- package/dist/cli/src/manifests/network-policies.js.map +1 -1
- package/dist/cli/src/manifests/object-store.js +506 -77
- package/dist/cli/src/manifests/object-store.js.map +1 -1
- package/dist/cli/src/manifests/priorities.js +30 -0
- package/dist/cli/src/manifests/priorities.js.map +1 -0
- package/dist/cli/src/manifests/scaledjobs.keda.sh.json +7507 -0
- package/dist/cli/src/manifests/scaledobjects.keda.sh.json +564 -0
- package/dist/cli/src/manifests/scalers.js +24 -0
- package/dist/cli/src/manifests/scalers.js.map +1 -0
- package/dist/cli/src/manifests/sizing.js +40 -0
- package/dist/cli/src/manifests/sizing.js.map +1 -0
- package/dist/cli/src/manifests/triggerauthentications.keda.sh.json +992 -0
- package/dist/cli/src/manifests/valkey.js +63 -35
- package/dist/cli/src/manifests/valkey.js.map +1 -1
- package/dist/cli/src/manifests/verticalpodautoscalercheckpoints.autoscaling.k8s.io.json +250 -0
- package/dist/cli/src/manifests/verticalpodautoscalers.autoscaling.k8s.io.json +837 -0
- package/dist/cli/src/manifests/vpa.js +220 -0
- package/dist/cli/src/manifests/vpa.js.map +1 -0
- package/dist/cli/src/manifests/workspace-storage.js +12 -2
- package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
- package/dist/cli/src/object-store.js +57 -0
- package/dist/cli/src/object-store.js.map +1 -0
- package/dist/cli/src/release.js +6 -6
- package/dist/cli/src/target.js +1 -1
- package/dist/cli/src/target.js.map +1 -1
- package/dist/neon/control/secrets.js +3 -0
- package/dist/neon/control/secrets.js.map +1 -1
- package/dist/src/kube/busy-label.js +13 -0
- package/dist/src/kube/busy-label.js.map +1 -0
- package/dist/src/kube/config.js +5 -1
- package/dist/src/kube/config.js.map +1 -1
- package/dist/src/kube/sandbox-shape.js +62 -0
- package/dist/src/kube/sandbox-shape.js.map +1 -0
- package/dist/src/sandbox/names.js +44 -0
- package/dist/src/sandbox/names.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What alasio may do beyond what RBAC can say: ValidatingAdmissionPolicies of the
|
|
3
|
+
* cluster's, each matching what alasio's ServiceAccount asks (main's, or a branch
|
|
4
|
+
* environment's), and holding it to what alasio up renders:
|
|
5
|
+
*
|
|
6
|
+
* - a Job alasio makes is the clone of a session's volume, as rendered, but for the
|
|
7
|
+
* claims it is told: RBAC lets it make any Job in its namespace, as another
|
|
8
|
+
* ServiceAccount there, a controller's whose rights reach the cluster, or of another
|
|
9
|
+
* image or command, privileged as the clone is;
|
|
10
|
+
* - a Sandbox alasio makes, or moves onto another pod template, is made from the template
|
|
11
|
+
* of its namespace's workspaces, but for what alasio adds to each (src/kube/
|
|
12
|
+
* sandbox-shape.ts): RBAC lets it make Sandboxes of any pod, as any ServiceAccount, under
|
|
13
|
+
* any runtime;
|
|
14
|
+
* - a Secret alasio makes is a Sandbox's token: RBAC lets it make Secrets of any type, a
|
|
15
|
+
* ServiceAccount's token among them;
|
|
16
|
+
* - a pod alasio patches changes its busy label and annotations alone (src/kube/busy.ts),
|
|
17
|
+
* and in alasio's own namespace is alasio's own: RBAC lets it patch its namespaces'
|
|
18
|
+
* pods whole, their images among it.
|
|
19
|
+
*
|
|
20
|
+
* Where a policy holds an object to a rendered one, `pinned` makes the CEL that says so:
|
|
21
|
+
* the object's fields are the rendered ones', key for key and item for item, but for what
|
|
22
|
+
* a Check allows, and what the API server defaults where the rendered one has nothing.
|
|
23
|
+
*/
|
|
24
|
+
import { posix } from "node:path";
|
|
25
|
+
import { branchNamespace } from "../../../src/branch/names.js";
|
|
26
|
+
import { BUSY_ANNOTATIONS, BUSY_LABEL } from "../../../src/kube/busy-label.js";
|
|
27
|
+
import { CLONE_VARIABLES } from "../../../src/kube/config.js";
|
|
28
|
+
import { BAYMA_CONTAINER, DEFAULT_FULL_MODE_NAMESERVERS, EGRESS_GATE, EGRESS_GATE_SCRIPT, HARNESS_LABEL, MANAGED_BY, NET_MODE_LABEL, SANDBOX_LABEL, STATE_DIR_ARG, TOKEN_DIR, TOKEN_ENV, TOKEN_FILE_ARGS, TOKEN_KEY, TOKEN_MODE, TOKEN_VOLUME, tokenSecretName, WORKLOAD_LABEL, } from "../../../src/kube/sandbox-shape.js";
|
|
29
|
+
import { componentName, labels, NAMESPACE, RELEASE } from "./common.js";
|
|
30
|
+
/** A field's test, beyond its being a rendered value: given the field's CEL expression and how deep it is, the CEL that holds where it passes. */
|
|
31
|
+
class Check {
|
|
32
|
+
cel;
|
|
33
|
+
constructor(cel) {
|
|
34
|
+
this.cel = cel;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** Anything. */
|
|
38
|
+
const ANY = new Check(() => "true");
|
|
39
|
+
/** Any string. */
|
|
40
|
+
const ANY_STRING = new Check((expression) => `type(${expression}) == string`);
|
|
41
|
+
/** A map with nothing in it, as the API server defaults one. */
|
|
42
|
+
const EMPTY = new Check((expression) => `size(${expression}) == 0`);
|
|
43
|
+
/** A string all of which `pattern` matches. */
|
|
44
|
+
const matching = (pattern) => new Check((expression) => `type(${expression}) == string && ${expression}.matches(${JSON.stringify(`^(${pattern})$`)})`);
|
|
45
|
+
/** What the CEL `value` is, of the object asked about. */
|
|
46
|
+
const sameAs = (value) => new Check((expression) => `${expression} == ${value}`);
|
|
47
|
+
/** Any of `alternatives`. */
|
|
48
|
+
const oneOf = (...alternatives) => new Check((expression, depth) => `(${alternatives.map((each) => pinned(expression, each, depth)).join(" || ")})`);
|
|
49
|
+
/** A list of `first`, then any number of items each `rest`. */
|
|
50
|
+
const startingWith = (first, rest) => new Check((expression, depth) => {
|
|
51
|
+
const item = `item${depth}`;
|
|
52
|
+
return [
|
|
53
|
+
`size(${expression}) >= ${first.length}`,
|
|
54
|
+
...first.map((each, index) => pinned(`${expression}[${index}]`, each, depth + 1)),
|
|
55
|
+
`${expression}.all(${item}, ${[...first, rest].map((each) => pinned(item, each, depth + 1)).join(" || ")})`,
|
|
56
|
+
].join(" && ");
|
|
57
|
+
});
|
|
58
|
+
/** Of a map's key: that it may be absent; where present, `value`. */
|
|
59
|
+
class Optional extends Check {
|
|
60
|
+
value;
|
|
61
|
+
constructor(value) {
|
|
62
|
+
super((expression, depth) => pinned(expression, value, depth));
|
|
63
|
+
this.value = value;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const optional = (value) => new Optional(value);
|
|
67
|
+
/** The map `value`, but that each key `defaults` names may be there where `value` has not got it, as `defaults` says: as the API server defaults it. */
|
|
68
|
+
const defaulted = (value, defaults) => new Check((expression, depth) => pinnedMap(expression, value, defaults, depth));
|
|
69
|
+
/**
|
|
70
|
+
* A DNS label: a namespace's name, and a claim's as alasio names a session's, of a claim
|
|
71
|
+
* template's name and a volume id, each short enough for it (src/sandbox/names.ts). The
|
|
72
|
+
* API server would take a claim's of a DNS subdomain; alasio's are held to a label.
|
|
73
|
+
*/
|
|
74
|
+
const DNS_LABEL = "[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?";
|
|
75
|
+
/**
|
|
76
|
+
* A CEL expression that holds where `expression` is `expected`: of a map, no key but its,
|
|
77
|
+
* and each as it is; of a list, its items alone, in order; of a Check, what it says.
|
|
78
|
+
*/
|
|
79
|
+
export function pinned(expression, expected, depth = 0) {
|
|
80
|
+
if (expected instanceof Check)
|
|
81
|
+
return expected.cel(expression, depth);
|
|
82
|
+
if (typeof expected !== "object")
|
|
83
|
+
return `${expression} == ${JSON.stringify(expected)}`;
|
|
84
|
+
if (Array.isArray(expected)) {
|
|
85
|
+
return [`size(${expression}) == ${expected.length}`, ...expected.map((item, index) => pinned(`${expression}[${index}]`, item, depth))].join(" && ");
|
|
86
|
+
}
|
|
87
|
+
return pinnedMap(expression, expected, {}, depth);
|
|
88
|
+
}
|
|
89
|
+
/** pinned of the map `expected`, and of the keys `defaults` names that it has not got (defaulted). */
|
|
90
|
+
function pinnedMap(expression, expected, defaults, depth) {
|
|
91
|
+
const keys = Object.keys(expected).filter((key) => expected[key] !== undefined);
|
|
92
|
+
const extra = Object.keys(defaults).filter((key) => !keys.includes(key));
|
|
93
|
+
const at = (key) => `${expression}[${JSON.stringify(key)}]`;
|
|
94
|
+
return [
|
|
95
|
+
`${expression}.all(key, key in ${JSON.stringify([...keys, ...extra])})`,
|
|
96
|
+
...keys.map((key) => {
|
|
97
|
+
const value = expected[key];
|
|
98
|
+
if (value instanceof Optional)
|
|
99
|
+
return `(!(${JSON.stringify(key)} in ${expression}) || ${pinned(at(key), value.value, depth)})`;
|
|
100
|
+
return `${JSON.stringify(key)} in ${expression} && ${pinned(at(key), value, depth)}`;
|
|
101
|
+
}),
|
|
102
|
+
...extra.map((key) => `(!(${JSON.stringify(key)} in ${expression}) || ${pinned(at(key), defaults[key], depth)})`),
|
|
103
|
+
].join(" && ");
|
|
104
|
+
}
|
|
105
|
+
/** The name the ServiceAccount of the alasio of the namespace `namespace` asks as. */
|
|
106
|
+
export const alasioAccount = (namespace) => `system:serviceaccount:${namespace}:${RELEASE}`;
|
|
107
|
+
/** Whether the request is by main's alasio or a branch environment's, as CEL. */
|
|
108
|
+
const BY_ANY_ALASIO = `request.userInfo.username.matches('^system:serviceaccount:(${NAMESPACE}|${branchNamespace("")}[a-z0-9-]+):${RELEASE}$')`;
|
|
109
|
+
/** A ValidatingAdmissionPolicy `name` of alasio's, on `rules`, of what `by` asks, refusing what `validations` do not hold for, and its binding. */
|
|
110
|
+
function admissionPolicy(name, rules, by, validations, variables) {
|
|
111
|
+
const metadata = { name, labels: labels("alasio") };
|
|
112
|
+
const policy = {
|
|
113
|
+
apiVersion: "admissionregistration.k8s.io/v1",
|
|
114
|
+
kind: "ValidatingAdmissionPolicy",
|
|
115
|
+
metadata,
|
|
116
|
+
spec: {
|
|
117
|
+
failurePolicy: "Fail",
|
|
118
|
+
matchConstraints: { resourceRules: rules.map((rule) => ({ ...rule, apiVersions: ["*"] })) },
|
|
119
|
+
matchConditions: [{ name: "by-alasio", expression: by }],
|
|
120
|
+
...(variables ? { variables } : {}),
|
|
121
|
+
validations,
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
const binding = { apiVersion: "admissionregistration.k8s.io/v1", kind: "ValidatingAdmissionPolicyBinding", metadata, spec: { policyName: name, validationActions: ["Deny"] } };
|
|
125
|
+
return [policy, binding];
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* What alasio may change of a pod: its busy label and the annotations that go with it
|
|
129
|
+
* (src/kube/busy.ts), and nothing else; and in its own namespace, of its own pod alone,
|
|
130
|
+
* not the floor's beside it. Main's alasio's and each branch environment's.
|
|
131
|
+
*/
|
|
132
|
+
export function busyLabelPolicy() {
|
|
133
|
+
const unchanged = (field, keys) => `variables.new${field}.all(key, key in ${JSON.stringify(keys)} || (key in variables.old${field} && variables.old${field}[key] == variables.new${field}[key])) && ` +
|
|
134
|
+
`variables.old${field}.all(key, key in ${JSON.stringify(keys)} || key in variables.new${field})`;
|
|
135
|
+
const component = "app.kubernetes.io/component";
|
|
136
|
+
return admissionPolicy(componentName("busy-label"), [{ apiGroups: [""], resources: ["pods"], operations: ["UPDATE"] }], BY_ANY_ALASIO, [
|
|
137
|
+
{ expression: "object.spec == oldObject.spec", message: "alasio changes no pod's spec" },
|
|
138
|
+
{
|
|
139
|
+
expression: "object.metadata.?finalizers.orValue([]) == oldObject.metadata.?finalizers.orValue([]) && " +
|
|
140
|
+
"object.metadata.?ownerReferences.orValue([]) == oldObject.metadata.?ownerReferences.orValue([])",
|
|
141
|
+
message: "alasio changes no pod's finalizers or owners",
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
expression: `request.userInfo.username != "system:serviceaccount:" + request.namespace + ":${RELEASE}" || ` +
|
|
145
|
+
`("${component}" in variables.oldLabels && variables.oldLabels["${component}"] == "alasio")`,
|
|
146
|
+
message: "alasio labels no pod of its own namespace but its own",
|
|
147
|
+
},
|
|
148
|
+
{ expression: unchanged("Labels", [BUSY_LABEL]), message: `alasio changes no label of a pod's but ${BUSY_LABEL}` },
|
|
149
|
+
{ expression: unchanged("Annotations", Object.keys(BUSY_ANNOTATIONS)), message: `alasio changes no annotation of a pod's but ${Object.keys(BUSY_ANNOTATIONS).join(" and ")}` },
|
|
150
|
+
], [
|
|
151
|
+
{ name: "oldLabels", expression: "oldObject.metadata.?labels.orValue({})" },
|
|
152
|
+
{ name: "newLabels", expression: "object.metadata.?labels.orValue({})" },
|
|
153
|
+
{ name: "oldAnnotations", expression: "oldObject.metadata.?annotations.orValue({})" },
|
|
154
|
+
{ name: "newAnnotations", expression: "object.metadata.?annotations.orValue({})" },
|
|
155
|
+
]);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* What the API server gives a Job, its template, and the template's pod and containers,
|
|
159
|
+
* when its maker does not: a pinned Job may have them so. Its selector and its template's
|
|
160
|
+
* labels of its own are the Job's; a pod's scheduling and termination are no matter of
|
|
161
|
+
* its rights; and a pod's security context, defaulted, is empty.
|
|
162
|
+
*/
|
|
163
|
+
const JOB_DEFAULTS = {
|
|
164
|
+
spec: { completions: 1, parallelism: 1, completionMode: "NonIndexed", suspend: false, manualSelector: false, podReplacementPolicy: ANY_STRING, selector: ANY },
|
|
165
|
+
metadata: { creationTimestamp: ANY },
|
|
166
|
+
labels: {
|
|
167
|
+
"batch.kubernetes.io/controller-uid": ANY_STRING,
|
|
168
|
+
"controller-uid": ANY_STRING,
|
|
169
|
+
"batch.kubernetes.io/job-name": sameAs("object.metadata.name"),
|
|
170
|
+
"job-name": sameAs("object.metadata.name"),
|
|
171
|
+
},
|
|
172
|
+
pod: { dnsPolicy: ANY, schedulerName: ANY, terminationGracePeriodSeconds: ANY, securityContext: EMPTY },
|
|
173
|
+
container: { terminationMessagePath: ANY, terminationMessagePolicy: ANY },
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* What alasio may run as a Job: the clone of a session's volume (src/sandbox/index.ts),
|
|
177
|
+
* `job`, its spec and its pod's as rendered, but for the claims each of its containers is
|
|
178
|
+
* told, as alasio adds them (cloneJobManifest), each a DNS label (DNS_LABEL). Main's
|
|
179
|
+
* alasio's, the one that clones.
|
|
180
|
+
*/
|
|
181
|
+
export function cloneJobPolicy(job) {
|
|
182
|
+
const spec = job.spec ?? {};
|
|
183
|
+
const pod = spec.template?.spec;
|
|
184
|
+
const claims = CLONE_VARIABLES.map((variable) => ({ name: variable, value: matching(DNS_LABEL) }));
|
|
185
|
+
const template = spec.template;
|
|
186
|
+
const containers = (pod?.containers ?? []).map((container) => defaulted({ ...container, env: [...(container.env ?? []), ...claims] }, JOB_DEFAULTS.container));
|
|
187
|
+
const expected = defaulted({
|
|
188
|
+
...spec,
|
|
189
|
+
template: {
|
|
190
|
+
metadata: defaulted({ ...template?.metadata, labels: defaulted(template?.metadata?.labels ?? {}, JOB_DEFAULTS.labels) }, JOB_DEFAULTS.metadata),
|
|
191
|
+
spec: defaulted({ ...pod, containers }, JOB_DEFAULTS.pod),
|
|
192
|
+
},
|
|
193
|
+
}, JOB_DEFAULTS.spec);
|
|
194
|
+
return admissionPolicy(componentName("clone-job"), [{ apiGroups: ["batch"], resources: ["jobs"], operations: ["CREATE", "UPDATE"] }], `request.userInfo.username == "${alasioAccount(NAMESPACE)}"`, [{
|
|
195
|
+
expression: pinned("object.spec", expected),
|
|
196
|
+
message: "alasio runs no Job but its clone of a session's volume, as alasio up renders it",
|
|
197
|
+
}]);
|
|
198
|
+
}
|
|
199
|
+
/** A container of a Sandbox's pod template as its CRD stores it: its ports' protocol defaulted. */
|
|
200
|
+
const stored = (container) => {
|
|
201
|
+
const ports = container["ports"];
|
|
202
|
+
return Array.isArray(ports) ? { ...container, ports: ports.map((port) => defaulted(port, { protocol: "TCP" })) } : container;
|
|
203
|
+
};
|
|
204
|
+
/** The token Secret of the Sandbox asked about, as CEL. */
|
|
205
|
+
const OWN_TOKEN = sameAs(`object.metadata.name + ${JSON.stringify(tokenSecretName(""))}`);
|
|
206
|
+
/** A path segment as sanitizePathToken makes one. */
|
|
207
|
+
const PATH_TOKEN = "[A-Za-z0-9_][A-Za-z0-9_.-]*";
|
|
208
|
+
/** `text`, as a pattern that matches it alone. */
|
|
209
|
+
const literally = (text) => text.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
|
|
210
|
+
/** A variable of the environment, set to a string. */
|
|
211
|
+
const SET = { name: ANY_STRING, value: ANY_STRING };
|
|
212
|
+
/**
|
|
213
|
+
* The Sandbox of a workspace alasio makes from `template`: a session's (`session`, with
|
|
214
|
+
* the session's profile) or a folder's bayma's (`folder`, with its state root), as
|
|
215
|
+
* sandboxManifest and sessionSandboxManifest or hostBaymaManifest make it.
|
|
216
|
+
*/
|
|
217
|
+
function sandboxOf(template, workspace) {
|
|
218
|
+
const podTemplate = template.podTemplate;
|
|
219
|
+
const spec = podTemplate.spec ?? { containers: [] };
|
|
220
|
+
const session = "session" in workspace ? workspace.session : null;
|
|
221
|
+
const bayma = spec.containers.find(({ name }) => name === BAYMA_CONTAINER);
|
|
222
|
+
const tokenMount = { name: TOKEN_VOLUME, mountPath: TOKEN_DIR, readOnly: true };
|
|
223
|
+
const variables = session
|
|
224
|
+
? oneOf(SET, { name: TOKEN_ENV, valueFrom: { secretKeyRef: { name: OWN_TOKEN, key: TOKEN_KEY } } })
|
|
225
|
+
: SET;
|
|
226
|
+
// Under the state root as hostBaymaStateDir joins it: normalized, its one slash after it.
|
|
227
|
+
const stateDir = "folder" in workspace ? [STATE_DIR_ARG, matching(`${literally(posix.join(workspace.folder.stateRoot, "/"))}${PATH_TOKEN}/${PATH_TOKEN}`)] : [];
|
|
228
|
+
const container = (each) => stored((each.name !== BAYMA_CONTAINER ? each : {
|
|
229
|
+
...each,
|
|
230
|
+
args: [...(each.args ?? []), ...TOKEN_FILE_ARGS, ...stateDir],
|
|
231
|
+
volumeMounts: [...(each.volumeMounts ?? []), tokenMount],
|
|
232
|
+
env: optional(startingWith((each.env ?? []), variables)),
|
|
233
|
+
}));
|
|
234
|
+
const gate = session && session.egressGate !== false
|
|
235
|
+
? [{
|
|
236
|
+
name: EGRESS_GATE.name,
|
|
237
|
+
...(bayma?.image === undefined ? {} : { image: bayma.image }),
|
|
238
|
+
command: ["node", "-e", EGRESS_GATE_SCRIPT],
|
|
239
|
+
...(bayma?.securityContext === undefined ? {} : { securityContext: bayma.securityContext }),
|
|
240
|
+
resources: EGRESS_GATE.resources,
|
|
241
|
+
}]
|
|
242
|
+
: [];
|
|
243
|
+
const initContainers = [...gate, ...(spec.initContainers ?? [])].map(stored);
|
|
244
|
+
const volumes = [...(spec.volumes ?? []), { name: TOKEN_VOLUME, secret: { secretName: OWN_TOKEN, defaultMode: TOKEN_MODE } }];
|
|
245
|
+
const own = {
|
|
246
|
+
...MANAGED_BY,
|
|
247
|
+
[SANDBOX_LABEL]: sameAs("object.metadata.name"),
|
|
248
|
+
...(session ? { [WORKLOAD_LABEL]: "session", [NET_MODE_LABEL]: oneOf("none", "full") } : { [WORKLOAD_LABEL]: "folder", [HARNESS_LABEL]: matching(PATH_TOKEN) }),
|
|
249
|
+
};
|
|
250
|
+
const nameservers = session ? [...(session.fullModeNameservers ?? DEFAULT_FULL_MODE_NAMESERVERS)] : [];
|
|
251
|
+
const podSpec = {
|
|
252
|
+
...spec,
|
|
253
|
+
containers: spec.containers.map(container),
|
|
254
|
+
...(initContainers.length > 0 ? { initContainers } : {}),
|
|
255
|
+
volumes,
|
|
256
|
+
// A session's pod speaks to the cluster as no one, and resolves names as its internet says.
|
|
257
|
+
...(session
|
|
258
|
+
? { automountServiceAccountToken: false, enableServiceLinks: false, dnsPolicy: "None", dnsConfig: { nameservers: oneOf(nameservers, ["127.0.0.1"]) } }
|
|
259
|
+
: {}),
|
|
260
|
+
};
|
|
261
|
+
// Its CRD defaults what is done with it at its shutdown time, which alasio gives none.
|
|
262
|
+
return defaulted({
|
|
263
|
+
operatingMode: oneOf("Running", "Suspended"),
|
|
264
|
+
service: true,
|
|
265
|
+
podTemplate: { ...podTemplate, metadata: { ...podTemplate.metadata, labels: { ...podTemplate.metadata?.labels, ...own } }, spec: podSpec },
|
|
266
|
+
...(session?.volumeClaimTemplates?.length ? { volumeClaimTemplates: session.volumeClaimTemplates } : {}),
|
|
267
|
+
}, { shutdownPolicy: "Retain" });
|
|
268
|
+
}
|
|
269
|
+
/** The name of the Sandbox policy of the alasio of the namespace `namespace`. */
|
|
270
|
+
export const sandboxPolicyName = (namespace) => `${namespace}-sandboxes`;
|
|
271
|
+
/**
|
|
272
|
+
* What alasio may make as a Sandbox, by `account`, the ServiceAccount of the alasio of
|
|
273
|
+
* `name`: a session's from `sessions`, in any namespace but `host`'s, and a folder's bayma's
|
|
274
|
+
* from `host`, in its namespace. A Sandbox moved onto no other pod template, as alasio
|
|
275
|
+
* suspends and resumes it, is left as it was made.
|
|
276
|
+
*/
|
|
277
|
+
export function sandboxPolicy(name, account, templates) {
|
|
278
|
+
const { sessions, host } = templates;
|
|
279
|
+
const ofSessions = sessions ? pinned("object.spec", sandboxOf(sessions, { session: sessions })) : "false";
|
|
280
|
+
const made = host ? `(request.namespace == ${JSON.stringify(host.namespace)} ? ${pinned("object.spec", sandboxOf(host, { folder: host }))} : ${ofSessions})` : ofSessions;
|
|
281
|
+
const unmoved = "request.operation == \"UPDATE\" && object.spec.podTemplate == oldObject.spec.podTemplate && " +
|
|
282
|
+
"object.spec.?volumeClaimTemplates.orValue([]) == oldObject.spec.?volumeClaimTemplates.orValue([])";
|
|
283
|
+
return admissionPolicy(name, [{ apiGroups: ["agents.x-k8s.io"], resources: ["sandboxes"], operations: ["CREATE", "UPDATE"] }], `request.userInfo.username == "${account}"`, [{
|
|
284
|
+
expression: `${unmoved} || ${made}`,
|
|
285
|
+
message: "alasio makes no Sandbox but from its workspaces' templates, as alasio up renders them",
|
|
286
|
+
}]);
|
|
287
|
+
}
|
|
288
|
+
/** What alasio may make as a Secret: a Sandbox's token, of its one key, as tokenSecretManifest makes it. Main's alasio's and each branch environment's. */
|
|
289
|
+
export function secretPolicy() {
|
|
290
|
+
return admissionPolicy(componentName("secrets"), [{ apiGroups: [""], resources: ["secrets"], operations: ["CREATE", "UPDATE"] }], BY_ANY_ALASIO, [{
|
|
291
|
+
expression: `object.?type.orValue("Opaque") == "Opaque" && object.metadata.name.endsWith(${JSON.stringify(tokenSecretName(""))}) && ` +
|
|
292
|
+
`object.?data.orValue({}).all(key, key == ${JSON.stringify(TOKEN_KEY)})`,
|
|
293
|
+
message: "alasio makes no Secret but a Sandbox's token",
|
|
294
|
+
}]);
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=admission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admission.js","sourceRoot":"","sources":["../../../../src/manifests/admission.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { given, NAMESPACE, RELEASE } from "./common.js";
|
|
1
|
+
import { given, NAMESPACE, ONE, RELEASE, replicasOf } from "./common.js";
|
|
2
|
+
import { priority } from "./priorities.js";
|
|
3
|
+
import { verticalPodAutoscaler } from "./sizing.js";
|
|
2
4
|
import sandboxes from "./sandboxes.agents.x-k8s.io.json" with { type: "json" };
|
|
3
5
|
/**
|
|
4
6
|
* The Sandbox CRD, agents.x-k8s.io's `sandboxes`, as the API server takes it, whose
|
|
@@ -55,12 +57,13 @@ function controller(config) {
|
|
|
55
57
|
kind: "Deployment",
|
|
56
58
|
metadata: { name: NAME, namespace: NAMESPACE, labels: LABELS },
|
|
57
59
|
spec: {
|
|
58
|
-
|
|
60
|
+
...replicasOf(ONE),
|
|
59
61
|
selector: { matchLabels: { "app.kubernetes.io/name": "agent-sandbox-controller", "app.kubernetes.io/instance": RELEASE } },
|
|
60
62
|
template: {
|
|
61
63
|
metadata: { labels: LABELS },
|
|
62
64
|
spec: {
|
|
63
65
|
serviceAccountName: NAME,
|
|
66
|
+
...priority("floor"),
|
|
64
67
|
securityContext: { runAsNonRoot: true, seccompProfile: { type: "RuntimeDefault" } },
|
|
65
68
|
containers: [{
|
|
66
69
|
name: "controller",
|
|
@@ -80,7 +83,7 @@ function controller(config) {
|
|
|
80
83
|
},
|
|
81
84
|
},
|
|
82
85
|
};
|
|
83
|
-
return [serviceAccount, clusterRole, clusterRoleBinding, role, roleBinding, deployment];
|
|
86
|
+
return [serviceAccount, clusterRole, clusterRoleBinding, role, roleBinding, deployment, verticalPodAutoscaler(deployment, "InPlace")];
|
|
84
87
|
}
|
|
85
88
|
/** agent-sandbox's objects, unless the cluster already has it. */
|
|
86
89
|
export function agentSandboxObjects(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-sandbox.js","sourceRoot":"","sources":["../../../../src/manifests/agent-sandbox.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-sandbox.js","sourceRoot":"","sources":["../../../../src/manifests/agent-sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { BRANCH_FORK_PORT, branchSessionsNamespace } from "../../../src/branch/names.js";
|
|
2
2
|
import { imageReference } from "../images.js";
|
|
3
|
-
import {
|
|
3
|
+
import { alasioAccount, busyLabelPolicy, cloneJobPolicy, sandboxPolicy, sandboxPolicyName, secretPolicy } from "./admission.js";
|
|
4
|
+
import { BRANCH_FORK_SECRET, BRANCH_LABEL, componentName, databaseSecret, envOf, given, goJson, helperResources, hostVolumeMounts, hostVolumes, imagePullSecrets, labels, MAIN_ENVIRONMENT, NAMESPACE, ONE, otelEnv, RELEASE, replicasOf, restrictedContainer, restrictedPod, rolePasswords, selectorLabels, sha256, } from "./common.js";
|
|
5
|
+
import { busyBudget } from "./disruption.js";
|
|
6
|
+
import { priority } from "./priorities.js";
|
|
7
|
+
import { verticalPodAutoscaler } from "./sizing.js";
|
|
4
8
|
import { cloneJob } from "./workspace-storage.js";
|
|
5
9
|
/** The port every workspace's bayma serves MCP on. */
|
|
6
10
|
const BAYMA_PORT = 7290;
|
|
@@ -42,6 +46,7 @@ function sessionsProfile(config, environment) {
|
|
|
42
46
|
metadata: { labels: { "app.kubernetes.io/part-of": "alasio", "app.kubernetes.io/instance": RELEASE, "app.kubernetes.io/component": "session" } },
|
|
43
47
|
spec: {
|
|
44
48
|
...(sessions.runtimeClassName ? { runtimeClassName: sessions.runtimeClassName } : {}),
|
|
49
|
+
...priority("turn"),
|
|
45
50
|
securityContext: { ...restrictedPod(1000, 1000), ...ownership },
|
|
46
51
|
...imagePullSecrets(config),
|
|
47
52
|
...given("nodeSelector", { ...sessions.nodeSelector }),
|
|
@@ -114,6 +119,7 @@ function hostProfile(config) {
|
|
|
114
119
|
spec: {
|
|
115
120
|
// May restart alasio, by rolling out its Deployment, as an agent restarts it.
|
|
116
121
|
serviceAccountName: componentName("host-agent"),
|
|
122
|
+
...priority("turn"),
|
|
117
123
|
securityContext: {
|
|
118
124
|
runAsUser: host.uid,
|
|
119
125
|
runAsGroup: host.gid,
|
|
@@ -202,6 +208,7 @@ function alasioEnv(config, home, operatorHome, environment) {
|
|
|
202
208
|
...(operatorHome ? [] : [{ name: "ALASIO_KEEP_CODEX_LOGIN", value: "1" }]),
|
|
203
209
|
{ name: "ALASIO_DEPLOYMENT", value: RELEASE },
|
|
204
210
|
{ name: "ALASIO_NAMESPACE", valueFrom: { fieldRef: { fieldPath: "metadata.namespace" } } },
|
|
211
|
+
{ name: "ALASIO_POD", valueFrom: { fieldRef: { fieldPath: "metadata.name" } } },
|
|
205
212
|
{ name: "TELEGRAM_BOT_TOKEN", valueFrom: { secretKeyRef: { name: alasio.telegram.existingSecret, key: "token" } } },
|
|
206
213
|
{ name: "TELEGRAM_ALLOWED_USER_IDS", valueFrom: { secretKeyRef: { name: alasio.telegram.existingSecret, key: "allowedUserIds" } } },
|
|
207
214
|
{ name: "ALASIO_DATABASE_URL_FILE", value: "/run/alasio/database/url" },
|
|
@@ -244,13 +251,14 @@ function deployment(config, templatesChecksum, environment) {
|
|
|
244
251
|
kind: "Deployment",
|
|
245
252
|
metadata: { name: RELEASE, namespace: environment.namespace, labels: labels("alasio") },
|
|
246
253
|
spec: {
|
|
247
|
-
|
|
254
|
+
...replicasOf(ONE),
|
|
248
255
|
strategy: { type: "Recreate" },
|
|
249
256
|
selector: { matchLabels: selectorLabels("alasio") },
|
|
250
257
|
template: {
|
|
251
258
|
metadata: { labels: labels("alasio"), annotations: { "checksum/sandbox-templates": templatesChecksum } },
|
|
252
259
|
spec: {
|
|
253
260
|
serviceAccountName: RELEASE,
|
|
261
|
+
...priority("turn"),
|
|
254
262
|
// alasio finishes its turns' bookkeeping and records what it interrupts as it stops.
|
|
255
263
|
terminationGracePeriodSeconds: 60,
|
|
256
264
|
securityContext: { ...restrictedPod(uid, gid), ...given("supplementalGroups", groups) },
|
|
@@ -364,10 +372,11 @@ function mountPodsRemoved({ workspaceStorage }) {
|
|
|
364
372
|
}
|
|
365
373
|
/**
|
|
366
374
|
* alasio's identity: it drives its workspaces' Sandboxes, their token Secrets, and reads
|
|
367
|
-
* files from sessions through exec, in the namespaces it owns
|
|
368
|
-
*
|
|
369
|
-
* it
|
|
370
|
-
*
|
|
375
|
+
* files from sessions through exec, in the namespaces it owns, labelling their pods busy
|
|
376
|
+
* while turns run in them, as it does its own in its namespace (src/kube/busy.ts); where
|
|
377
|
+
* it forks sessions, reads sessions' volume claims and runs the Jobs that clone them in its
|
|
378
|
+
* own; and, where it installs JuiceFS's driver, lists and deletes pods in the driver's
|
|
379
|
+
* namespace, its mount pods; and nothing else.
|
|
371
380
|
*/
|
|
372
381
|
function identity(config, environment) {
|
|
373
382
|
const main = environment.branch === null;
|
|
@@ -385,12 +394,15 @@ function identity(config, environment) {
|
|
|
385
394
|
metadata: inDriverNamespace,
|
|
386
395
|
rules: [{ apiGroups: [""], resources: ["pods"], verbs: ["list", "delete"] }],
|
|
387
396
|
};
|
|
388
|
-
const inOwnNamespace = { name: RELEASE, namespace:
|
|
389
|
-
const
|
|
397
|
+
const inOwnNamespace = { name: RELEASE, namespace: environment.namespace, labels: labels("alasio") };
|
|
398
|
+
const own = {
|
|
390
399
|
apiVersion: "rbac.authorization.k8s.io/v1",
|
|
391
400
|
kind: "Role",
|
|
392
401
|
metadata: inOwnNamespace,
|
|
393
|
-
rules: [
|
|
402
|
+
rules: [
|
|
403
|
+
{ apiGroups: [""], resources: ["pods"], verbs: ["list", "patch"] },
|
|
404
|
+
...(main && sessionsForked(config) ? [{ apiGroups: ["batch"], resources: ["jobs"], verbs: ["create", "get", "delete"] }] : []),
|
|
405
|
+
],
|
|
394
406
|
};
|
|
395
407
|
const serviceAccount = { apiVersion: "v1", kind: "ServiceAccount", metadata: { name: RELEASE, namespace: environment.namespace, labels: labels("alasio") } };
|
|
396
408
|
return [
|
|
@@ -405,14 +417,15 @@ function identity(config, environment) {
|
|
|
405
417
|
rules: [
|
|
406
418
|
{ apiGroups: ["agents.x-k8s.io"], resources: ["sandboxes"], verbs: ["get", "list", "watch", "create", "patch", "delete"] },
|
|
407
419
|
{ apiGroups: [""], resources: ["secrets"], verbs: ["get", "create"] },
|
|
408
|
-
{ apiGroups: [""], resources: ["pods"], verbs: ["get"] },
|
|
420
|
+
{ apiGroups: [""], resources: ["pods"], verbs: ["get", "list", "patch"] },
|
|
409
421
|
{ apiGroups: [""], resources: ["pods/exec"], verbs: ["create", "get"] },
|
|
410
422
|
...(forked ? [{ apiGroups: [""], resources: ["persistentvolumeclaims"], verbs: ["get"] }] : []),
|
|
411
423
|
],
|
|
412
424
|
};
|
|
413
425
|
return [role, binding(metadata)];
|
|
414
426
|
}),
|
|
415
|
-
|
|
427
|
+
own,
|
|
428
|
+
binding(inOwnNamespace),
|
|
416
429
|
...(main && mountPodsRemoved(config) ? [mountPods, binding(inDriverNamespace)] : []),
|
|
417
430
|
...(config.host.enabled ? hostAgentIdentity(config) : []),
|
|
418
431
|
];
|
|
@@ -451,13 +464,22 @@ function hostAgentIdentity(config) {
|
|
|
451
464
|
/** The objects of the alasio of `environment`, main's unless a branch environment's. */
|
|
452
465
|
export function alasioObjects(config, environment = MAIN_ENVIRONMENT) {
|
|
453
466
|
const templates = sandboxTemplates(config, environment);
|
|
467
|
+
const alasio = deployment(config, templates.checksum, environment);
|
|
454
468
|
return [
|
|
455
469
|
...namespaces(config, environment),
|
|
456
470
|
...identity(config, environment),
|
|
457
471
|
templates.configMap,
|
|
458
|
-
|
|
472
|
+
alasio,
|
|
473
|
+
// It runs turns, in its harnesses, which a recreation would end.
|
|
474
|
+
verticalPodAutoscaler(alasio, "Recommended"),
|
|
475
|
+
// A drain waits for the turns running in its pod and its workspaces' to end.
|
|
476
|
+
...[environment.namespace, ...workspaceNamespaces(config, environment)].map(busyBudget),
|
|
459
477
|
telemetryService(config, environment),
|
|
460
478
|
...(environment.branch === null && forksForBranches(config) ? [branchForksService()] : []),
|
|
479
|
+
// What alasio may do beyond what RBAC can say; the cluster's, but for its Sandboxes', made with main's.
|
|
480
|
+
...(environment.branch === null ? [...busyLabelPolicy(), ...secretPolicy()] : []),
|
|
481
|
+
...(environment.branch === null && sessionsForked(config) ? cloneJobPolicy(cloneJob(config)) : []),
|
|
482
|
+
...sandboxPolicy(sandboxPolicyName(environment.namespace), alasioAccount(environment.namespace), { sessions: config.sessions.enabled ? sessionsProfile(config, environment) : null, host: config.host.enabled ? hostProfile(config) : null }),
|
|
461
483
|
];
|
|
462
484
|
}
|
|
463
485
|
//# sourceMappingURL=alasio.js.map
|
|
@@ -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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"}
|