feat: add amd64 node support

This commit is contained in:
2026-08-28 21:19:50 +07:00 Unverified
parent 23b4ccaa80
commit a1c3298f02
10 changed files with 856 additions and 177 deletions
+32 -15
View File
@@ -2,6 +2,17 @@ import { defineCommand } from "citty";
import { getPodContainerName, getPodForDeployment } from "../lib/shared";
import { execClient } from "../lib/k8s";
function prepareInteractiveStdin(): (() => void) | undefined {
if (!process.stdin.isTTY) return;
process.stdin.setRawMode?.(true);
process.stdin.resume();
return () => {
process.stdin.setRawMode?.(false);
process.stdin.pause();
};
}
export const exec = defineCommand({
meta: {
name: "exec",
@@ -23,21 +34,27 @@ export const exec = defineCommand({
const podName = pod.metadata?.name;
if (!podName) throw new Error(`No pod name found for deployment ${deployment}`);
const socket = await execClient.exec(
namespace,
podName,
getPodContainerName(pod),
command,
process.stdout,
process.stderr,
process.stdin,
Boolean(process.stdin.isTTY),
);
const restoreStdin = prepareInteractiveStdin();
await new Promise<void>((resolve, reject) => {
socket.onclose = () => resolve();
socket.onerror = (event: { error?: unknown }) =>
reject(event.error ?? new Error("Exec failed"));
});
try {
const socket = await execClient.exec(
namespace,
podName,
getPodContainerName(pod),
command,
process.stdout,
process.stderr,
process.stdin,
Boolean(process.stdin.isTTY),
);
await new Promise<void>((resolve, reject) => {
socket.onclose = () => resolve();
socket.onerror = (event: { error?: unknown }) =>
reject(event.error ?? new Error("Exec failed"));
});
} finally {
restoreStdin?.();
}
},
});