Migrate Code Queue infra target to G14

This commit is contained in:
Codex
2026-05-24 14:06:58 +00:00
parent 0f22b92436
commit 7cc60e9785
12 changed files with 3713 additions and 115 deletions
+2 -1
View File
@@ -63,8 +63,9 @@ fn read_microservices_env() -> anyhow::Result<Vec<MicroserviceConfig>> {
}
if service.deployment.mode != "unidesk-direct"
&& service.deployment.mode != "k3sctl-managed"
&& service.deployment.mode != "internal-sidecar"
{
bail!("MICROSERVICES_JSON[{index}].deployment.mode must be unidesk-direct or k3sctl-managed");
bail!("MICROSERVICES_JSON[{index}].deployment.mode must be unidesk-direct, k3sctl-managed, or internal-sidecar");
}
service.backend.allowed_methods = service
.backend
@@ -175,7 +175,15 @@ fn json_i64(value: &Value, path: &[&str]) -> Option<i64> {
current.as_i64()
}
fn code_queue_route_postgres_check(scheduler_body: &Value) -> Value {
fn code_queue_infra_service_names(service: &MicroserviceConfig) -> (String, String) {
let provider_slug = service.provider_id.to_ascii_lowercase();
(
format!("{provider_slug}-provider-egress-proxy"),
format!("{provider_slug}-tcp-egress-gateway"),
)
}
fn code_queue_route_postgres_check(scheduler_body: &Value, tcp_egress_service: &str) -> Value {
let storage = scheduler_body
.get("queue")
.and_then(|queue| queue.get("storage"))
@@ -187,7 +195,7 @@ fn code_queue_route_postgres_check(scheduler_body: &Value) -> Value {
let last_error = storage.get("lastError").cloned().unwrap_or(Value::Null);
json!({
"ok": postgres_ready && last_error.is_null(),
"route": "d601-tcp-egress-gateway.unidesk.svc.cluster.local:15432",
"route": format!("{tcp_egress_service}.unidesk.svc.cluster.local:15432"),
"postgresReady": postgres_ready,
"lastError": last_error,
"source": "scheduler.health.queue.storage"
@@ -1746,17 +1754,18 @@ async fn code_queue_health_response(
&& scheduler_body.get("ok").and_then(Value::as_bool) != Some(false);
let scheduler_diagnostics =
code_queue_adapter_diagnostics(state, service, "code-queue-scheduler").await;
let (provider_egress_service, tcp_egress_service) = code_queue_infra_service_names(service);
let provider_egress_diagnostics =
code_queue_adapter_diagnostics(state, service, "d601-provider-egress-proxy").await;
code_queue_adapter_diagnostics(state, service, &provider_egress_service).await;
let tcp_egress_diagnostics =
code_queue_adapter_diagnostics(state, service, "d601-tcp-egress-gateway").await;
code_queue_adapter_diagnostics(state, service, &tcp_egress_service).await;
let scheduler_dependency =
code_queue_dependency_check("code-queue-scheduler", &scheduler_diagnostics);
let provider_egress =
code_queue_dependency_check("d601-provider-egress-proxy", &provider_egress_diagnostics);
code_queue_dependency_check(&provider_egress_service, &provider_egress_diagnostics);
let tcp_egress =
code_queue_dependency_check("d601-tcp-egress-gateway", &tcp_egress_diagnostics);
let postgres_route = code_queue_route_postgres_check(&scheduler_body);
code_queue_dependency_check(&tcp_egress_service, &tcp_egress_diagnostics);
let postgres_route = code_queue_route_postgres_check(&scheduler_body, &tcp_egress_service);
let stale_reconcile = code_queue_reconcile_check(&scheduler_body);
let dependencies_ok = scheduler_dependency
.get("ok")
@@ -1791,15 +1800,15 @@ async fn code_queue_health_response(
"scheduler": { "ok": scheduler_healthy, "status": scheduler_status, "body": scheduler_body, "timedOut": false, "requiredFor": ["running task steer", "running task interrupt", "scheduler claim/runner execution", "dev-container control"] },
"checks": {
"scheduler": scheduler_dependency,
"d601ProviderEgressProxy": provider_egress,
"d601TcpEgressGateway": tcp_egress,
"providerEgressProxy": provider_egress,
"tcpEgressGateway": tcp_egress,
"postgresRoute": postgres_route,
"staleActiveReconcile": stale_reconcile
},
"diagnostics": {
"scheduler": scheduler_diagnostics,
"d601ProviderEgressProxy": provider_egress_diagnostics,
"d601TcpEgressGateway": tcp_egress_diagnostics
"providerEgressProxy": provider_egress_diagnostics,
"tcpEgressGateway": tcp_egress_diagnostics
},
});
if head_only {
@@ -1981,17 +1990,18 @@ async fn k3sctl_managed_diagnostics_response(
.unwrap_or(Value::Null);
let scheduler_diagnostics =
code_queue_adapter_diagnostics(state, service, "code-queue-scheduler").await;
let (provider_egress_service, tcp_egress_service) = code_queue_infra_service_names(service);
let provider_egress_diagnostics =
code_queue_adapter_diagnostics(state, service, "d601-provider-egress-proxy").await;
code_queue_adapter_diagnostics(state, service, &provider_egress_service).await;
let tcp_egress_diagnostics =
code_queue_adapter_diagnostics(state, service, "d601-tcp-egress-gateway").await;
code_queue_adapter_diagnostics(state, service, &tcp_egress_service).await;
let scheduler_dependency =
code_queue_dependency_check("code-queue-scheduler", &scheduler_diagnostics);
let provider_egress =
code_queue_dependency_check("d601-provider-egress-proxy", &provider_egress_diagnostics);
code_queue_dependency_check(&provider_egress_service, &provider_egress_diagnostics);
let tcp_egress =
code_queue_dependency_check("d601-tcp-egress-gateway", &tcp_egress_diagnostics);
let postgres_route = code_queue_route_postgres_check(&scheduler_body);
code_queue_dependency_check(&tcp_egress_service, &tcp_egress_diagnostics);
let postgres_route = code_queue_route_postgres_check(&scheduler_body, &tcp_egress_service);
let stale_reconcile = code_queue_reconcile_check(&scheduler_body);
code_queue_ok = scheduler_dependency
.get("ok")
@@ -2015,20 +2025,20 @@ async fn k3sctl_managed_diagnostics_response(
.unwrap_or(false);
code_queue_checks = json!({
"scheduler": scheduler_dependency,
"d601ProviderEgressProxy": provider_egress,
"d601TcpEgressGateway": tcp_egress,
"providerEgressProxy": provider_egress,
"tcpEgressGateway": tcp_egress,
"postgresRoute": postgres_route,
"staleActiveReconcile": stale_reconcile
});
code_queue_dependencies = json!({
"postgresRoute": "d601-tcp-egress-gateway.unidesk.svc.cluster.local:15432",
"requiredDeployments": ["d601-tcp-egress-gateway", "d601-provider-egress-proxy", "code-queue"],
"requiredEndpoints": ["d601-tcp-egress-gateway", "d601-provider-egress-proxy", "code-queue-scheduler"]
"postgresRoute": format!("{tcp_egress_service}.unidesk.svc.cluster.local:15432"),
"requiredDeployments": [tcp_egress_service, provider_egress_service, "code-queue".to_string()],
"requiredEndpoints": [tcp_egress_service, provider_egress_service, "code-queue-scheduler".to_string()]
});
code_queue_adapter = json!({
"scheduler": scheduler_diagnostics,
"d601ProviderEgressProxy": provider_egress_diagnostics,
"d601TcpEgressGateway": tcp_egress_diagnostics
"providerEgressProxy": provider_egress_diagnostics,
"tcpEgressGateway": tcp_egress_diagnostics
});
}
let ok = (200..300).contains(&status2)