alasio 8.0.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/dist/cli/src/api-server.js +18 -0
  2. package/dist/cli/src/api-server.js.map +1 -0
  3. package/dist/cli/src/bound-harnesses.js +98 -0
  4. package/dist/cli/src/bound-harnesses.js.map +1 -0
  5. package/dist/cli/src/branches.js +79 -22
  6. package/dist/cli/src/branches.js.map +1 -1
  7. package/dist/cli/src/cluster/docker.js +40 -15
  8. package/dist/cli/src/cluster/docker.js.map +1 -1
  9. package/dist/cli/src/cluster/host.js +38 -8
  10. package/dist/cli/src/cluster/host.js.map +1 -1
  11. package/dist/cli/src/cluster/k3s.js +105 -14
  12. package/dist/cli/src/cluster/k3s.js.map +1 -1
  13. package/dist/cli/src/cluster/node.js +142 -33
  14. package/dist/cli/src/cluster/node.js.map +1 -1
  15. package/dist/cli/src/cluster/stargz.js +92 -0
  16. package/dist/cli/src/cluster/stargz.js.map +1 -0
  17. package/dist/cli/src/commands/branch.js +5 -4
  18. package/dist/cli/src/commands/branch.js.map +1 -1
  19. package/dist/cli/src/commands/common.js +11 -5
  20. package/dist/cli/src/commands/common.js.map +1 -1
  21. package/dist/cli/src/commands/folder.js +14 -0
  22. package/dist/cli/src/commands/folder.js.map +1 -0
  23. package/dist/cli/src/commands/lake.js +1 -1
  24. package/dist/cli/src/commands/lake.js.map +1 -1
  25. package/dist/cli/src/commands/login-relay.js +91 -0
  26. package/dist/cli/src/commands/login-relay.js.map +1 -0
  27. package/dist/cli/src/commands/login.js +11 -10
  28. package/dist/cli/src/commands/login.js.map +1 -1
  29. package/dist/cli/src/commands/logs.js +89 -6
  30. package/dist/cli/src/commands/logs.js.map +1 -1
  31. package/dist/cli/src/commands/restart.js +10 -4
  32. package/dist/cli/src/commands/restart.js.map +1 -1
  33. package/dist/cli/src/commands/restore-filer-store.js +27 -10
  34. package/dist/cli/src/commands/restore-filer-store.js.map +1 -1
  35. package/dist/cli/src/commands/status.js +119 -20
  36. package/dist/cli/src/commands/status.js.map +1 -1
  37. package/dist/cli/src/commands/uninstall.js +8 -9
  38. package/dist/cli/src/commands/uninstall.js.map +1 -1
  39. package/dist/cli/src/commands/up.js +20 -9
  40. package/dist/cli/src/commands/up.js.map +1 -1
  41. package/dist/cli/src/commands/upgrade.js +22 -6
  42. package/dist/cli/src/commands/upgrade.js.map +1 -1
  43. package/dist/cli/src/commands.js +2 -1
  44. package/dist/cli/src/commands.js.map +1 -1
  45. package/dist/cli/src/config.js +4 -1
  46. package/dist/cli/src/config.js.map +1 -1
  47. package/dist/cli/src/cpu-baseline.js +8 -4
  48. package/dist/cli/src/cpu-baseline.js.map +1 -1
  49. package/dist/cli/src/folders.js +63 -0
  50. package/dist/cli/src/folders.js.map +1 -0
  51. package/dist/cli/src/gateway-calls.js +64 -0
  52. package/dist/cli/src/gateway-calls.js.map +1 -0
  53. package/dist/cli/src/install.js +45 -31
  54. package/dist/cli/src/install.js.map +1 -1
  55. package/dist/cli/src/kept-releases.js +27 -20
  56. package/dist/cli/src/kept-releases.js.map +1 -1
  57. package/dist/cli/src/kube/api.js +61 -15
  58. package/dist/cli/src/kube/api.js.map +1 -1
  59. package/dist/cli/src/kube/apply.js +122 -81
  60. package/dist/cli/src/kube/apply.js.map +1 -1
  61. package/dist/cli/src/kube/rollout.js +43 -21
  62. package/dist/cli/src/kube/rollout.js.map +1 -1
  63. package/dist/cli/src/main.js +2 -1
  64. package/dist/cli/src/main.js.map +1 -1
  65. package/dist/cli/src/manifests/admission.js +558 -222
  66. package/dist/cli/src/manifests/admission.js.map +1 -1
  67. package/dist/cli/src/manifests/alasio.js +180 -428
  68. package/dist/cli/src/manifests/alasio.js.map +1 -1
  69. package/dist/cli/src/manifests/branch.js +16 -27
  70. package/dist/cli/src/manifests/branch.js.map +1 -1
  71. package/dist/cli/src/manifests/codex-login.js +101 -0
  72. package/dist/cli/src/manifests/codex-login.js.map +1 -0
  73. package/dist/cli/src/manifests/collector.js +83 -62
  74. package/dist/cli/src/manifests/collector.js.map +1 -1
  75. package/dist/cli/src/manifests/common.js +82 -25
  76. package/dist/cli/src/manifests/common.js.map +1 -1
  77. package/dist/cli/src/manifests/config.js +137 -105
  78. package/dist/cli/src/manifests/config.js.map +1 -1
  79. package/dist/cli/src/manifests/disruption.js +18 -3
  80. package/dist/cli/src/manifests/disruption.js.map +1 -1
  81. package/dist/cli/src/manifests/folders.js +131 -0
  82. package/dist/cli/src/manifests/folders.js.map +1 -0
  83. package/dist/cli/src/manifests/grafana.js +4 -2
  84. package/dist/cli/src/manifests/grafana.js.map +1 -1
  85. package/dist/cli/src/manifests/harness-pools.js +236 -0
  86. package/dist/cli/src/manifests/harness-pools.js.map +1 -0
  87. package/dist/cli/src/manifests/image-holder.js +61 -0
  88. package/dist/cli/src/manifests/image-holder.js.map +1 -0
  89. package/dist/cli/src/manifests/index.js +14 -7
  90. package/dist/cli/src/manifests/index.js.map +1 -1
  91. package/dist/cli/src/manifests/keda.js +4 -2
  92. package/dist/cli/src/manifests/keda.js.map +1 -1
  93. package/dist/cli/src/manifests/lake.js +18 -20
  94. package/dist/cli/src/manifests/lake.js.map +1 -1
  95. package/dist/cli/src/manifests/log.js +84 -19
  96. package/dist/cli/src/manifests/log.js.map +1 -1
  97. package/dist/cli/src/manifests/neon.js +60 -80
  98. package/dist/cli/src/manifests/neon.js.map +1 -1
  99. package/dist/cli/src/manifests/network-policies.js +232 -94
  100. package/dist/cli/src/manifests/network-policies.js.map +1 -1
  101. package/dist/cli/src/manifests/node-agent.js +42 -15
  102. package/dist/cli/src/manifests/node-agent.js.map +1 -1
  103. package/dist/cli/src/manifests/object-store.js +99 -25
  104. package/dist/cli/src/manifests/object-store.js.map +1 -1
  105. package/dist/cli/src/manifests/sandbox-gateway.js +761 -0
  106. package/dist/cli/src/manifests/sandbox-gateway.js.map +1 -0
  107. package/dist/cli/src/manifests/scalers.js +17 -5
  108. package/dist/cli/src/manifests/scalers.js.map +1 -1
  109. package/dist/cli/src/manifests/sizing.js +17 -9
  110. package/dist/cli/src/manifests/sizing.js.map +1 -1
  111. package/dist/cli/src/manifests/valkey.js +30 -10
  112. package/dist/cli/src/manifests/valkey.js.map +1 -1
  113. package/dist/cli/src/manifests/volume-lock.js +43 -0
  114. package/dist/cli/src/manifests/volume-lock.js.map +1 -0
  115. package/dist/cli/src/manifests/vpa.js +15 -2
  116. package/dist/cli/src/manifests/vpa.js.map +1 -1
  117. package/dist/cli/src/manifests/workspace-storage.js +182 -94
  118. package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
  119. package/dist/cli/src/neon-storage.js +54 -16
  120. package/dist/cli/src/neon-storage.js.map +1 -1
  121. package/dist/cli/src/release.js +9 -9
  122. package/dist/cli/src/release.js.map +1 -1
  123. package/dist/cli/src/setup-pod.js +44 -0
  124. package/dist/cli/src/setup-pod.js.map +1 -0
  125. package/dist/cli/src/target.js +2 -2
  126. package/dist/cli/src/target.js.map +1 -1
  127. package/dist/cli/src/telegram.js +13 -4
  128. package/dist/cli/src/telegram.js.map +1 -1
  129. package/dist/cli/src/wakes.js +68 -0
  130. package/dist/cli/src/wakes.js.map +1 -0
  131. package/dist/cli/src/webhook.js +5 -2
  132. package/dist/cli/src/webhook.js.map +1 -1
  133. package/dist/cluster/node/pins.json +11 -5
  134. package/dist/neon/control/branches.js +13 -6
  135. package/dist/neon/control/branches.js.map +1 -1
  136. package/dist/neon/control/endpoints.js +81 -10
  137. package/dist/neon/control/endpoints.js.map +1 -1
  138. package/dist/neon/control/secrets.js +24 -8
  139. package/dist/neon/control/secrets.js.map +1 -1
  140. package/dist/src/binder/bindings.js +195 -0
  141. package/dist/src/binder/bindings.js.map +1 -0
  142. package/dist/src/binder/names.js +63 -0
  143. package/dist/src/binder/names.js.map +1 -0
  144. package/dist/src/binder/tokens.js +71 -0
  145. package/dist/src/binder/tokens.js.map +1 -0
  146. package/dist/src/branch/names.js +20 -6
  147. package/dist/src/branch/names.js.map +1 -1
  148. package/dist/src/events/names.js +28 -0
  149. package/dist/src/events/names.js.map +1 -0
  150. package/dist/src/gateway/names.js +240 -0
  151. package/dist/src/gateway/names.js.map +1 -0
  152. package/dist/src/harness/names.js +67 -0
  153. package/dist/src/harness/names.js.map +1 -0
  154. package/dist/src/kube/client.js +212 -0
  155. package/dist/src/kube/client.js.map +1 -0
  156. package/dist/src/kube/sandbox-shape.js +14 -68
  157. package/dist/src/kube/sandbox-shape.js.map +1 -1
  158. package/dist/src/kube/started-map.js +12 -0
  159. package/dist/src/kube/started-map.js.map +1 -0
  160. package/dist/src/node-agent/names.js +62 -5
  161. package/dist/src/node-agent/names.js.map +1 -1
  162. package/dist/src/sandbox/names.js +12 -20
  163. package/dist/src/sandbox/names.js.map +1 -1
  164. package/dist/src/sandbox/otlp-resource.js +173 -0
  165. package/dist/src/sandbox/otlp-resource.js.map +1 -0
  166. package/dist/src/sandbox/telemetry.js +43 -0
  167. package/dist/src/sandbox/telemetry.js.map +1 -0
  168. package/dist/src/telegram/bot-commands.js +17 -0
  169. package/dist/src/telegram/bot-commands.js.map +1 -0
  170. package/dist/src/telegram/stop.js +12 -0
  171. package/dist/src/telegram/stop.js.map +1 -0
  172. package/dist/src/telemetry/config.js +131 -0
  173. package/dist/src/telemetry/config.js.map +1 -0
  174. package/dist/src/telemetry/forward.js +154 -0
  175. package/dist/src/telemetry/forward.js.map +1 -0
  176. package/package.json +1 -1
  177. package/dist/cli/src/manifests/agent-sandbox.js +0 -92
  178. package/dist/cli/src/manifests/agent-sandbox.js.map +0 -1
  179. package/dist/cli/src/manifests/juicefs-csi.js +0 -320
  180. package/dist/cli/src/manifests/juicefs-csi.js.map +0 -1
  181. package/dist/cli/src/manifests/sandboxes.agents.x-k8s.io.json +0 -6295
  182. package/dist/src/kube/config.js +0 -145
  183. package/dist/src/kube/config.js.map +0 -1
