From ff7dbc78989e01755a206bf7d31eae63b17623c6 Mon Sep 17 00:00:00 2001 From: Codex Date: Tue, 16 Jun 2026 05:00:40 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=94=A8=20YAML=20=E5=A3=B0=E6=98=8E=20?= =?UTF-8?q?AgentRun=20runner=20=E4=BF=9D=E6=B4=BB=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/agentrun.yaml | 2 ++ scripts/src/agentrun-lanes.ts | 9 +++++++++ scripts/src/agentrun-manifests.ts | 1 + 3 files changed, 12 insertions(+) diff --git a/config/agentrun.yaml b/config/agentrun.yaml index 0d26fa24..6429afba 100644 --- a/config/agentrun.yaml +++ b/config/agentrun.yaml @@ -150,6 +150,7 @@ controlPlane: runner: serviceAccount: agentrun-v01-runner jobNamePrefix: agentrun-v01-runner + idleTimeoutMs: 600000 apiKeySecretRef: name: agentrun-v01-api-key key: HWLAB_API_KEY @@ -300,6 +301,7 @@ controlPlane: runner: serviceAccount: agentrun-v02-runner jobNamePrefix: agentrun-v02-runner + idleTimeoutMs: 172800000 apiKeySecretRef: name: agentrun-v02-api-key key: HWLAB_API_KEY diff --git a/scripts/src/agentrun-lanes.ts b/scripts/src/agentrun-lanes.ts index 2235c31c..b96a2076 100644 --- a/scripts/src/agentrun-lanes.ts +++ b/scripts/src/agentrun-lanes.ts @@ -102,6 +102,7 @@ export interface AgentRunLaneSpec { readonly runner: { readonly serviceAccount: string; readonly jobNamePrefix: string; + readonly idleTimeoutMs: number; readonly apiKeySecretRef: { readonly name: string; readonly key: string }; readonly egressProxyUrl: string | null; readonly noProxyExtra: readonly string[]; @@ -284,6 +285,7 @@ export function agentRunLaneSummary(spec: AgentRunLaneSpec): Record, path: string): AgentRun runner: { serviceAccount: stringField(runner, "serviceAccount", `${path}.runner`), jobNamePrefix: stringField(runner, "jobNamePrefix", `${path}.runner`), + idleTimeoutMs: positiveIntegerField(runner, "idleTimeoutMs", `${path}.runner`), apiKeySecretRef: parseSecretRef(recordField(runner, "apiKeySecretRef", `${path}.runner`), `${path}.runner.apiKeySecretRef`), egressProxyUrl: optionalStringField(runner, "egressProxyUrl", `${path}.runner`) ?? null, noProxyExtra: optionalStringArrayField(runner, "noProxyExtra", `${path}.runner`), @@ -527,6 +530,12 @@ function parseDeployment(input: Record, path: string): AgentRun }; } +function positiveIntegerField(input: Record, key: string, path: string): number { + const value = integerField(input, key, path); + if (value <= 0) throw new Error(`${path}.${key} must be a positive integer`); + return value; +} + function parseLocalPostgres(input: Record, path: string): AgentRunLaneSpec["deployment"]["localPostgres"] { const enabled = booleanField(input, "enabled", path); if (!enabled) { diff --git a/scripts/src/agentrun-manifests.ts b/scripts/src/agentrun-manifests.ts index 902d39f7..99f6fed9 100644 --- a/scripts/src/agentrun-manifests.ts +++ b/scripts/src/agentrun-manifests.ts @@ -437,6 +437,7 @@ function managerEnv(spec: AgentRunLaneSpec, sourceCommit: string, imageRef: stri { name: "AGENTRUN_INTERNAL_MGR_URL", value: spec.runtime.internalBaseUrl }, { name: "AGENTRUN_RUNNER_IMAGE", value: imageRef }, { name: "AGENTRUN_RUNNER_SERVICE_ACCOUNT", value: spec.deployment.runner.serviceAccount }, + { name: "AGENTRUN_RUNNER_IDLE_TIMEOUT_MS", value: String(spec.deployment.runner.idleTimeoutMs) }, ...(spec.deployment.runner.egressProxyUrl === null ? [] : [{ name: "AGENTRUN_RUNNER_EGRESS_PROXY_URL", value: spec.deployment.runner.egressProxyUrl }]), ...(spec.deployment.runner.noProxyExtra.length === 0 ? [] : [{ name: "AGENTRUN_RUNNER_NO_PROXY_EXTRA", value: spec.deployment.runner.noProxyExtra.join(",") }]), { name: "AGENTRUN_API_KEY", valueFrom: { secretKeyRef: spec.deployment.manager.apiKeySecretRef } },