@namzu/sandbox 13.0.0 → 14.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/CHANGELOG.md +309 -0
- package/README.md +151 -0
- package/dist/backends/firecracker/protocol.d.ts +22 -0
- package/dist/backends/firecracker/protocol.d.ts.map +1 -1
- package/dist/backends/firecracker/protocol.js.map +1 -1
- package/dist/backends/firecracker/transport.d.ts +104 -9
- package/dist/backends/firecracker/transport.d.ts.map +1 -1
- package/dist/backends/firecracker/transport.js +139 -13
- package/dist/backends/firecracker/transport.js.map +1 -1
- package/dist/backends/kubernetes/egress-policy.d.ts +219 -0
- package/dist/backends/kubernetes/egress-policy.d.ts.map +1 -0
- package/dist/backends/kubernetes/egress-policy.js +314 -0
- package/dist/backends/kubernetes/egress-policy.js.map +1 -0
- package/dist/backends/kubernetes/index.d.ts +374 -0
- package/dist/backends/kubernetes/index.d.ts.map +1 -0
- package/dist/backends/kubernetes/index.js +671 -0
- package/dist/backends/kubernetes/index.js.map +1 -0
- package/dist/backends/kubernetes/k8s-client.d.ts +125 -0
- package/dist/backends/kubernetes/k8s-client.d.ts.map +1 -0
- package/dist/backends/kubernetes/k8s-client.js +246 -0
- package/dist/backends/kubernetes/k8s-client.js.map +1 -0
- package/dist/backends/kubernetes/lease.d.ts +119 -0
- package/dist/backends/kubernetes/lease.d.ts.map +1 -0
- package/dist/backends/kubernetes/lease.js +151 -0
- package/dist/backends/kubernetes/lease.js.map +1 -0
- package/dist/backends/kubernetes/objects.d.ts +282 -0
- package/dist/backends/kubernetes/objects.d.ts.map +1 -0
- package/dist/backends/kubernetes/objects.js +156 -0
- package/dist/backends/kubernetes/objects.js.map +1 -0
- package/dist/backends/kubernetes/privilege-probe.d.ts +136 -0
- package/dist/backends/kubernetes/privilege-probe.d.ts.map +1 -0
- package/dist/backends/kubernetes/privilege-probe.js +185 -0
- package/dist/backends/kubernetes/privilege-probe.js.map +1 -0
- package/dist/backends/kubernetes/sandbox.d.ts +123 -0
- package/dist/backends/kubernetes/sandbox.d.ts.map +1 -0
- package/dist/backends/kubernetes/sandbox.js +299 -0
- package/dist/backends/kubernetes/sandbox.js.map +1 -0
- package/dist/backends/kubernetes/transport.d.ts +122 -0
- package/dist/backends/kubernetes/transport.d.ts.map +1 -0
- package/dist/backends/kubernetes/transport.js +197 -0
- package/dist/backends/kubernetes/transport.js.map +1 -0
- package/dist/backends/kubernetes/workspace.d.ts +381 -0
- package/dist/backends/kubernetes/workspace.d.ts.map +1 -0
- package/dist/backends/kubernetes/workspace.js +1064 -0
- package/dist/backends/kubernetes/workspace.js.map +1 -0
- package/dist/index.d.ts +132 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +102 -34
- package/dist/index.js.map +1 -1
- package/dist/testing/sandbox-conformance.d.ts +193 -0
- package/dist/testing/sandbox-conformance.d.ts.map +1 -0
- package/dist/testing/sandbox-conformance.js +465 -0
- package/dist/testing/sandbox-conformance.js.map +1 -0
- package/package.json +5 -4
- package/src/backends/firecracker/protocol.ts +27 -0
- package/src/backends/firecracker/transport.ts +199 -28
- package/src/backends/kubernetes/egress-policy.ts +437 -0
- package/src/backends/kubernetes/index.ts +1012 -0
- package/src/backends/kubernetes/k8s-client.ts +352 -0
- package/src/backends/kubernetes/lease.ts +198 -0
- package/src/backends/kubernetes/objects.ts +363 -0
- package/src/backends/kubernetes/privilege-probe.ts +261 -0
- package/src/backends/kubernetes/sandbox.ts +395 -0
- package/src/backends/kubernetes/transport.ts +286 -0
- package/src/backends/kubernetes/workspace.ts +1386 -0
- package/src/index.ts +257 -35
- package/src/testing/sandbox-conformance.ts +667 -0
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
* transport resume-survivable by construction.
|
|
54
54
|
*/
|
|
55
55
|
import type { OpenTerminalOptions, SandboxExecOptions, SandboxExecResult, SandboxTcpConnectOptions, SandboxTcpConnection, TerminalSession } from '@namzu/sdk';
|
|
56
|
-
import { type ExecRequest, type ReadFileRequest, type TcpConnectRequest, type TerminalOpenRequest, type WriteFileRequest } from './protocol.js';
|
|
56
|
+
import { type AgentRequestCredential, type ExecRequest, type ReadFileRequest, type TcpConnectRequest, type TerminalOpenRequest, type WriteFileRequest } from './protocol.js';
|
|
57
57
|
/**
|
|
58
58
|
* An addressable agent endpoint. The orchestrator hands one of these
|
|
59
59
|
* back per sandbox (`create()` response → `vsock endpoint`).
|
|
@@ -79,6 +79,18 @@ import { type ExecRequest, type ReadFileRequest, type TcpConnectRequest, type Te
|
|
|
79
79
|
* (`tls.TLSSocket` is a `net.Socket`). The container-app NEVER sees
|
|
80
80
|
* a host-local `udsPath`; the cert material is injected by the
|
|
81
81
|
* Vandal host layer, never returned by the orchestrator.
|
|
82
|
+
* - `tcp` — the guest agent listening directly on a routed pod
|
|
83
|
+
* network (the kubernetes backend). The dialer does a plain
|
|
84
|
+
* `net.connect({ host, port })` — no relay, no routing preamble, no
|
|
85
|
+
* ack: there is nothing between the host and the guest's own listen
|
|
86
|
+
* socket to route through, so the framing loop starts on the very
|
|
87
|
+
* first byte, exactly as the `unix` arm's does. `host` may be a
|
|
88
|
+
* Service FQDN rather than a literal IP; every call dials fresh (see
|
|
89
|
+
* `dial()` below), so DNS is re-resolved on every request and a
|
|
90
|
+
* resumed pod's new address is picked up for free. `token` rides in
|
|
91
|
+
* each request envelope (see `AgentRequestCredential` in
|
|
92
|
+
* `protocol.ts`) because a routed listener authenticates what the
|
|
93
|
+
* vsock/unix control channel never had to.
|
|
82
94
|
*/
|
|
83
95
|
export type SandboxAgentHandle = {
|
|
84
96
|
readonly kind: 'unix';
|
|
@@ -98,6 +110,11 @@ export type SandboxAgentHandle = {
|
|
|
98
110
|
readonly key: string | Buffer;
|
|
99
111
|
readonly servername?: string;
|
|
100
112
|
};
|
|
113
|
+
} | {
|
|
114
|
+
readonly kind: 'tcp';
|
|
115
|
+
readonly host: string;
|
|
116
|
+
readonly port: number;
|
|
117
|
+
readonly token?: string;
|
|
101
118
|
};
|
|
102
119
|
/**
|
|
103
120
|
* The mTLS cert material the consumer injects onto a wire `mtls` handle (the
|
|
@@ -112,12 +129,17 @@ export interface MtlsClientMaterial {
|
|
|
112
129
|
readonly servername?: string;
|
|
113
130
|
}
|
|
114
131
|
/**
|
|
115
|
-
* The WIRE shape of an agent handle as the orchestrator
|
|
116
|
-
* to {@link SandboxAgentHandle} EXCEPT the `mtls`
|
|
117
|
-
* block: the orchestrator returns only
|
|
118
|
-
* (Vandal host layer) merges the
|
|
119
|
-
*
|
|
120
|
-
* (they carry no cert
|
|
132
|
+
* The WIRE shape of an agent handle as the FIRECRACKER orchestrator
|
|
133
|
+
* returns it. Identical to {@link SandboxAgentHandle} EXCEPT the `mtls`
|
|
134
|
+
* arm omits the `tls` cert block: the orchestrator returns only
|
|
135
|
+
* host/port/sandboxId, and the consumer (Vandal host layer) merges the
|
|
136
|
+
* cert material in (see `normalizeHandle`) before constructing the
|
|
137
|
+
* transport. The `unix`/`vsock` arms are unchanged (they carry no cert
|
|
138
|
+
* material). There is deliberately no `tcp` arm here: that kind belongs
|
|
139
|
+
* to the kubernetes backend, which builds its {@link SandboxAgentHandle}
|
|
140
|
+
* directly (host/port from the claimed Sandbox's status, token from the
|
|
141
|
+
* pod's own identity) and never goes through this orchestrator wire
|
|
142
|
+
* shape or `normalizeHandle`.
|
|
121
143
|
*/
|
|
122
144
|
export type WireSandboxAgentHandle = {
|
|
123
145
|
readonly kind: 'unix';
|
|
@@ -137,7 +159,7 @@ export type WireSandboxAgentHandle = {
|
|
|
137
159
|
* used the URL path (`/execute`, `/read-file`, `/write-file`,
|
|
138
160
|
* `/healthz`) — over vsock the same selector rides in the framed JSON.
|
|
139
161
|
*/
|
|
140
|
-
export type AgentRequest = {
|
|
162
|
+
export type AgentRequest = ({
|
|
141
163
|
readonly op: 'execute';
|
|
142
164
|
readonly body: ExecRequest;
|
|
143
165
|
} | {
|
|
@@ -161,7 +183,7 @@ export type AgentRequest = {
|
|
|
161
183
|
readonly body: TcpConnectRequest;
|
|
162
184
|
} | {
|
|
163
185
|
readonly op: 'healthz';
|
|
164
|
-
};
|
|
186
|
+
}) & AgentRequestCredential;
|
|
165
187
|
export interface VsockTransportOptions {
|
|
166
188
|
/** Per-attempt connect + handshake timeout. Default 5000ms. */
|
|
167
189
|
readonly connectTimeoutMs?: number;
|
|
@@ -177,6 +199,43 @@ export interface VsockTransportOptions {
|
|
|
177
199
|
* against the agent's fresh listen socket. Default 60000ms.
|
|
178
200
|
*/
|
|
179
201
|
readonly readIdleTimeoutMs?: number;
|
|
202
|
+
/**
|
|
203
|
+
* Fires once per successful dial with how long the connect took, in
|
|
204
|
+
* milliseconds. Never fires with the handle's `token` or any request
|
|
205
|
+
* content — a bare number. Used by callers that build their own
|
|
206
|
+
* `RemoteExecutionAdapter` on top of this transport (the kubernetes
|
|
207
|
+
* backend's `KubernetesAgentTransport`) to attribute wall time; the
|
|
208
|
+
* vsock/mtls/unix arms are free to ignore it.
|
|
209
|
+
*/
|
|
210
|
+
readonly onDial?: (durationMs: number) => void;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* The guest agent's default pre-auth frame ceiling for a routed (`tcp`)
|
|
214
|
+
* connection — mirrors `agent.cjs`'s `MAX_PREAUTH_FRAME_BYTES`
|
|
215
|
+
* (`NAMZU_AGENT_MAX_PREAUTH_FRAME_BYTES`, default 8 MiB). The gate on
|
|
216
|
+
* that side cannot run until a whole frame is parsed (the credential
|
|
217
|
+
* rides inside the envelope), so it bounds what an UNAUTHENTICATED
|
|
218
|
+
* connection's first frame may announce. This transport dials fresh per
|
|
219
|
+
* call — there is no persistent, already-authenticated connection to
|
|
220
|
+
* reuse — so EVERY `tcp` request is that connection's first frame, and
|
|
221
|
+
* this ceiling is therefore the effective per-request budget, not just
|
|
222
|
+
* a one-time cost paid on first use.
|
|
223
|
+
*
|
|
224
|
+
* Checked here, client-side, BEFORE dialing: an oversized request fails
|
|
225
|
+
* fast with a clear error instead of opening a connection the guest is
|
|
226
|
+
* going to refuse anyway. Chunking a `write-file` body across multiple
|
|
227
|
+
* frames would lift this ceiling; it is a documented follow-up, not
|
|
228
|
+
* implemented by this transport.
|
|
229
|
+
*/
|
|
230
|
+
export declare const TCP_PREAUTH_FRAME_LIMIT_BYTES: number;
|
|
231
|
+
/**
|
|
232
|
+
* Thrown when a `tcp`-handle request's framed envelope (op + body +
|
|
233
|
+
* token) would exceed {@link TCP_PREAUTH_FRAME_LIMIT_BYTES}. Named so a
|
|
234
|
+
* caller can distinguish "this body needs chunking" from every other
|
|
235
|
+
* transport failure.
|
|
236
|
+
*/
|
|
237
|
+
export declare class AgentPreauthFrameTooLargeError extends Error {
|
|
238
|
+
constructor(message: string);
|
|
180
239
|
}
|
|
181
240
|
/** Exact guest wire version accepted by this Firecracker transport. */
|
|
182
241
|
export declare const FIRECRACKER_AGENT_PROTOCOL_VERSION: 2;
|
|
@@ -203,6 +262,7 @@ export declare class VsockAgentTransport {
|
|
|
203
262
|
private readonly connectRetryBudgetMs;
|
|
204
263
|
private readonly connectRetryIntervalMs;
|
|
205
264
|
private readonly readIdleTimeoutMs;
|
|
265
|
+
private readonly onDial?;
|
|
206
266
|
private readonly executionController;
|
|
207
267
|
constructor(handle: SandboxAgentHandle, options?: VsockTransportOptions);
|
|
208
268
|
/**
|
|
@@ -236,6 +296,27 @@ export declare class VsockAgentTransport {
|
|
|
236
296
|
* CONNECT-ack path) before resolving — today it does not.
|
|
237
297
|
*/
|
|
238
298
|
private connectOnceMtls;
|
|
299
|
+
/**
|
|
300
|
+
* Dial a `tcp` handle: a plain `net.connect({ host, port })`. NO
|
|
301
|
+
* routing preamble and NO ack — there is no relay to route through
|
|
302
|
+
* and no handshake line the guest expects, so the socket is handed
|
|
303
|
+
* to the framing loop the instant it connects, exactly like the
|
|
304
|
+
* `unix` arm above (whose body this deliberately does not touch).
|
|
305
|
+
*/
|
|
306
|
+
private connectOnceTcp;
|
|
307
|
+
/**
|
|
308
|
+
* Fold the handle's credential into a request envelope. Only the
|
|
309
|
+
* `tcp` arm carries a token — the vsock/unix/mtls control channels
|
|
310
|
+
* are host↔guest only and the agent authenticates nothing there, so
|
|
311
|
+
* a request built for those arms passes through unchanged.
|
|
312
|
+
*/
|
|
313
|
+
private withCredential;
|
|
314
|
+
/**
|
|
315
|
+
* Refuse an oversized `tcp` envelope BEFORE dialing. See
|
|
316
|
+
* {@link TCP_PREAUTH_FRAME_LIMIT_BYTES}. A no-op for every other
|
|
317
|
+
* handle kind, which the guest never gates on frame size pre-auth.
|
|
318
|
+
*/
|
|
319
|
+
private assertPreauthBudget;
|
|
239
320
|
/**
|
|
240
321
|
* Send one framed request and read one framed JSON reply (file-IO +
|
|
241
322
|
* healthz). Applies the read-idle timeout so a post-resume hung read
|
|
@@ -256,6 +337,20 @@ export declare class VsockAgentTransport {
|
|
|
256
337
|
*/
|
|
257
338
|
execute(body: ExecRequest, opts?: SandboxExecOptions, signal?: AbortSignal): Promise<SandboxExecResult>;
|
|
258
339
|
exec(command: string, argv?: string[], opts?: SandboxExecOptions): Promise<SandboxExecResult>;
|
|
340
|
+
/**
|
|
341
|
+
* The raw `/execute` primitive with NO admission/reservation
|
|
342
|
+
* semantics: dial, send one framed request, accumulate the streamed
|
|
343
|
+
* NDJSON reply. Public (unlike the identical-in-spirit
|
|
344
|
+
* {@link reserveExecution}/{@link cancelExecution}, reached through
|
|
345
|
+
* the already-public {@link request}) so a caller running its OWN
|
|
346
|
+
* {@link RemoteExecutionController} — the kubernetes backend's
|
|
347
|
+
* adapter — can reuse this exact dial + framing rather than
|
|
348
|
+
* reimplementing it, while still supplying that controller its own
|
|
349
|
+
* `reserve`/`cancel`/`execute` triple as {@link RemoteExecutionAdapter}
|
|
350
|
+
* requires. Callers that just want a reserve-before-admission `exec`
|
|
351
|
+
* should use {@link execute} or {@link exec} instead.
|
|
352
|
+
*/
|
|
353
|
+
executeStreamed(body: ExecRequest, opts?: SandboxExecOptions, signal?: AbortSignal): Promise<SandboxExecResult>;
|
|
259
354
|
private reserveExecution;
|
|
260
355
|
private cancelExecution;
|
|
261
356
|
/** Readiness probe. A healthy guest must also speak the exact host protocol. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAKH,OAAO,KAAK,EACX,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,MAAM,YAAY,CAAA;AASnB,OAAO,EACN,KAAK,WAAW,EAEhB,KAAK,eAAe,EAEpB,KAAK,iBAAiB,EAItB,KAAK,mBAAmB,EAExB,KAAK,gBAAgB,EAGrB,MAAM,eAAe,CAAA;AAMtB
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,37 @@ const DEFAULT_EXECUTION_TIMEOUT_MS = 5 * 60_000;
|
|
|
69
69
|
const EXECUTION_TRANSPORT_GRACE_MS = 10_000;
|
|
70
70
|
const POST_RESPONSE_CLOSE_TIMEOUT_MS = 1_000;
|
|
71
71
|
const MAX_TIMER_DELAY_MS = 2_147_483_647;
|
|
72
|
+
/**
|
|
73
|
+
* The guest agent's default pre-auth frame ceiling for a routed (`tcp`)
|
|
74
|
+
* connection — mirrors `agent.cjs`'s `MAX_PREAUTH_FRAME_BYTES`
|
|
75
|
+
* (`NAMZU_AGENT_MAX_PREAUTH_FRAME_BYTES`, default 8 MiB). The gate on
|
|
76
|
+
* that side cannot run until a whole frame is parsed (the credential
|
|
77
|
+
* rides inside the envelope), so it bounds what an UNAUTHENTICATED
|
|
78
|
+
* connection's first frame may announce. This transport dials fresh per
|
|
79
|
+
* call — there is no persistent, already-authenticated connection to
|
|
80
|
+
* reuse — so EVERY `tcp` request is that connection's first frame, and
|
|
81
|
+
* this ceiling is therefore the effective per-request budget, not just
|
|
82
|
+
* a one-time cost paid on first use.
|
|
83
|
+
*
|
|
84
|
+
* Checked here, client-side, BEFORE dialing: an oversized request fails
|
|
85
|
+
* fast with a clear error instead of opening a connection the guest is
|
|
86
|
+
* going to refuse anyway. Chunking a `write-file` body across multiple
|
|
87
|
+
* frames would lift this ceiling; it is a documented follow-up, not
|
|
88
|
+
* implemented by this transport.
|
|
89
|
+
*/
|
|
90
|
+
export const TCP_PREAUTH_FRAME_LIMIT_BYTES = 8 * 1024 * 1024;
|
|
91
|
+
/**
|
|
92
|
+
* Thrown when a `tcp`-handle request's framed envelope (op + body +
|
|
93
|
+
* token) would exceed {@link TCP_PREAUTH_FRAME_LIMIT_BYTES}. Named so a
|
|
94
|
+
* caller can distinguish "this body needs chunking" from every other
|
|
95
|
+
* transport failure.
|
|
96
|
+
*/
|
|
97
|
+
export class AgentPreauthFrameTooLargeError extends Error {
|
|
98
|
+
constructor(message) {
|
|
99
|
+
super(message);
|
|
100
|
+
this.name = 'AgentPreauthFrameTooLargeError';
|
|
101
|
+
}
|
|
102
|
+
}
|
|
72
103
|
/** Exact guest wire version accepted by this Firecracker transport. */
|
|
73
104
|
export const FIRECRACKER_AGENT_PROTOCOL_VERSION = REMOTE_EXECUTION_PROTOCOL_VERSION;
|
|
74
105
|
/** Framing: 8 hex digits of payload byte length, then `\n`, then payload. */
|
|
@@ -130,6 +161,7 @@ export class VsockAgentTransport {
|
|
|
130
161
|
connectRetryBudgetMs;
|
|
131
162
|
connectRetryIntervalMs;
|
|
132
163
|
readIdleTimeoutMs;
|
|
164
|
+
onDial;
|
|
133
165
|
executionController;
|
|
134
166
|
constructor(handle, options = {}) {
|
|
135
167
|
this.handle = handle;
|
|
@@ -138,6 +170,7 @@ export class VsockAgentTransport {
|
|
|
138
170
|
this.connectRetryIntervalMs =
|
|
139
171
|
options.connectRetryIntervalMs ?? DEFAULT_CONNECT_RETRY_INTERVAL_MS;
|
|
140
172
|
this.readIdleTimeoutMs = options.readIdleTimeoutMs ?? DEFAULT_READ_IDLE_TIMEOUT_MS;
|
|
173
|
+
this.onDial = options.onDial;
|
|
141
174
|
const adapter = {
|
|
142
175
|
label: 'framed microVM agent',
|
|
143
176
|
reserve: async (signal) => await this.reserveExecution(signal),
|
|
@@ -165,11 +198,14 @@ export class VsockAgentTransport {
|
|
|
165
198
|
*/
|
|
166
199
|
async dial(signal) {
|
|
167
200
|
const deadline = Date.now() + this.connectRetryBudgetMs;
|
|
201
|
+
const dialStartedAt = Date.now();
|
|
168
202
|
let lastErr;
|
|
169
203
|
for (;;) {
|
|
170
204
|
signal?.throwIfAborted();
|
|
171
205
|
try {
|
|
172
|
-
|
|
206
|
+
const socket = await this.connectOnce(signal);
|
|
207
|
+
this.onDial?.(Date.now() - dialStartedAt);
|
|
208
|
+
return socket;
|
|
173
209
|
}
|
|
174
210
|
catch (err) {
|
|
175
211
|
if (signal?.aborted)
|
|
@@ -186,6 +222,8 @@ export class VsockAgentTransport {
|
|
|
186
222
|
const handle = this.handle;
|
|
187
223
|
if (handle.kind === 'mtls')
|
|
188
224
|
return this.connectOnceMtls(handle, signal);
|
|
225
|
+
if (handle.kind === 'tcp')
|
|
226
|
+
return this.connectOnceTcp(handle, signal);
|
|
189
227
|
return new Promise((resolve, reject) => {
|
|
190
228
|
const path = handle.kind === 'unix' ? handle.path : handle.udsPath;
|
|
191
229
|
const socket = net.connect({ path });
|
|
@@ -327,12 +365,80 @@ export class VsockAgentTransport {
|
|
|
327
365
|
});
|
|
328
366
|
});
|
|
329
367
|
}
|
|
368
|
+
/**
|
|
369
|
+
* Dial a `tcp` handle: a plain `net.connect({ host, port })`. NO
|
|
370
|
+
* routing preamble and NO ack — there is no relay to route through
|
|
371
|
+
* and no handshake line the guest expects, so the socket is handed
|
|
372
|
+
* to the framing loop the instant it connects, exactly like the
|
|
373
|
+
* `unix` arm above (whose body this deliberately does not touch).
|
|
374
|
+
*/
|
|
375
|
+
connectOnceTcp(handle, signal) {
|
|
376
|
+
return new Promise((resolve, reject) => {
|
|
377
|
+
const socket = net.connect({ host: handle.host, port: handle.port });
|
|
378
|
+
let settled = false;
|
|
379
|
+
const fail = (err) => {
|
|
380
|
+
if (settled)
|
|
381
|
+
return;
|
|
382
|
+
settled = true;
|
|
383
|
+
clearTimeout(timer);
|
|
384
|
+
signal?.removeEventListener('abort', abort);
|
|
385
|
+
socket.destroy();
|
|
386
|
+
reject(err);
|
|
387
|
+
};
|
|
388
|
+
const abort = () => fail(signalError(signal));
|
|
389
|
+
const timer = setTimeout(() => fail(new Error(`connect/handshake timed out after ${this.connectTimeoutMs}ms`)), this.connectTimeoutMs);
|
|
390
|
+
timer.unref();
|
|
391
|
+
socket.once('error', fail);
|
|
392
|
+
if (signal?.aborted) {
|
|
393
|
+
abort();
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
396
|
+
signal?.addEventListener('abort', abort, { once: true });
|
|
397
|
+
socket.once('connect', () => {
|
|
398
|
+
if (settled)
|
|
399
|
+
return;
|
|
400
|
+
settled = true;
|
|
401
|
+
clearTimeout(timer);
|
|
402
|
+
signal?.removeEventListener('abort', abort);
|
|
403
|
+
socket.removeListener('error', fail);
|
|
404
|
+
resolve(socket);
|
|
405
|
+
});
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Fold the handle's credential into a request envelope. Only the
|
|
410
|
+
* `tcp` arm carries a token — the vsock/unix/mtls control channels
|
|
411
|
+
* are host↔guest only and the agent authenticates nothing there, so
|
|
412
|
+
* a request built for those arms passes through unchanged.
|
|
413
|
+
*/
|
|
414
|
+
withCredential(req) {
|
|
415
|
+
if (this.handle.kind === 'tcp' && this.handle.token !== undefined) {
|
|
416
|
+
return { ...req, token: this.handle.token };
|
|
417
|
+
}
|
|
418
|
+
return req;
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Refuse an oversized `tcp` envelope BEFORE dialing. See
|
|
422
|
+
* {@link TCP_PREAUTH_FRAME_LIMIT_BYTES}. A no-op for every other
|
|
423
|
+
* handle kind, which the guest never gates on frame size pre-auth.
|
|
424
|
+
*/
|
|
425
|
+
assertPreauthBudget(payload) {
|
|
426
|
+
if (this.handle.kind !== 'tcp')
|
|
427
|
+
return;
|
|
428
|
+
const size = Buffer.byteLength(payload, 'utf8');
|
|
429
|
+
if (size <= TCP_PREAUTH_FRAME_LIMIT_BYTES)
|
|
430
|
+
return;
|
|
431
|
+
throw new AgentPreauthFrameTooLargeError(`kubernetes tcp transport: request envelope is ${size} bytes, which exceeds the ${TCP_PREAUTH_FRAME_LIMIT_BYTES}-byte limit the guest agent enforces on an unauthenticated connection's first frame (NAMZU_AGENT_MAX_PREAUTH_FRAME_BYTES, default 8 MiB). Every tcp request dials a fresh connection, so this request WOULD be that connection's first frame. Chunking a large body across multiple frames is not implemented; reduce the payload or raise the deployment's NAMZU_AGENT_MAX_PREAUTH_FRAME_BYTES.`);
|
|
432
|
+
}
|
|
330
433
|
/**
|
|
331
434
|
* Send one framed request and read one framed JSON reply (file-IO +
|
|
332
435
|
* healthz). Applies the read-idle timeout so a post-resume hung read
|
|
333
436
|
* is torn down rather than wedging the caller.
|
|
334
437
|
*/
|
|
335
438
|
async request(req, signal) {
|
|
439
|
+
const envelope = this.withCredential(req);
|
|
440
|
+
const payload = JSON.stringify(envelope);
|
|
441
|
+
this.assertPreauthBudget(payload);
|
|
336
442
|
const socket = await this.dial(signal);
|
|
337
443
|
return await new Promise((resolve, reject) => {
|
|
338
444
|
const reader = new FrameReader();
|
|
@@ -403,7 +509,7 @@ export class VsockAgentTransport {
|
|
|
403
509
|
}
|
|
404
510
|
signal?.addEventListener('abort', abort, { once: true });
|
|
405
511
|
idle.bump();
|
|
406
|
-
socket.write(frame(
|
|
512
|
+
socket.write(frame(payload));
|
|
407
513
|
});
|
|
408
514
|
}
|
|
409
515
|
/**
|
|
@@ -412,6 +518,9 @@ export class VsockAgentTransport {
|
|
|
412
518
|
* The agent terminates the stream with a zero-length frame.
|
|
413
519
|
*/
|
|
414
520
|
async executeRaw(body, opts, signal) {
|
|
521
|
+
const envelope = this.withCredential({ op: 'execute', body });
|
|
522
|
+
const payload = JSON.stringify(envelope);
|
|
523
|
+
this.assertPreauthBudget(payload);
|
|
415
524
|
const socket = await this.dial(signal);
|
|
416
525
|
const start = Date.now();
|
|
417
526
|
return await new Promise((resolve, reject) => {
|
|
@@ -500,7 +609,7 @@ export class VsockAgentTransport {
|
|
|
500
609
|
return;
|
|
501
610
|
}
|
|
502
611
|
signal?.addEventListener('abort', abort, { once: true });
|
|
503
|
-
socket.write(frame(
|
|
612
|
+
socket.write(frame(payload));
|
|
504
613
|
});
|
|
505
614
|
}
|
|
506
615
|
/**
|
|
@@ -527,6 +636,22 @@ export class VsockAgentTransport {
|
|
|
527
636
|
async exec(command, argv, opts) {
|
|
528
637
|
return await this.executionController.exec(command, argv, opts);
|
|
529
638
|
}
|
|
639
|
+
/**
|
|
640
|
+
* The raw `/execute` primitive with NO admission/reservation
|
|
641
|
+
* semantics: dial, send one framed request, accumulate the streamed
|
|
642
|
+
* NDJSON reply. Public (unlike the identical-in-spirit
|
|
643
|
+
* {@link reserveExecution}/{@link cancelExecution}, reached through
|
|
644
|
+
* the already-public {@link request}) so a caller running its OWN
|
|
645
|
+
* {@link RemoteExecutionController} — the kubernetes backend's
|
|
646
|
+
* adapter — can reuse this exact dial + framing rather than
|
|
647
|
+
* reimplementing it, while still supplying that controller its own
|
|
648
|
+
* `reserve`/`cancel`/`execute` triple as {@link RemoteExecutionAdapter}
|
|
649
|
+
* requires. Callers that just want a reserve-before-admission `exec`
|
|
650
|
+
* should use {@link execute} or {@link exec} instead.
|
|
651
|
+
*/
|
|
652
|
+
async executeStreamed(body, opts, signal) {
|
|
653
|
+
return await this.executeRaw(body, opts, signal);
|
|
654
|
+
}
|
|
530
655
|
async reserveExecution(signal) {
|
|
531
656
|
const response = await this.request({ op: 'reserve-execution' }, signal);
|
|
532
657
|
if (response.ok === false &&
|
|
@@ -624,7 +749,6 @@ export class VsockAgentTransport {
|
|
|
624
749
|
* the session and its authenticated WebSocket attachment.
|
|
625
750
|
*/
|
|
626
751
|
async openTerminal(options) {
|
|
627
|
-
const socket = await this.dial();
|
|
628
752
|
const request = {
|
|
629
753
|
...(options.command !== undefined ? { command: options.command } : {}),
|
|
630
754
|
...(options.args !== undefined ? { args: options.args } : {}),
|
|
@@ -633,6 +757,9 @@ export class VsockAgentTransport {
|
|
|
633
757
|
cols: options.size.cols,
|
|
634
758
|
rows: options.size.rows,
|
|
635
759
|
};
|
|
760
|
+
const openPayload = JSON.stringify(this.withCredential({ op: 'terminal', body: request }));
|
|
761
|
+
this.assertPreauthBudget(openPayload);
|
|
762
|
+
const socket = await this.dial();
|
|
636
763
|
return await new Promise((resolve, reject) => {
|
|
637
764
|
const KILL_GRACE_MS = 5_000;
|
|
638
765
|
const reader = new FrameReader();
|
|
@@ -759,10 +886,7 @@ export class VsockAgentTransport {
|
|
|
759
886
|
socket.once('error', (err) => finish(err));
|
|
760
887
|
socket.once('close', () => finish(new Error('vsock transport: terminal socket closed before exit')));
|
|
761
888
|
idle.bump();
|
|
762
|
-
socket.write(frame(
|
|
763
|
-
op: 'terminal',
|
|
764
|
-
body: request,
|
|
765
|
-
})));
|
|
889
|
+
socket.write(frame(openPayload));
|
|
766
890
|
});
|
|
767
891
|
}
|
|
768
892
|
/** Open one TCP stream to a service listening on guest loopback. */
|
|
@@ -774,8 +898,10 @@ export class VsockAgentTransport {
|
|
|
774
898
|
if (host !== '127.0.0.1' && host !== '::1') {
|
|
775
899
|
throw new Error('firecracker TCP connections are restricted to guest loopback');
|
|
776
900
|
}
|
|
777
|
-
const socket = await this.dial();
|
|
778
901
|
const request = { host, port: options.port };
|
|
902
|
+
const openPayload = JSON.stringify(this.withCredential({ op: 'tcp-connect', body: request }));
|
|
903
|
+
this.assertPreauthBudget(openPayload);
|
|
904
|
+
const socket = await this.dial();
|
|
779
905
|
return await new Promise((resolve, reject) => {
|
|
780
906
|
const reader = new FrameReader();
|
|
781
907
|
const listeners = new Set();
|
|
@@ -896,10 +1022,7 @@ export class VsockAgentTransport {
|
|
|
896
1022
|
socket.once('error', (error) => finish(error));
|
|
897
1023
|
socket.once('close', () => finish(ready ? null : new Error('vsock TCP socket closed before readiness')));
|
|
898
1024
|
idle.bump();
|
|
899
|
-
socket.write(frame(
|
|
900
|
-
op: 'tcp-connect',
|
|
901
|
-
body: request,
|
|
902
|
-
})));
|
|
1025
|
+
socket.write(frame(openPayload));
|
|
903
1026
|
});
|
|
904
1027
|
}
|
|
905
1028
|
}
|
|
@@ -979,6 +1102,9 @@ function describeHandle(handle) {
|
|
|
979
1102
|
return `vsock:${handle.udsPath}#${handle.port}`;
|
|
980
1103
|
case 'mtls':
|
|
981
1104
|
return `mtls:${handle.host}:${handle.port}/${handle.sandboxId}`;
|
|
1105
|
+
case 'tcp':
|
|
1106
|
+
// Never the token: this string lands in thrown error messages.
|
|
1107
|
+
return `tcp:${handle.host}:${handle.port}`;
|
|
982
1108
|
}
|
|
983
1109
|
}
|
|
984
1110
|
// Internal framing helpers exported for the transport unit tests so the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"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"}
|