@@ -1,9 +1,12 @@
1
1
  import { COMPUTE_CTL_PORT, COMPUTE_PORT } from "../../../neon/control/branches.js";
2
- import { BRANCH_FORK_PORT } from "../../../src/branch/names.js";
2
+ import { POOL_LABEL } from "../../../src/binder/names.js";
3
+ import { NET_MODE_LABEL } from "../../../src/kube/sandbox-shape.js";
3
4
  import { NODE_AGENT_PORT } from "../../../src/node-agent/names.js";
4
- import { forksForBranches, sessionsNamespace } from "./alasio.js";
5
+ import { CODEX_LOGIN_PORT } from "../../../src/harness/names.js";
6
+ import { CODEX_LOGIN, CODEX_LOGIN_COMPONENT } from "./codex-login.js";
7
+ import { sessionsNamespace } from "./alasio.js";
5
8
  import { GATEWAY_COMPONENT, SCRAPER_COMPONENT } from "./collector.js";
6
- import { BRANCH_LABEL, COLLECTOR_PORT, collectorRuns, componentName, given, grafanaRuns, labels, lakeRuns, MAIN_ENVIRONMENT, NAMESPACE, nodeAgentRuns, RELEASE, selectorLabels, } from "./common.js";
9
+ import { BRANCH_LABEL, COLLECTOR_PORT, collectorRuns, componentName, grafanaRuns, labels, lakeRuns, MAIN_ENVIRONMENT, NAMESPACE, RELEASE, selectorLabels, } from "./common.js";
7
10
  import { replicated } from "./disruption.js";
