@tickernelz/paperclip-pro-plugin-kubernetes 2026.925.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 (100) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +180 -0
  3. package/dist/adapter-defaults.d.ts +29 -0
  4. package/dist/adapter-defaults.d.ts.map +1 -0
  5. package/dist/adapter-defaults.js +98 -0
  6. package/dist/adapter-defaults.js.map +1 -0
  7. package/dist/adapter-registry.d.ts +64 -0
  8. package/dist/adapter-registry.d.ts.map +1 -0
  9. package/dist/adapter-registry.js +25 -0
  10. package/dist/adapter-registry.js.map +1 -0
  11. package/dist/cilium-network-policy.d.ts +12 -0
  12. package/dist/cilium-network-policy.d.ts.map +1 -0
  13. package/dist/cilium-network-policy.js +60 -0
  14. package/dist/cilium-network-policy.js.map +1 -0
  15. package/dist/file-sync.d.ts +73 -0
  16. package/dist/file-sync.d.ts.map +1 -0
  17. package/dist/file-sync.js +752 -0
  18. package/dist/file-sync.js.map +1 -0
  19. package/dist/image-allowlist.d.ts +18 -0
  20. package/dist/image-allowlist.d.ts.map +1 -0
  21. package/dist/image-allowlist.js +39 -0
  22. package/dist/image-allowlist.js.map +1 -0
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +3 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/job-orchestrator.d.ts +24 -0
  28. package/dist/job-orchestrator.d.ts.map +1 -0
  29. package/dist/job-orchestrator.js +90 -0
  30. package/dist/job-orchestrator.js.map +1 -0
  31. package/dist/kube-client.d.ts +15 -0
  32. package/dist/kube-client.d.ts.map +1 -0
  33. package/dist/kube-client.js +23 -0
  34. package/dist/kube-client.js.map +1 -0
  35. package/dist/lease-lifecycle.d.ts +62 -0
  36. package/dist/lease-lifecycle.d.ts.map +1 -0
  37. package/dist/lease-lifecycle.js +155 -0
  38. package/dist/lease-lifecycle.js.map +1 -0
  39. package/dist/manifest.d.ts +4 -0
  40. package/dist/manifest.d.ts.map +1 -0
  41. package/dist/manifest.js +108 -0
  42. package/dist/manifest.js.map +1 -0
  43. package/dist/network-policy.d.ts +22 -0
  44. package/dist/network-policy.d.ts.map +1 -0
  45. package/dist/network-policy.js +116 -0
  46. package/dist/network-policy.js.map +1 -0
  47. package/dist/plugin.d.ts +3 -0
  48. package/dist/plugin.d.ts.map +1 -0
  49. package/dist/plugin.js +820 -0
  50. package/dist/plugin.js.map +1 -0
  51. package/dist/pod-exec.d.ts +67 -0
  52. package/dist/pod-exec.d.ts.map +1 -0
  53. package/dist/pod-exec.js +401 -0
  54. package/dist/pod-exec.js.map +1 -0
  55. package/dist/pod-spec-builder.d.ts +25 -0
  56. package/dist/pod-spec-builder.d.ts.map +1 -0
  57. package/dist/pod-spec-builder.js +82 -0
  58. package/dist/pod-spec-builder.js.map +1 -0
  59. package/dist/sandbox-cr-builder.d.ts +40 -0
  60. package/dist/sandbox-cr-builder.d.ts.map +1 -0
  61. package/dist/sandbox-cr-builder.js +123 -0
  62. package/dist/sandbox-cr-builder.js.map +1 -0
  63. package/dist/sandbox-cr-orchestrator.d.ts +62 -0
  64. package/dist/sandbox-cr-orchestrator.d.ts.map +1 -0
  65. package/dist/sandbox-cr-orchestrator.js +248 -0
  66. package/dist/sandbox-cr-orchestrator.js.map +1 -0
  67. package/dist/sandbox-orchestrator.d.ts +39 -0
  68. package/dist/sandbox-orchestrator.d.ts.map +1 -0
  69. package/dist/sandbox-orchestrator.js +2 -0
  70. package/dist/sandbox-orchestrator.js.map +1 -0
  71. package/dist/scoped-network-egress.d.ts +19 -0
  72. package/dist/scoped-network-egress.d.ts.map +1 -0
  73. package/dist/scoped-network-egress.js +86 -0
  74. package/dist/scoped-network-egress.js.map +1 -0
  75. package/dist/secret-manager.d.ts +14 -0
  76. package/dist/secret-manager.d.ts.map +1 -0
  77. package/dist/secret-manager.js +39 -0
  78. package/dist/secret-manager.js.map +1 -0
  79. package/dist/tenant-orchestrator.d.ts +35 -0
  80. package/dist/tenant-orchestrator.d.ts.map +1 -0
  81. package/dist/tenant-orchestrator.js +263 -0
  82. package/dist/tenant-orchestrator.js.map +1 -0
  83. package/dist/types.d.ts +279 -0
  84. package/dist/types.d.ts.map +1 -0
  85. package/dist/types.js +65 -0
  86. package/dist/types.js.map +1 -0
  87. package/dist/upload-interceptor.d.ts +44 -0
  88. package/dist/upload-interceptor.d.ts.map +1 -0
  89. package/dist/upload-interceptor.js +114 -0
  90. package/dist/upload-interceptor.js.map +1 -0
  91. package/dist/utils.d.ts +11 -0
  92. package/dist/utils.d.ts.map +1 -0
  93. package/dist/utils.js +51 -0
  94. package/dist/utils.js.map +1 -0
  95. package/dist/worker.d.ts +3 -0
  96. package/dist/worker.d.ts.map +1 -0
  97. package/dist/worker.js +5 -0
  98. package/dist/worker.js.map +1 -0
  99. package/manifests/operator-prerequisites.yaml +22 -0
  100. package/package.json +47 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Exec a command inside a running pod container using the Kubernetes exec API.
