fix: 用 YAML 声明 AgentRun runner 保活策略
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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<string, unkn
|
||||
runner: {
|
||||
serviceAccount: spec.deployment.runner.serviceAccount,
|
||||
jobNamePrefix: spec.deployment.runner.jobNamePrefix,
|
||||
idleTimeoutMs: spec.deployment.runner.idleTimeoutMs,
|
||||
apiKeySecretRef: spec.deployment.runner.apiKeySecretRef,
|
||||
egressProxyUrl: spec.deployment.runner.egressProxyUrl,
|
||||
noProxyExtra: spec.deployment.runner.noProxyExtra,
|
||||
@@ -519,6 +521,7 @@ function parseDeployment(input: Record<string, unknown>, 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<string, unknown>, path: string): AgentRun
|
||||
};
|
||||
}
|
||||
|
||||
function positiveIntegerField(input: Record<string, unknown>, 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<string, unknown>, path: string): AgentRunLaneSpec["deployment"]["localPostgres"] {
|
||||
const enabled = booleanField(input, "enabled", path);
|
||||
if (!enabled) {
|
||||
|
||||
@@ -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 } },
|
||||
|
||||
Reference in New Issue
Block a user