8
11
  import { GOSSIP_PORT } from "./grafana.js";
9
12
  import { INTAKE_COMPONENT, LAKE_QUERY_PORT, LOADER_COMPONENT, QUERY_COMPONENT, RECONCILE_COMPONENT } from "./lake.js";
@@ -11,15 +14,13 @@ import { LOG, LOG_COMPONENT, LOG_CONTROLLER_PORT, LOG_METRICS_PORT, LOG_PORT } f
11
14
  import { WEBHOOK, WEBHOOK_COMPONENT, WEBHOOK_HEALTH_PORT } from "./webhook.js";
12
15
  import { BACKUP_COMPONENT, COMPONENTS, FILER, FILER_STORE, GATEWAY, LIFECYCLE_COMPONENT, MASTER, METRICS_PORT, RESTORE_COMPONENTS, RESTORE_SOURCE, VOLUME_SERVER, } from "./object-store.js";
13
16
  import { PROXY_PORT } from "./neon.js";
14
- import { CONTROLLER_POD_LABELS, JOB_POD_SELECTOR, MOUNT_POD_LABELS, NODE_POD_LABELS } from "./juicefs-csi.js";
15
17
  import { VALKEY_PORT } from "./valkey.js";
18
+ import { FOLDER_PORT, foldersRun } from "./folders.js";
19
+ import { HARNESS_COMPONENT, HARNESS_POD_PORT, HARNESS_POOLS } from "./harness-pools.js";
16
20
  import { JUICEFS_ADMIN } from "./workspace-storage.js";
17
- /** The label of every session's pod, which alasio gives it. */
18
- const SESSION = { "alasio.dev/workload": "session" };
21
+ import { GATEWAY as SANDBOX_GATEWAY_NAME, GATEWAY_COMPONENT as SANDBOX_GATEWAY_COMPONENT, GATEWAY_PORT as SANDBOX_GATEWAY_PORT, POOL_POD_PORT, RECEIVER, RECEIVER_COMPONENT, } from "./sandbox-gateway.js";
19
22
  /** The namespace `name`, as a peer's selector. */
20
23
  const namespaceNamed = (name) => ({ matchLabels: { "kubernetes.io/metadata.name": name } });
21
- /** The alasio pod of `environment`, as a peer. */
22
- const alasioOf = ({ namespace }) => ({ namespaceSelector: namespaceNamed(namespace), podSelector: { matchLabels: selectorLabels("alasio") } });
23
24
  /** Every branch environment's namespace, as a peer's selector, by the label each has. */
24
25
  const BRANCH_NAMESPACES = { matchExpressions: [{ key: BRANCH_LABEL, operator: "Exists" }] };
25
26
  /** The labels of the data stack's pods, which its policy admits each other by. */
@@ -36,33 +37,11 @@ function policy(name, namespace, component, spec) {
36
37
  return { apiVersion: "networking.k8s.io/v1", kind: "NetworkPolicy", metadata: { name, namespace, labels: labels(component) }, spec };
37
38
  }
38
39
  /**
39
- * Sessions: nothing in or out but bayma from their alasio, its telemetry receiver (the
40
- * one egress of a session without internet), and, for a session with internet, the
41
- * public internet, none of the cluster's or its network's private addresses. A branch
42
- * environment's sessions are its alasio's alone, as main's are main's.
40
+ * Sessions: nothing in or out of their namespace's pods but what the sandbox service's
41
+ * pools' policies admit (poolPolicies): a pod of no pool reaches nothing, and nothing it.
43
42
  */