3
+ *
4
+ * Uses @kubernetes/client-node's Exec class, which opens a WebSocket to the
5
+ * kube-apiserver and streams stdout/stderr. The statusCallback receives a V1Status
6
+ * with status="Success" or status="Failure" + details.causes[{reason:"ExitCode"}].
7
+ *
8
+ * NOTE: tty=false so stdout and stderr arrive on separate channels. If tty=true
9
+ * were used, they would be merged onto stdout and the exit code would not be
10
+ * reliable from the status callback on older cluster versions.
11
+ *
12
+ * Stdin handling: @kubernetes/client-node v1.x attaches `stdin.on("end", ()
13
+ * => ws.close())`, which closes the entire WebSocket as soon as our PassThrough
14
+ * ends — BEFORE the pod's command has a chance to flush and BEFORE the
15
+ * statusCallback fires. We work around this by removing that listener after
16
+ * exec setup completes so EOF on stdin only signals the pod (via a stdin-
17
+ * channel close frame implicit in our flow) without tearing down the
18
+ * connection. We then close the WebSocket explicitly inside the statusCallback.
19
+ */
20
+ import type { Readable, Writable } from "node:stream";
21
+ import type { KubeConfig } from "@kubernetes/client-node";
22
+ export declare function shQuote(segment: string): string;
23
+ export declare function wrapCommandWithEnv(command: string[], env: Record<string, string> | undefined | null): string[];
24
+ export declare function execInPod(kc: KubeConfig, namespace: string, podName: string, containerName: string, command: string[], stdin?: string | Buffer, timeoutMs?: number, maxStdoutBytes?: number, maxStderrBytes?: number): Promise<{
25
+ exitCode: number;
26
+ stdout: string;
27
+ stderr: string;
28
+ }>;
29
+ /**
30
+ * Streaming variant of {@link execInPod} for bulk file transfer over the pod
31
+ * exec data channel.
32
+ *
33
+ * Where `execInPod` buffers the command's whole stdout into an in-memory string
34
+ * (fine for small command output, fatal for a multi-gigabyte tar), this variant
35
+ * PIPES the exec's stdin from a caller `Readable` and its stdout into a caller
36
+ * `Writable` — so a native file-sync `syncIn`/`syncOut` streams raw tar bytes
37
+ * straight to/from a host file on disk and neither the host nor the pod ever
38
+ * holds the whole payload in memory. Both are intentionally kept side by side:
39
+ * `execInPod` still backs the `environmentExecute` path unchanged.
40
+ *
41
+ * stderr is still accumulated into a (bounded) string: it carries only the
42
+ * script's fail-loud diagnostics, and the pod controls how many bytes it emits,
43
+ * so `maxStderrBytes` fails the exec closed the instant the pod floods the
44
+ * channel — the same DoS guard `execInPod` applies. stdout carries no such cap
45
+ * here because it is streamed to disk, not a string; the caller bounds it with
46
+ * its own streamed-bytes guard on the sink `Writable`.
47
+ *
48
+ * Stdin EOF: the same k8s-client `stdin.on("end", () => ws.close())` quirk noted
49
+ * on `execInPod` applies, so we strip that listener and drive the pod command to
50
+ * self-terminate on the byte count instead of relying on EOF (the caller's
51
+ * `syncIn` script bounds its read with `head -c <N>`). We close the WebSocket
52
+ * ourselves from the status callback.
53
+ *
54
+ * Resolves once the command's exit status is known AND both the stdout sink has
55
+ * finished draining and stderr has ended, so a caller that reads the sink file
56
+ * back after `await` always sees the complete archive.
57
+ */
58
+ export declare function execInPodStreaming(kc: KubeConfig, namespace: string, podName: string, containerName: string, command: string[], io: {
59
+ stdin?: Readable;
60
+ stdout?: Writable;
61
+ timeoutMs?: number;
62
+ maxStderrBytes?: number;
63
+ }): Promise<{
64
+ exitCode: number;
65
+ stderr: string;
66
+ }>;
67
+ //# sourceMappingURL=pod-exec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pod-exec.d.ts","sourceRoot":"","sources":["../src/pod-exec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAS1D,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/C;AASD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EAAE,EACjB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI,GAC7C,MAAM,EAAE,CAQV;AAED,wBAAsB,SAAS,CAC7B,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EACvB,SAAS,CAAC,EAAE,MAAM,EAUlB,cAAc,CAAC,EAAE,MAAM,EAOvB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAyL/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EAAE,EACjB,EAAE,EAAE;IACF,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACA,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsI/C"}
@@ -0,0 +1,401 @@
1
+ /**
2
+ * Exec a command inside a running pod container using the Kubernetes exec API.
3
+ *
4
+ * Uses @kubernetes/client-node's Exec class, which opens a WebSocket to the
5
+ * kube-apiserver and streams stdout/stderr. The statusCallback receives a V1Status
6
+ * with status="Success" or status="Failure" + details.causes[{reason:"ExitCode"}].
7
+ *
8
+ * NOTE: tty=false so stdout and stderr arrive on separate channels. If tty=true
9
+ * were used, they would be merged onto stdout and the exit code would not be
10
+ * reliable from the status callback on older cluster versions.
11
+ *
12
+ * Stdin handling: @kubernetes/client-node v1.x attaches `stdin.on("end", ()
13
+ * => ws.close())`, which closes the entire WebSocket as soon as our PassThrough
14
+ * ends — BEFORE the pod's command has a chance to flush and BEFORE the
15
+ * statusCallback fires. We work around this by removing that listener after
16
+ * exec setup completes so EOF on stdin only signals the pod (via a stdin-
17
+ * channel close frame implicit in our flow) without tearing down the
18
+ * connection. We then close the WebSocket explicitly inside the statusCallback.
19
+ */
20
+ import { Exec } from "@kubernetes/client-node";
21
+ import { PassThrough } from "node:stream";
22
+ // Single-quote a string for safe interpolation into a sh -c script. Wraps in
23
+ // '...' and escapes any embedded single quotes via '\'' (close, escape, reopen).
24
+ export function shQuote(segment) {
25
+ return `'${segment.replace(/'/g, "'\\''")}'`;
26
+ }
27
+ // Wrap a command so the given env vars are exported before it runs. The Kubernetes
28
+ // exec API has no env field, so the only way to give an exec'd process additional
29
+ // env is to run it under a shell that exports the vars and then `exec`s the real
30
+ // command. PATH is deliberately skipped (the caller's PATH is the orchestrator's,
31
+ // not the sandbox image's, and overriding it would break command resolution), and
32
+ // only valid shell identifiers are exported. Returns the original command unchanged
33
+ // when there is nothing to apply.
34
+ export function wrapCommandWithEnv(command, env) {
35
+ const entries = Object.entries(env && typeof env === "object" ? env : {}).filter(([key, value]) => typeof value === "string" && key !== "PATH" && /^[A-Za-z_][A-Za-z0-9_]*$/.test(key));
36
+ if (entries.length === 0)
37
+ return command;
38
+ const exports = entries.map(([k, v]) => `export ${k}=${shQuote(v)};`).join(" ");
39
+ return ["/bin/sh", "-c", `${exports} exec ${command.map(shQuote).join(" ")}`];
40
+ }
41
+ export async function execInPod(kc, namespace, podName, containerName, command, stdin, timeoutMs,
42
+ // Optional host-side bound on accumulated stdout. The pod is an untrusted,
43
+ // attacker-controlled endpoint: a malicious pod can emit unbounded stdout
44
+ // during an exec (e.g. a native file-sync `syncOut` tarball), which would grow
45
+ // the in-memory accumulator without limit — blowing up the worker's RSS and,
46
+ // past V8's ~512 MB max string length, throwing a synchronous RangeError inside
47
+ // the stream `data` listener that no caller can catch (an uncaught exception =
48
+ // worker crash = cross-tenant DoS). When set, accumulation fails closed the
49
+ // instant it would exceed the cap so the caller can fall back. In-pod size
50
+ // checks are worthless here — only the host can be trusted to enforce this.
51
+ maxStdoutBytes,
52
+ // Same bound for the stderr channel. stderr is equally pod-controlled: a
53
+ // malicious pod can emit an unbounded stderr stream during the SAME exec (e.g.
54
+ // crafted tar/realpath diagnostics on the `syncOut` path) and trigger the
55
+ // identical uncaught-`RangeError` worker crash. When set, stderr accumulation
56
+ // fails closed at the cap; regardless of the cap, the `+=` is guarded so a
57
+ // max-string-length `RangeError` can never escape as an uncaught exception.
58
+ maxStderrBytes) {
59
+ const exec = new Exec(kc);
60
+ const stdoutStream = new PassThrough();
61
+ const stderrStream = new PassThrough();
62
+ const stdinPayload = Buffer.isBuffer(stdin) ? stdin
63
+ : typeof stdin === "string" && stdin.length > 0 ? Buffer.from(stdin, "utf-8")
64
+ : null;
65
+ const stdinStream = stdinPayload ? new PassThrough() : null;
66
+ // When stdin is provided, wrap the command so its stdin is bounded by
67
+ // `head -c <N>`. Any program reading stdin (`cat`, `claude --print -`,
68
+ // `base64 -d`, etc.) waits for EOF to terminate the read. With the k8s
69
+ // client v0.21.0 stdin-end -> ws.close() limitation (see comment above)
70
+ // we can't reliably deliver EOF without tearing down the exec — so we
71
+ // pipe `head -c <N>` (which exits after exactly N bytes) into the
72
+ // original command. The pipe propagates the exit code of the RHS so the
73
+ // statusCallback still reflects the real command's exit status.
74
+ //
75
+ // NOTE: `stdinPayload.length` is the Buffer's BYTE length (correct for
76
+ // `head -c` which counts bytes). Do NOT substitute `string.length` here
77
+ // if the input is ever non-ASCII — UTF-8 multi-byte sequences would
78
+ // give a byte count that differs from JS character count.
79
+ const effectiveCommand = stdinPayload
80
+ ? ["/bin/sh", "-c", `head -c ${stdinPayload.length} | ${command.map(shQuote).join(" ")}`]
81
+ : command;
82
+ let stdoutData = "";
83
+ let stderrData = "";
84
+ let stdoutBytes = 0;
85
+ let stderrBytes = 0;
86
+ return await new Promise((resolve, reject) => {
87
+ let ws = null;
88
+ let resolved = false;
89
+ let pendingExitCode = null;
90
+ let stdoutEnded = false;
91
+ let stderrEnded = false;
92
+ // The k8s client writes stdout/stderr to our PassThroughs synchronously
93
+ // and calls statusCallback in the same WS message handler. But `data`
94
+ // events on the PassThroughs fire on process.nextTick, so resolving
95
+ // inside statusCallback captures stdoutData/stderrData BEFORE the final
96
+ // bytes have been appended. Wait for both streams' `end` events (which
97
+ // the k8s client triggers via `stream.end()` when it processes the
98
+ // status frame) so all buffered data has been drained into our string
99
+ // accumulators before resolving.
100
+ //
101
+ // Watchdog: if the WebSocket drops silently after setup (network blip,
102
+ // pod OOM-killed mid-exec, apiserver restart) the statusCallback never
103
+ // fires and the stream `end` events never arrive. Without a timer the
104
+ // calling worker hangs forever. Reject with a clear error so the caller
105
+ // can retry or surface the failure.
106
+ let watchdog = null;
107
+ if (typeof timeoutMs === "number" && timeoutMs > 0) {
108
+ watchdog = setTimeout(() => {
109
+ if (resolved)
110
+ return;
111
+ resolved = true;
112
+ try {
113
+ ws?.close();
114
+ }
115
+ catch { /* ignore */ }
116
+ reject(new Error(`execInPod timed out after ${timeoutMs}ms (pod=${podName}, container=${containerName}, cmd0=${effectiveCommand[0] ?? ""}). The WebSocket likely dropped before the command produced a status frame.`));
117
+ }, timeoutMs);
118
+ }
119
+ const tryFinish = () => {
120
+ if (resolved)
121
+ return;
122
+ if (pendingExitCode === null)
123
+ return;
124
+ if (!stdoutEnded || !stderrEnded)
125
+ return;
126
+ resolved = true;
127
+ if (watchdog)
128
+ clearTimeout(watchdog);
129
+ try {
130
+ ws?.close();
131
+ }
132
+ catch { /* ignore */ }
133
+ resolve({ exitCode: pendingExitCode, stdout: stdoutData, stderr: stderrData });
134
+ };
135
+ // Fail the whole exec closed, tearing down the WebSocket so the pod stops
136
+ // streaming. Used by the stdout cap below; the `resolved` guard makes it a
137
+ // no-op if the exec already finished.
138
+ const failClosed = (err) => {
139
+ if (resolved)
140
+ return;
141
+ resolved = true;
142
+ if (watchdog)
143
+ clearTimeout(watchdog);
144
+ try {
145
+ ws?.close();
146
+ }
147
+ catch { /* ignore */ }
148
+ reject(err);
149
+ };
150
+ // Accumulate stdout inside the executor so the cap can reject before an
151
+ // unbounded pod payload exhausts memory. Once resolved (finished, timed
152
+ // out, or capped) further chunks are dropped rather than appended.
153
+ stdoutStream.on("data", (chunk) => {
154
+ if (resolved)
155
+ return;
156
+ if (typeof maxStdoutBytes === "number" && maxStdoutBytes >= 0) {
157
+ stdoutBytes += chunk.length;
158
+ if (stdoutBytes > maxStdoutBytes) {
159
+ failClosed(new Error(`execInPod stdout exceeded the ${maxStdoutBytes}-byte cap (pod=${podName}, container=${containerName}); the sandbox produced more output than the buffer allows.`));
160
+ return;
161
+ }
162
+ }
163
+ try {
164
+ stdoutData += chunk.toString("utf-8");
165
+ }
166
+ catch (err) {
167
+ // Belt-and-suspenders: even under an explicit cap (or with none set),
168
+ // never let a `+=` RangeError at V8's max string length escape this
169
+ // listener as an uncaught exception.
170
+ failClosed(err instanceof Error ? err : new Error(String(err)));
171
+ }
172
+ });
173
+ // stderr is pod-controlled too — bound it with the same fail-closed policy
174
+ // and, unconditionally, guard the `+=` so a max-string-length `RangeError`
175
+ // can never escape this listener as an uncaught (worker-crashing) exception.
176
+ stderrStream.on("data", (chunk) => {
177
+ if (resolved)
178
+ return;
179
+ if (typeof maxStderrBytes === "number" && maxStderrBytes >= 0) {
180
+ stderrBytes += chunk.length;
181
+ if (stderrBytes > maxStderrBytes) {
182
+ failClosed(new Error(`execInPod stderr exceeded the ${maxStderrBytes}-byte cap (pod=${podName}, container=${containerName}); the sandbox produced more output than the buffer allows.`));
183
+ return;
184
+ }
185
+ }
186
+ try {
187
+ stderrData += chunk.toString("utf-8");
188
+ }
189
+ catch (err) {
190
+ failClosed(err instanceof Error ? err : new Error(String(err)));
191
+ }
192
+ });
193
+ stdoutStream.on("end", () => { stdoutEnded = true; tryFinish(); });
194
+ stderrStream.on("end", () => { stderrEnded = true; tryFinish(); });
195
+ const execPromise = exec.exec(namespace, podName, containerName, effectiveCommand, stdoutStream, stderrStream, stdinStream, false, // tty=false: keep stdout/stderr on separate channels
196
+ (status) => {
197
+ if (status.status === "Success") {
198
+ pendingExitCode = 0;
199
+ }
200
+ else {
201
+ const causes = status.details?.causes ?? [];
202
+ const exitCodeCause = causes.find((c) => c.reason === "ExitCode");
203
+ pendingExitCode = exitCodeCause?.message
204
+ ? Number(exitCodeCause.message)
205
+ : 1;
206
+ }
207
+ tryFinish();
208
+ });
209
+ execPromise
210
+ .then((webSocket) => {
211
+ ws = webSocket;
212
+ if (stdinStream && stdinPayload) {
213
+ // Remove the default `end -> ws.close()` listener that k8s client
214
+ // attaches in handleStandardInput; it tears down the connection
215
+ // before the pod's command can finish flushing. We manage ws
216
+ // closure inside `tryFinish()` instead.
217
+ stdinStream.removeAllListeners("end");
218
+ stdinStream.end(stdinPayload);
219
+ }
220
+ else if (stdinStream) {
221
+ stdinStream.removeAllListeners("end");
222
+ stdinStream.end();
223
+ }
224
+ })
225
+ .catch((err) => {
226
+ if (resolved)
227
+ return;
228
+ resolved = true;
229
+ if (watchdog)
230
+ clearTimeout(watchdog);
231
+ reject(err);
232
+ });
233
+ });
234
+ }
235
+ /**
236
+ * Streaming variant of {@link execInPod} for bulk file transfer over the pod
237
+ * exec data channel.
238
+ *
239
+ * Where `execInPod` buffers the command's whole stdout into an in-memory string
240
+ * (fine for small command output, fatal for a multi-gigabyte tar), this variant
241
+ * PIPES the exec's stdin from a caller `Readable` and its stdout into a caller
242
+ * `Writable` — so a native file-sync `syncIn`/`syncOut` streams raw tar bytes
243
+ * straight to/from a host file on disk and neither the host nor the pod ever
244
+ * holds the whole payload in memory. Both are intentionally kept side by side:
245
+ * `execInPod` still backs the `environmentExecute` path unchanged.
246
+ *
247
+ * stderr is still accumulated into a (bounded) string: it carries only the
248
+ * script's fail-loud diagnostics, and the pod controls how many bytes it emits,
249
+ * so `maxStderrBytes` fails the exec closed the instant the pod floods the
250
+ * channel — the same DoS guard `execInPod` applies. stdout carries no such cap
251
+ * here because it is streamed to disk, not a string; the caller bounds it with
252
+ * its own streamed-bytes guard on the sink `Writable`.
253
+ *
254
+ * Stdin EOF: the same k8s-client `stdin.on("end", () => ws.close())` quirk noted
255
+ * on `execInPod` applies, so we strip that listener and drive the pod command to
256
+ * self-terminate on the byte count instead of relying on EOF (the caller's
257
+ * `syncIn` script bounds its read with `head -c <N>`). We close the WebSocket
258
+ * ourselves from the status callback.
259
+ *
260
+ * Resolves once the command's exit status is known AND both the stdout sink has
261
+ * finished draining and stderr has ended, so a caller that reads the sink file
262
+ * back after `await` always sees the complete archive.
263
+ */
264
+ export async function execInPodStreaming(kc, namespace, podName, containerName, command, io) {
265
+ const exec = new Exec(kc);
266
+ const stdoutStream = new PassThrough();
267
+ const stderrStream = new PassThrough();
268
+ const stdinStream = io.stdin ? new PassThrough() : null;
269
+ let stderrData = "";
270
+ let stderrBytes = 0;
271
+ return await new Promise((resolve, reject) => {
272
+ let ws = null;
273
+ let resolved = false;
274
+ let pendingExitCode = null;
275
+ let stdoutDone = false;
276
+ let stderrEnded = false;
277
+ let watchdog = null;
278
+ if (typeof io.timeoutMs === "number" && io.timeoutMs > 0) {
279
+ watchdog = setTimeout(() => {
280
+ if (resolved)
281
+ return;
282
+ resolved = true;
283
+ try {
284
+ ws?.close();
285
+ }
286
+ catch { /* ignore */ }
287
+ reject(new Error(`execInPodStreaming timed out after ${io.timeoutMs}ms (pod=${podName}, container=${containerName}, cmd0=${command[0] ?? ""}). The WebSocket likely dropped before the command produced a status frame.`));
288
+ }, io.timeoutMs);
289
+ }
290
+ const tryFinish = () => {
291
+ if (resolved)
292
+ return;
293
+ if (pendingExitCode === null)
294
+ return;
295
+ if (!stdoutDone || !stderrEnded)
296
+ return;
297
+ resolved = true;
298
+ if (watchdog)
299
+ clearTimeout(watchdog);
300
+ try {
301
+ ws?.close();
302
+ }
303
+ catch { /* ignore */ }
304
+ resolve({ exitCode: pendingExitCode, stderr: stderrData });
305
+ };
306
+ // Fail the whole exec closed, tearing down the WebSocket so the pod stops
307
+ // streaming. Fired by a sink error (e.g. the caller's disk guard tripping)
308
+ // or a stream error; the `resolved` guard makes it a no-op once finished.
309
+ const failClosed = (err) => {
310
+ if (resolved)
311
+ return;
312
+ resolved = true;
313
+ if (watchdog)
314
+ clearTimeout(watchdog);
315
+ try {
316
+ ws?.close();
317
+ }
318
+ catch { /* ignore */ }
319
+ try {
320
+ stdinStream?.destroy();
321
+ }
322
+ catch { /* ignore */ }
323
+ reject(err);
324
+ };
325
+ // Pipe stdout to the caller sink (streamed to disk), or drain it if the
326
+ // caller wants none. Piping with the default `end: true` ends the sink when
327
+ // the pod's stdout closes, so the sink's `finish` marks the archive fully
328
+ // written. A sink error (the caller's streamed-bytes guard, a full disk)
329
+ // fails the exec closed and stops the pod.
330
+ if (io.stdout) {
331
+ const sink = io.stdout;
332
+ sink.on("error", failClosed);
333
+ stdoutStream.on("error", failClosed);
334
+ sink.on("finish", () => { stdoutDone = true; tryFinish(); });
335
+ stdoutStream.pipe(sink);
336
+ }
337
+ else {
338
+ stdoutStream.on("data", () => { });
339
+ stdoutStream.on("end", () => { stdoutDone = true; tryFinish(); });
340
+ stdoutStream.on("error", failClosed);
341
+ }
342
+ // stderr is pod-controlled — bound it with the same fail-closed policy as
343
+ // execInPod and guard the `+=` so a max-string-length RangeError can never
344
+ // escape as an uncaught (worker-crashing) exception.
345
+ stderrStream.on("data", (chunk) => {
346
+ if (resolved)
347
+ return;
348
+ if (typeof io.maxStderrBytes === "number" && io.maxStderrBytes >= 0) {
349
+ stderrBytes += chunk.length;
350
+ if (stderrBytes > io.maxStderrBytes) {
351
+ failClosed(new Error(`execInPodStreaming stderr exceeded the ${io.maxStderrBytes}-byte cap (pod=${podName}, container=${containerName}); the sandbox produced more diagnostics than the buffer allows.`));
352
+ return;
353
+ }
354
+ }
355
+ try {
356
+ stderrData += chunk.toString("utf-8");
357
+ }
358
+ catch (err) {
359
+ failClosed(err instanceof Error ? err : new Error(String(err)));
360
+ }
361
+ });
362
+ stderrStream.on("end", () => { stderrEnded = true; tryFinish(); });
363
+ const execPromise = exec.exec(namespace, podName, containerName, command, stdoutStream, stderrStream, stdinStream, false, // tty=false: keep stdout/stderr on separate channels
364
+ (status) => {
365
+ if (status.status === "Success") {
366
+ pendingExitCode = 0;
367
+ }
368
+ else {
369
+ const causes = status.details?.causes ?? [];
370
+ const exitCodeCause = causes.find((c) => c.reason === "ExitCode");
371
+ pendingExitCode = exitCodeCause?.message ? Number(exitCodeCause.message) : 1;
372
+ }
373
+ tryFinish();
374
+ });
375
+ execPromise
376
+ .then((webSocket) => {
377
+ ws = webSocket;
378
+ if (stdinStream && io.stdin) {
379
+ // Strip the default `end -> ws.close()` listener (see execInPod) so
380
+ // EOF on our stdin only signals the pod, then stream the caller's
381
+ // source into the exec stdin channel. A source error fails closed.
382
+ stdinStream.removeAllListeners("end");
383
+ io.stdin.on("error", failClosed);
384
+ io.stdin.pipe(stdinStream);
385
+ }
386
+ else if (stdinStream) {
387
+ stdinStream.removeAllListeners("end");
388
+ stdinStream.end();
389
+ }
390
+ })
391
+ .catch((err) => {
392
+ if (resolved)
393
+ return;
394
+ resolved = true;
395
+ if (watchdog)
396
+ clearTimeout(watchdog);
397
+ reject(err);
398
+ });
399
+ });
400
+ }
401
+ //# sourceMappingURL=pod-exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pod-exec.js","sourceRoot":"","sources":["../src/pod-exec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export interface BuildJobManifestInput {
2
+ namespace: string;
3
+ jobName: string;
4
+ adapterType: string;
5
+ image: string;
6
+ envSecretName: string;
7
+ serviceAccountName: string;
8
+ labels: Record<string, string>;
9
+ resources: {
10
+ requests?: {
11
+ cpu?: string;
12
+ memory?: string;
13
+ };
14
+ limits?: {
15
+ cpu?: string;
16
+ memory?: string;
17
+ };
18
+ };
19
+ runtimeClassName?: string;
20
+ activeDeadlineSec: number;
21
+ ttlSecondsAfterFinished: number;
22
+ imagePullSecrets?: string[];
23
+ }
24
+ export declare function buildJobManifest(input: BuildJobManifestInput): Record<string, unknown>;
25
+ //# sourceMappingURL=pod-spec-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pod-spec-builder.d.ts","sourceRoot":"","sources":["../src/pod-spec-builder.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE;QACT,QAAQ,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7C,MAAM,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC5C,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgFtF"}