fix: migrate code queue control plane to k3s

This commit is contained in:
Codex
2026-05-16 12:01:09 +00:00
parent 83ed99f659
commit 111ec9f1eb
40 changed files with 419 additions and 366 deletions
+37 -37
View File
@@ -61,8 +61,8 @@ const SERVICE_CHECK_NAMES = [
"microservice:catalog-todo-note",
"microservice:catalog-oa-event-flow",
"microservice:catalog-code-queue",
"microservice:v3sctl-adapter-status",
"microservice:v3sctl-control-plane",
"microservice:k3sctl-adapter-status",
"microservice:k3sctl-control-plane",
"microservice:catalog-filebrowser",
"microservice:filebrowser-health",
"microservice:filebrowser-webui",
@@ -1028,8 +1028,8 @@ async function serviceChecks(config: UniDeskConfig, urls: PublicUrls, checks: E2
const oaEventFlowEvents = dockerCoreJson("/api/microservices/oa-event-flow/proxy/api/events?limit=10");
const oaEventFlowPipelineEvents = dockerCoreJson("/api/microservices/oa-event-flow/proxy/api/events?tags=service:pipeline&limit=10");
const oaEventFlowStats = dockerCoreJson("/api/microservices/oa-event-flow/proxy/api/stats/trace?limit=10");
const v3sctlStatus = dockerCoreJson("/api/microservices/v3sctl-adapter/status");
const v3sctlControlPlane = dockerCoreJson("/api/microservices/v3sctl-adapter/proxy/api/control-plane");
const k3sctlStatus = dockerCoreJson("/api/microservices/k3sctl-adapter/status");
const k3sctlControlPlane = dockerCoreJson("/api/microservices/k3sctl-adapter/proxy/api/control-plane");
const codeQueueStatus = dockerCoreJson("/api/microservices/code-queue/status");
const codeQueueHealth = dockerCoreJson("/api/microservices/code-queue/health");
const codeQueueTasks = dockerCoreJson("/api/microservices/code-queue/proxy/api/tasks/overview?limit=5&transcriptLimit=1&compact=1&afterSeq=0&preferId=");
@@ -1106,7 +1106,7 @@ async function serviceChecks(config: UniDeskConfig, urls: PublicUrls, checks: E2
const oaEventFlowStatsBody = (oaEventFlowStats as { body?: { ok?: boolean; stats?: unknown[]; returned?: number } }).body;
const codeQueueHealthBody = (codeQueueHealth as { body?: { ok?: boolean; egressProxy?: { connected?: boolean }; queue?: { defaultModel?: string; judgeConfigured?: boolean; modelReasoningEfforts?: Record<string, string> } } }).body;
const codeQueueTasksBody = (codeQueueTasks as { body?: { ok?: boolean; queue?: { defaultModel?: string; modelReasoningEfforts?: Record<string, string> }; tasks?: unknown[] } }).body;
const v3sctlControlPlaneBody = (v3sctlControlPlane as { body?: {
const k3sctlControlPlaneBody = (k3sctlControlPlane as { body?: {
ok?: boolean;
clusterId?: string;
noFallback?: boolean;
@@ -1123,8 +1123,8 @@ async function serviceChecks(config: UniDeskConfig, urls: PublicUrls, checks: E2
instances?: Array<{ id?: string; healthy?: boolean; proxyMode?: string }>;
}>;
} }).body;
const v3sctlCodeQueueService = v3sctlControlPlaneBody?.services?.find((service) => service.id === "code-queue");
const v3sctlD518Instance = v3sctlCodeQueueService?.instances?.find((instance) => instance.id === "D518");
const k3sctlCodeQueueService = k3sctlControlPlaneBody?.services?.find((service) => service.id === "code-queue");
const k3sctlD518Instance = k3sctlCodeQueueService?.instances?.find((instance) => instance.id === "D518");
const filebrowserHealthBody = (filebrowserHealth as { body?: { status?: string } }).body;
const filebrowserD601HealthBody = (filebrowserD601Health as { body?: { status?: string } }).body;
const filebrowserWebuiText = String((filebrowserWebui as { body?: { text?: string } }).body?.text || "");
@@ -1159,39 +1159,39 @@ async function serviceChecks(config: UniDeskConfig, urls: PublicUrls, checks: E2
(microservices as { ok?: boolean }).ok === true
&& codeQueue?.providerId === "D601"
&& codeQueue.backend?.public === false
&& codeQueue.backend?.proxyMode === "v3sctl-adapter-http"
&& codeQueue.deployment?.mode === "v3sctl-managed"
&& codeQueue.runtime?.orchestrator === "v3sctl"
&& codeQueue.backend?.proxyMode === "k3sctl-adapter-http"
&& codeQueue.deployment?.mode === "k3sctl-managed"
&& codeQueue.runtime?.orchestrator === "k3sctl"
&& codeQueue.runtime?.container === null,
{ microservices });
addSelectedCheck(checks, options, "microservice:v3sctl-adapter-status",
(v3sctlStatus as { ok?: boolean; body?: { microservice?: { id?: string; providerId?: string } } }).ok === true
&& (v3sctlStatus as { body?: { microservice?: { id?: string; providerId?: string } } }).body?.microservice?.id === "v3sctl-adapter"
&& (v3sctlStatus as { body?: { microservice?: { id?: string; providerId?: string } } }).body?.microservice?.providerId === "D601",
v3sctlStatus);
addSelectedCheck(checks, options, "microservice:v3sctl-control-plane",
(v3sctlControlPlane as { ok?: boolean }).ok === true
&& v3sctlControlPlaneBody?.ok === true
&& v3sctlControlPlaneBody.clusterId === "unidesk-v8s"
&& v3sctlControlPlaneBody.noFallback === true
&& v3sctlControlPlaneBody.managedServicesHealthy === true
&& v3sctlControlPlaneBody.kubeApiProxy?.mode === "kubernetes-api-service-proxy"
&& v3sctlCodeQueueService?.status === "healthy"
&& v3sctlCodeQueueService?.topologyComplete === true
&& v3sctlCodeQueueService?.servingHealthy === true
&& v3sctlCodeQueueService?.active?.id === "D601"
&& v3sctlCodeQueueService?.active?.healthy === true
&& (v3sctlCodeQueueService?.presentNodeIds ?? []).includes("D601")
&& (v3sctlCodeQueueService?.presentNodeIds ?? []).includes("D518")
&& (v3sctlCodeQueueService?.missingNodeIds ?? []).length === 0
&& v3sctlD518Instance?.healthy === true
&& v3sctlD518Instance?.proxyMode === "kubernetes-api-pod-readiness",
addSelectedCheck(checks, options, "microservice:k3sctl-adapter-status",
(k3sctlStatus as { ok?: boolean; body?: { microservice?: { id?: string; providerId?: string } } }).ok === true
&& (k3sctlStatus as { body?: { microservice?: { id?: string; providerId?: string } } }).body?.microservice?.id === "k3sctl-adapter"
&& (k3sctlStatus as { body?: { microservice?: { id?: string; providerId?: string } } }).body?.microservice?.providerId === "D601",
k3sctlStatus);
addSelectedCheck(checks, options, "microservice:k3sctl-control-plane",
(k3sctlControlPlane as { ok?: boolean }).ok === true
&& k3sctlControlPlaneBody?.ok === true
&& k3sctlControlPlaneBody.clusterId === "unidesk-k3s"
&& k3sctlControlPlaneBody.noFallback === true
&& k3sctlControlPlaneBody.managedServicesHealthy === true
&& k3sctlControlPlaneBody.kubeApiProxy?.mode === "kubernetes-api-service-proxy"
&& k3sctlCodeQueueService?.status === "healthy"
&& k3sctlCodeQueueService?.topologyComplete === true
&& k3sctlCodeQueueService?.servingHealthy === true
&& k3sctlCodeQueueService?.active?.id === "D601"
&& k3sctlCodeQueueService?.active?.healthy === true
&& (k3sctlCodeQueueService?.presentNodeIds ?? []).includes("D601")
&& (k3sctlCodeQueueService?.presentNodeIds ?? []).includes("D518")
&& (k3sctlCodeQueueService?.missingNodeIds ?? []).length === 0
&& k3sctlD518Instance?.healthy === true
&& k3sctlD518Instance?.proxyMode === "kubernetes-api-pod-readiness",
{
ok: (v3sctlControlPlane as { ok?: boolean }).ok,
clusterId: v3sctlControlPlaneBody?.clusterId,
noFallback: v3sctlControlPlaneBody?.noFallback,
kubeApiProxy: v3sctlControlPlaneBody?.kubeApiProxy,
service: v3sctlCodeQueueService,
ok: (k3sctlControlPlane as { ok?: boolean }).ok,
clusterId: k3sctlControlPlaneBody?.clusterId,
noFallback: k3sctlControlPlaneBody?.noFallback,
kubeApiProxy: k3sctlControlPlaneBody?.kubeApiProxy,
service: k3sctlCodeQueueService,
});
addSelectedCheck(checks, options, "microservice:catalog-filebrowser", (microservices as { ok?: boolean }).ok === true
&& filebrowser?.providerId === "D518"