44
43
  function sessionPolicies(config, environment) {
45
- const { blockedCidrs } = config.sessions;
46
- const namespace = sessionsNamespace(config, environment);
47
- const alasio = alasioOf(environment);
48
- return [
49
- policy("default-deny", namespace, "session", { podSelector: {}, policyTypes: ["Ingress", "Egress"] }),
50
- policy("bayma-from-alasio", namespace, "session", {
51
- podSelector: { matchLabels: SESSION },
52
- policyTypes: ["Ingress"],
53
- ingress: [{ from: [alasio], ports: [{ protocol: "TCP", port: 7290 }] }],
54
- }),
55
- policy("telemetry-to-alasio", namespace, "session", {
56
- podSelector: { matchLabels: SESSION },
57
- policyTypes: ["Egress"],
58
- egress: [{ to: [alasio], ports: [{ protocol: "TCP", port: config.telemetry.receiverPort }] }],
59
- }),
60
- policy("full-internet", namespace, "session", {
61
- podSelector: { matchLabels: { ...SESSION, "alasio.dev/net-mode": "full" } },
62
- policyTypes: ["Egress"],
63
- egress: [{ to: [{ ipBlock: { cidr: "0.0.0.0/0", except: [...blockedCidrs] } }] }],
64
- }),
65
- ];
44
+ return [policy("default-deny", sessionsNamespace(config, environment), "session", { podSelector: {}, policyTypes: ["Ingress", "Egress"] })];
66
45
  }
67
46
  /** The object store's parts, of the stack, to each of which partPolicies and gatewayPolicy admit what talks to it alone. */
68
47
  const PARTS = [COMPONENTS.gateway, COMPONENTS.master, COMPONENTS.volumeServer, COMPONENTS.filer];
@@ -114,6 +93,11 @@ function proxyPolicy() {
114
93
  from: [
115
94
  { podSelector: { matchLabels: selectorLabels("alasio") } },
116
95
  { namespaceSelector: BRANCH_NAMESPACES, podSelector: { matchLabels: selectorLabels("alasio") } },
96
+ // Each environment's relay of its Codex login, as alasio's role, whose state keeps the login.
97
+ { podSelector: { matchLabels: selectorLabels(CODEX_LOGIN_COMPONENT) } },
98
+ { namespaceSelector: BRANCH_NAMESPACES, podSelector: { matchLabels: selectorLabels(CODEX_LOGIN_COMPONENT) } },
99
+ // Its harness pools' hosts, as the harness host's role, main's and branch environments'.
100
+ ...HARNESS_PEERS,
117
101
  ],
118
102
  ports: [{ protocol: "TCP", port: PROXY_PORT }],
119
103
  }],
@@ -137,29 +121,22 @@ function branchStoragePolicy(config) {
137
121
  });
138
122
  }
139
123
  /**
140
- * Workspace storage's metadata and data are reached by JuiceFS's own pods alone (its
141
- * controller, its node service, the mount pods it runs and the Jobs that delete volumes'
142
- * directories, in the driver's namespace) and alasio's JuiceFS admin pods: Valkey takes no
143
- * other connection but the collector's scraper's, which reads its metrics, and the bundled
144
- * object store takes theirs on its S3 port beside the stack's own, and Valkey's, whose pod
145
- * formats the file system. The driver's Jobs are told by no label of their own, so any
146
- * Job's pod in its namespace is admitted, which the credentials of each still guard.
124
+ * Workspace storage's metadata and data are reached by JuiceFS's clients alone, alasio's
125
+ * JuiceFS admin pods, the nodes' mount among them: Valkey takes, beside theirs, the node
126
+ * agents', which set workspaces' quotas on it, and no other connection but the collector's
127
+ * scraper's, which reads its metrics; and the bundled object store takes theirs on its S3
128
+ * port beside the stack's own, and Valkey's, whose pod formats the file system.
147
129
  */
148
130
  function workspaceStoragePolicies(config) {
149
- const driverNamespace = { matchLabels: { "kubernetes.io/metadata.name": config.workspaceStorage.csi.namespace } };
150
- const juicefs = [
151
- { namespaceSelector: driverNamespace, podSelector: { matchLabels: MOUNT_POD_LABELS } },
152
- { namespaceSelector: driverNamespace, podSelector: { matchLabels: CONTROLLER_POD_LABELS } },
153
- { namespaceSelector: driverNamespace, podSelector: { matchLabels: NODE_POD_LABELS } },
154
- { namespaceSelector: driverNamespace, podSelector: JOB_POD_SELECTOR },
155
- { namespaceSelector: { matchLabels: { "kubernetes.io/metadata.name": NAMESPACE } }, podSelector: { matchLabels: JUICEFS_ADMIN } },
156
- ];
131
+ const juicefs = [{ podSelector: { matchLabels: JUICEFS_ADMIN } }];
132
+ // The node agents, which set workspaces' quotas on the metadata engine, and reach no object store of it.
133
+ const quotas = [NODE_AGENT];
157
134
  return [
158
135
  policy(componentName("valkey"), NAMESPACE, "valkey", {
159
136
  podSelector: { matchLabels: selectorLabels("valkey") },
160
137
  policyTypes: ["Ingress"],
161
138
  ingress: [
162
- { from: juicefs, ports: [{ protocol: "TCP", port: VALKEY_PORT }] },
139
+ { from: [...juicefs, ...quotas], ports: [{ protocol: "TCP", port: VALKEY_PORT }] },
163
140
  { from: [{ podSelector: { matchLabels: selectorLabels(SCRAPER_COMPONENT) } }], ports: [{ protocol: "TCP", port: VALKEY_PORT }] },
164
141
  ],
165
142
  }),
@@ -258,8 +235,8 @@ const kedaOperator = (config) => config.autoscaling.keda.enabled
258
235
  ? { podSelector: { matchLabels: selectorLabels("keda-operator") } }
259
236
  : { namespaceSelector: {}, podSelector: { matchLabels: { "app.kubernetes.io/name": "keda-operator" } } };
260
237
  /**
261
- * The log takes its clients on their port from the collector's gateway and the webhook
262
- * intake, which write to it, and the lake's intake, KEDA's operator (kedaOperator), and
238
+ * The log takes its clients on their port from the collector's gateway, the webhook intake
239
+ * and the sandbox gateway, which write to it, and the lake's intake, KEDA's operator (kedaOperator), and
263
240
  * each environment's alasio and lake loader, main's and branch environments', which read
264
241
  * it, alone; its controllers' port, and its clients' as its brokers reach each other,
265
242
  * from its own nodes; and its metrics port from the collector's scraper.
@@ -276,6 +253,7 @@ function logPolicy(config) {
276
253
  from: [
277
254
  of(GATEWAY_COMPONENT),
278
255
  of(WEBHOOK_COMPONENT),
256
+ of(SANDBOX_GATEWAY_COMPONENT),
279
257
  of(INTAKE_COMPONENT),
280
258
  operator,
281
259
  of("alasio"),
@@ -318,21 +296,23 @@ function webhookPolicy(config) {
318
296
  });
319
297
  }
320
298
  /**
321
- * The telemetry collector's gateway takes OTLP from alasio, the node agents and folder
322
- * workspaces' bayma, beside the stack's own pods (neonPolicies), its scraper among them,
323
- * and from branch environments' alasio, compute and lake, and from nothing else: sessions'
324
- * telemetry reaches it through their alasio's receiver alone.
299
+ * The telemetry collector's gateway takes OTLP from alasio, the node agents, and the sandbox
300
+ * service's gateway and receiver, beside the stack's own pods (neonPolicies), its scraper
301
+ * among them, and from branch environments' alasio, compute and lake, and from nothing else:
302
+ * sessions' and folder instances' telemetry reaches it through a receiver alone, their
303
+ * alasio's or the sandbox service's.
325
304
  */
326
- function collectorPolicy(config) {
327
- const { host } = config;
305
+ function collectorPolicy() {
328
306
  return policy(componentName("collector"), NAMESPACE, GATEWAY_COMPONENT, {
329
307
  podSelector: { matchLabels: selectorLabels(GATEWAY_COMPONENT) },
330
308
  policyTypes: ["Ingress"],
331
309
  ingress: [{
332
310
  from: [
333
311
  { podSelector: { matchLabels: selectorLabels("alasio") } },
334
- ...(nodeAgentRuns(config) ? [NODE_AGENT] : []),
335
- ...(host.enabled ? [{ namespaceSelector: namespaceNamed(host.namespace) }] : []),
312
+ NODE_AGENT,
313
+ SANDBOX_GATEWAY,
314
+ SANDBOX_RECEIVER,
315
+ ...HARNESS_PEERS,
336
316
  { namespaceSelector: BRANCH_NAMESPACES, podSelector: { matchLabels: selectorLabels("alasio") } },
337
317
  { namespaceSelector: BRANCH_NAMESPACES, podSelector: { matchLabels: STACK } },
338
318
  ],
@@ -383,12 +363,15 @@ function lakeQueryPolicy(config) {
383
363
  });
384
364
  }
385
365
  /**
386
- * The node agents take alasio's calls, on their API's port, and nothing else; they reach
387
- * the cluster's DNS, the object store's S3 port, the bundled one's or the operator's at
388
- * any address, and the collector where it runs, and nothing else. The bundled object
389
- * store admits them.
366
+ * The node agents take the sandbox service's gateway's calls alone, which attaches workspaces
367
+ * and saves and restores sandboxes through them, on their API's port, and nothing else, the
368
+ * gateway alone holding the token they take (./node-agent.ts); they reach the cluster's
369
+ * DNS, the object store's S3 port, the bundled one's or the operator's at any address,
370
+ * workspace storage's metadata engine, which they set workspaces' quotas on, the API server,
371
+ * which they watch the pods they attach into on, where `apiServer` says, and nowhere where up
372
+ * could not read it, as they run privileged, and the collector where it runs, and nothing else. The bundled object store, and the metadata engine, admit them.
390
373
  */
391
- function nodeAgentPolicies(config) {
374
+ function nodeAgentPolicies(config, apiServer) {
392
375
  const { bundled, external } = config.objectStore;
393
376
  const seaweedfs = { podSelector: { matchLabels: selectorLabels("seaweedfs") } };
394
377
  const endpoint = bundled.enabled ? null : new URL(external.endpoint);
@@ -399,10 +382,13 @@ function nodeAgentPolicies(config) {
399
382
  policy(componentName("node-agent"), NAMESPACE, "node-agent", {
400
383
  ...NODE_AGENT,
401
384
  policyTypes: ["Ingress", "Egress"],
402
- ingress: [{ from: [{ podSelector: { matchLabels: selectorLabels("alasio") } }], ports: [{ protocol: "TCP", port: NODE_AGENT_PORT }] }],
385
+ ingress: [{ from: [SANDBOX_GATEWAY], ports: [{ protocol: "TCP", port: NODE_AGENT_PORT }] }],
403
386
  egress: [
404
387
  CLUSTER_DNS,
405
388
  objectStore,
389
+ { to: [{ podSelector: { matchLabels: selectorLabels("valkey") } }], ports: [{ protocol: "TCP", port: VALKEY_PORT }] },
390
+ // Where up read it alone: a privileged pod is never let reach anywhere for it, its sweep not run instead.
391
+ ...(apiServer ? [apiServerRule(apiServer)] : []),
406
392
  ...(collectorRuns(config) ? [{ to: [{ podSelector: { matchLabels: selectorLabels("collector") } }], ports: [{ protocol: "TCP", port: COLLECTOR_PORT }] }] : []),
407
393
  ],
408
394
  }),
@@ -415,61 +401,213 @@ function nodeAgentPolicies(config) {
415
401
  : []),
416
402
  ];
417
403
  }
404
+ /** Every environment's harness pools' pods (./harness-pools.ts), main's and branch environments', as peers. */
405
+ const HARNESS_PEERS = [
406
+ { namespaceSelector: namespaceNamed(NAMESPACE), podSelector: { matchLabels: selectorLabels(HARNESS_COMPONENT) } },
407
+ { namespaceSelector: BRANCH_NAMESPACES, podSelector: { matchLabels: selectorLabels(HARNESS_COMPONENT) } },
408
+ ];
418
409
  /**
419
- * alasio takes no connections but its sessions' telemetry, and, main, where it forks
420
- * sessions for branch environments, their alasio's asking it to (src/branch/fork.ts).
410
+ * The harness pools' pods of `environment` (./harness-pools.ts), free or bound: they take main's
411
+ * sandbox gateway alone, on their host's port, which it reaches them through. A session
412
+ * conversation's reaches the cluster's DNS, the gateway (its bayma and its files through it, and
413
+ * its events, which the gateway writes), Neon's proxy (its database, as the harness host's role),
414
+ * its environment's relay of its Codex login, the collector where it runs, and the internet's HTTPS
415
+ * port, its harness's model's API, none of the cluster's or its network's private addresses, as a
416
+ * session with internet; nothing else, the log not among it.
417
+ * A folder conversation's, main's, reaches what alasio's own pod reaches, as the operator's agents do.
421
418
  */
422
- function alasioPolicy(config, environment) {
423
- const forks = environment.branch === null && forksForBranches(config);
424
- const ingress = [
425
- ...(config.sessions.enabled
426
- ? [{
427
- from: [{ namespaceSelector: namespaceNamed(sessionsNamespace(config, environment)), podSelector: { matchLabels: SESSION } }],
428
- ports: [{ protocol: "TCP", port: config.telemetry.receiverPort }],
429
- }]
430
- : []),
431
- ...(forks
432
- ? [{ from: [{ namespaceSelector: BRANCH_NAMESPACES, podSelector: { matchLabels: selectorLabels("alasio") } }], ports: [{ protocol: "TCP", port: BRANCH_FORK_PORT }] }]
433
- : []),
419
+ function harnessPolicies(config, environment) {
420
+ const harnesses = { podSelector: { matchLabels: selectorLabels(HARNESS_COMPONENT) } };
421
+ const sessionPools = { matchLabels: selectorLabels(HARNESS_COMPONENT), matchExpressions: [{ key: POOL_LABEL, operator: "In", values: Object.values(HARNESS_POOLS) }] };
422
+ const ofMainNamespace = (component) => ({ namespaceSelector: namespaceNamed(NAMESPACE), podSelector: { matchLabels: selectorLabels(component) } });
423
+ return [
424
+ policy(componentName("harnesses"), environment.namespace, HARNESS_COMPONENT, {
425
+ ...harnesses,
426
+ policyTypes: ["Ingress"],
427
+ ingress: [{ from: [{ namespaceSelector: namespaceNamed(NAMESPACE), ...SANDBOX_GATEWAY }], ports: [{ protocol: "TCP", port: HARNESS_POD_PORT }] }],
428
+ }),
429
+ policy(componentName("harnesses-of-sessions"), environment.namespace, HARNESS_COMPONENT, {
430
+ podSelector: sessionPools,
431
+ policyTypes: ["Egress"],
432
+ egress: [
433
+ CLUSTER_DNS,
434
+ { to: [{ namespaceSelector: namespaceNamed(NAMESPACE), ...SANDBOX_GATEWAY }], ports: [{ protocol: "TCP", port: SANDBOX_GATEWAY_PORT }] },
435
+ { to: [ofMainNamespace("neon-proxy")], ports: [{ protocol: "TCP", port: PROXY_PORT }] },
436
+ // Its environment's relay of its Codex login.
437
+ { to: [{ podSelector: { matchLabels: selectorLabels(CODEX_LOGIN_COMPONENT) } }], ports: [{ protocol: "TCP", port: CODEX_LOGIN_PORT }] },
438
+ ...(collectorRuns(config) ? [{ to: [ofMainNamespace(GATEWAY_COMPONENT)], ports: [{ protocol: "TCP", port: COLLECTOR_PORT }] }] : []),
439
+ { to: [{ ipBlock: { cidr: "0.0.0.0/0", except: [...config.sessions.blockedCidrs] } }], ports: [{ protocol: "TCP", port: 443 }] },
440
+ ],
441
+ }),
442
+ ];
443
+ }
444
+ /** The pods of the sandbox service's pools (./sandbox-gateway.ts), free or bound, as a selector: by the label each has of its pool. */
445
+ const POOLED = { matchExpressions: [{ key: POOL_LABEL, operator: "Exists" }] };
446
+ /** The sandbox service's gateway's pods, as a peer. */
447
+ const SANDBOX_GATEWAY = { podSelector: { matchLabels: selectorLabels(SANDBOX_GATEWAY_COMPONENT) } };
448
+ /** The sandbox service's receiver's pods, as a peer. */
449
+ const SANDBOX_RECEIVER = { podSelector: { matchLabels: selectorLabels(RECEIVER_COMPONENT) } };
450
+ /**
451
+ * The cluster's API server, as an egress rule: its addresses on its ports, as `alasio up`
452
+ * read them (../api-server.ts); or, where it could not, anywhere, which up warns of.
453
+ */
454
+ function apiServerRule(apiServer) {
455
+ if (!apiServer)
456
+ return {};
457
+ return { to: apiServer.addresses.map((address) => ({ ipBlock: { cidr: `${address}/32` } })), ports: apiServer.ports.map((port) => ({ protocol: "TCP", port })) };
458
+ }
459
+ /**
460
+ * The sandbox service's pools' pods (./sandbox-gateway.ts) of `environment`, free or bound:
461
+ * they take main's gateway alone, on bayma's port, and reach main's receiver alone, on its
462
+ * port, at the address their binding gives them, and a pod with internet the public internet
463
+ * beside, none of the cluster's or its network's private addresses, as a session does.
464
+ */
465
+ function poolPolicies(config, environment) {
466
+ const namespace = sessionsNamespace(config, environment);
467
+ return [
468
+ policy(componentName("sandboxes"), namespace, "session", {
469
+ podSelector: POOLED,
470
+ policyTypes: ["Ingress", "Egress"],
471
+ ingress: [{ from: [{ namespaceSelector: namespaceNamed(NAMESPACE), ...SANDBOX_GATEWAY }], ports: [{ protocol: "TCP", port: POOL_POD_PORT }] }],
472
+ egress: [{ to: [{ namespaceSelector: namespaceNamed(NAMESPACE), ...SANDBOX_RECEIVER }], ports: [{ protocol: "TCP", port: config.telemetry.receiverPort }] }],
473
+ }),
474
+ policy(componentName("sandboxes-full-internet"), namespace, "session", {
475
+ podSelector: { ...POOLED, matchLabels: { [NET_MODE_LABEL]: "full" } },
476
+ policyTypes: ["Egress"],
477
+ egress: [{ to: [{ ipBlock: { cidr: "0.0.0.0/0", except: [...config.sessions.blockedCidrs] } }] }],
478
+ }),
479
+ ];
480
+ }
481
+ /**
482
+ * The sandbox service's gateway and receiver, which take what sandboxes send, and so reach
483
+ * what they need of the cluster alone:
484
+ *
485
+ * - the gateway takes main's alasio and each branch environment's, which bind through it, its own replicas, which pass each
486
+ * other what is bound on the pods each holds, KEDA's operator (kedaOperator), which asks
487
+ * it how many binds wait for a pool, and the harness pools' hosts, which reach their turns'
488
+ * bayma and files through it, on its port alone; it reaches the cluster's DNS, the
489
+ * pools' pods of every environment on bayma's port, the harness pools' on their host's, the node agents, its replicas, the
490
+ * log, which it writes each environment's events to, the collector where it runs, and the
491
+ * API server;
492
+ * - the receiver takes the pools' pods alone, of main's sessions and of branch environments',
493
+ * on its port; it reaches the cluster's DNS, the collector where it runs, and the API server.
494
+ *
495
+ * The API server is reached at its addresses, as `apiServer` says (apiServerRule).
496
+ */
497
+ function sandboxServicePolicies(config, apiServer) {
498
+ const port = config.telemetry.receiverPort;
499
+ const pools = [
500
+ { namespaceSelector: namespaceNamed(sessionsNamespace(config, MAIN_ENVIRONMENT)), podSelector: POOLED },
501
+ { namespaceSelector: BRANCH_NAMESPACES, podSelector: POOLED },
502
+ ];
503
+ // Folder conversations' instances, which the gateway binds and the receiver takes the telemetry of as of the pools' pods.
504
+ const folders = foldersRun(config) ? [{ namespaceSelector: namespaceNamed(config.host.namespace), podSelector: POOLED }] : [];
505
+ const collector = collectorRuns(config)
506
+ ? [{ to: [{ podSelector: { matchLabels: selectorLabels(GATEWAY_COMPONENT) } }], ports: [{ protocol: "TCP", port: COLLECTOR_PORT }] }]
507
+ : [];
508
+ return [
509
+ policy(SANDBOX_GATEWAY_NAME, NAMESPACE, SANDBOX_GATEWAY_COMPONENT, {
510
+ ...SANDBOX_GATEWAY,
511
+ policyTypes: ["Ingress", "Egress"],
512
+ ingress: [{
513
+ from: [{ podSelector: { matchLabels: selectorLabels("alasio") } }, { namespaceSelector: BRANCH_NAMESPACES, podSelector: { matchLabels: selectorLabels("alasio") } }, SANDBOX_GATEWAY, kedaOperator(config), ...HARNESS_PEERS],
514
+ ports: [{ protocol: "TCP", port: SANDBOX_GATEWAY_PORT }],
515
+ }],
516
+ egress: [
517
+ CLUSTER_DNS,
518
+ { to: [...pools, ...folders], ports: [{ protocol: "TCP", port: POOL_POD_PORT }] },
519
+ // Each environment's harness pools' hosts, which it binds and passes conversations' calls on to.
520
+ { to: HARNESS_PEERS, ports: [{ protocol: "TCP", port: HARNESS_POD_PORT }] },
521
+ { to: [NODE_AGENT], ports: [{ protocol: "TCP", port: NODE_AGENT_PORT }] },
522
+ { to: [SANDBOX_GATEWAY], ports: [{ protocol: "TCP", port: SANDBOX_GATEWAY_PORT }] },
523
+ // The log, its events written to it.
524
+ { to: [{ podSelector: { matchLabels: selectorLabels(LOG_COMPONENT) } }], ports: [{ protocol: "TCP", port: LOG_PORT }] },
525
+ ...collector,
526
+ apiServerRule(apiServer),
527
+ ],
528
+ }),
529
+ policy(RECEIVER, NAMESPACE, RECEIVER_COMPONENT, {
530
+ ...SANDBOX_RECEIVER,
531
+ policyTypes: ["Ingress", "Egress"],
532
+ ingress: [{ from: [...pools, ...folders], ports: [{ protocol: "TCP", port }] }],
533
+ egress: [CLUSTER_DNS, ...collector, apiServerRule(apiServer)],
534
+ }),
434
535
  ];
536
+ }
537
+ /**
538
+ * alasio takes no connections: a branch environment's asks main to fork the sessions it
539
+ * inherited on the log (src/branch/fork.ts), and its harness pools' pods reach the relay of
540
+ * its Codex login, a component of its own.
541
+ */
542
+ function alasioPolicy(environment) {
435
543
  return policy(componentName("alasio"), environment.namespace, "alasio", {
436
544
  podSelector: { matchLabels: selectorLabels("alasio") },
437
545
  policyTypes: ["Ingress"],
438
- ...given("ingress", ingress),
546
+ ingress: [],
547
+ });
548
+ }
549
+ /**
550
+ * The relay of an environment's Codex login (./codex-login.ts) takes its own harness pools'
551
+ * pods, which call the model through it, and its alasio, which asks whether it answers before a
552
+ * Codex turn starts: none of another environment's.
553
+ */
554
+ function codexLoginPolicy(environment) {
555
+ return policy(CODEX_LOGIN, environment.namespace, CODEX_LOGIN_COMPONENT, {
556
+ podSelector: { matchLabels: selectorLabels(CODEX_LOGIN_COMPONENT) },
557
+ policyTypes: ["Ingress"],
558
+ ingress: [{
559
+ from: [{ podSelector: { matchLabels: selectorLabels(HARNESS_COMPONENT) } }, { podSelector: { matchLabels: selectorLabels("alasio") } }],
560
+ ports: [{ protocol: "TCP", port: CODEX_LOGIN_PORT }],
561
+ }],
439
562
  });
440
563
  }
441
564
  /**
442
565
  * The NetworkPolicies of the alasio of `environment`, unless they are turned off: main's,
443
- * and those that admit branch environments to what of main's they share; or a branch
566
+ * and those that admit branch environments to what of main's they share, what reaches its
567
+ * API server reaching it where `apiServer` says (../api-server.ts); or a branch
444
568
  * environment's own.
445
569
  */
446
- export function networkPolicyObjects(config, environment = MAIN_ENVIRONMENT) {
570
+ export function networkPolicyObjects(config, environment = MAIN_ENVIRONMENT, apiServer = null) {
447
571
  if (!config.networkPolicies.enabled)
448
572
  return [];
449
- const { sessions, host } = config;
573
+ const { host } = config;
450
574
  if (environment.branch !== null) {
451
- return [...(sessions.enabled ? sessionPolicies(config, environment) : []), alasioPolicy(config, environment), ...neonPolicies(environment)];
575
+ return [
576
+ ...sessionPolicies(config, environment),
577
+ ...poolPolicies(config, environment),
578
+ ...harnessPolicies(config, environment),
579
+ alasioPolicy(environment),
580
+ codexLoginPolicy(environment),
581
+ ...neonPolicies(environment),
582
+ ];
452
583
  }
453
584
  return [
454
- ...(sessions.enabled ? sessionPolicies(config, environment) : []),
455
- // Folder workspaces' bayma is reached by alasio alone; what it reaches is the machine's.
456
- ...(host.enabled
457
- ? [policy("bayma-from-alasio", host.namespace, "folder-bayma", {
585
+ ...sessionPolicies(config, environment),
586
+ // Folder conversations' instances are reached by the sandbox gateway alone, which binds them; what they reach is the machine's.
587
+ ...(foldersRun(config)
588
+ ? [policy("folders-from-gateway", host.namespace, "folder-bayma", {
589
+ // Every pod of the namespace, which none but a folder instance's may be.
458
590
  podSelector: {},
459
591
  policyTypes: ["Ingress"],
460
- ingress: [{ from: [alasioOf(environment)], ports: [{ protocol: "TCP", port: 7290 }] }],
592
+ ingress: [{ from: [{ namespaceSelector: namespaceNamed(NAMESPACE), ...SANDBOX_GATEWAY }], ports: [{ protocol: "TCP", port: FOLDER_PORT }] }],
461
593
  })]
462
594
  : []),
463
- alasioPolicy(config, environment),
464
- ...(config.neon.enabled ? [...neonPolicies(environment), proxyPolicy(), branchStoragePolicy(config)] : []),
595
+ alasioPolicy(environment),
596
+ codexLoginPolicy(environment),
597
+ ...harnessPolicies(config, environment),
598
+ ...neonPolicies(environment),
599
+ proxyPolicy(),
600
+ branchStoragePolicy(config),
465
601
  ...(config.objectStore.bundled.enabled ? [gatewayPolicy(), ...partPolicies(), ...filerStorePolicies()] : []),
466
602
  logPolicy(config),
467
603
  webhookPolicy(config),
468
- ...(collectorRuns(config) ? [collectorPolicy(config)] : []),
604
+ ...(collectorRuns(config) ? [collectorPolicy()] : []),
469
605
  ...(grafanaRuns(config) ? grafanaPolicies(config) : []),
470
606
  ...(lakeRuns(config) ? [lakeQueryPolicy(config)] : []),
471
- ...(config.workspaceStorage.enabled ? workspaceStoragePolicies(config) : []),
472
- ...(nodeAgentRuns(config) ? nodeAgentPolicies(config) : []),
607
+ ...workspaceStoragePolicies(config),
608
+ ...nodeAgentPolicies(config, apiServer),
609
+ ...poolPolicies(config, environment),
610
+ ...sandboxServicePolicies(config, apiServer),
473
611
  ];
474
612
  }
475
613
  //# sourceMappingURL=network-policies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"network-policies.js","sourceRoot":"","sources":["../../../../src/manifests/network-policies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network-policies.js","sourceRoot":"","sources":["../../../../src/manifests/network-policies.ts"],"names":[],"mappings":"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"}