fix: render lane-scoped metrics sidecar

This commit is contained in:
Codex Agent
2026-06-09 00:00:30 +08:00
parent 187fb80a5d
commit 1912c32160
2 changed files with 15 additions and 5 deletions
+5 -5
View File
@@ -922,8 +922,8 @@ function v02MetricsLabels(serviceId) {
};
}
function v02MetricsSidecarVolume() {
return { name: "hwlab-metrics-sidecar", configMap: { name: "hwlab-v02-metrics-sidecar" } };
function v02MetricsSidecarVolume(profile = "v02") {
return { name: "hwlab-metrics-sidecar", configMap: { name: `hwlab-${profile}-metrics-sidecar` } };
}
function v02MetricsSidecarAnnotations(metricsSidecarSha256) {
@@ -966,7 +966,7 @@ function upsertV02MetricsSidecar(podSpec, options) {
podSpec.containers.push(v02MetricsSidecarContainer(options));
podSpec.volumes ??= [];
podSpec.volumes = podSpec.volumes.filter((volume) => volume?.name !== "hwlab-metrics-sidecar");
podSpec.volumes.push(v02MetricsSidecarVolume());
podSpec.volumes.push(v02MetricsSidecarVolume(options.profile));
}
function upsertV02MetricsPort(service) {
@@ -1030,7 +1030,7 @@ function transformWorkloads({ workloads, deploy, catalog, source, sourceBranch =
label(item.metadata, v02MetricsLabels(templateServiceId));
label(podTemplate.metadata, v02MetricsLabels(templateServiceId));
annotate(podTemplate.metadata, v02MetricsSidecarAnnotations(metricsSidecarSha256));
upsertV02MetricsSidecar(podTemplate.spec, { deploy, serviceId: templateServiceId, namespace, gitopsTarget });
upsertV02MetricsSidecar(podTemplate.spec, { deploy, serviceId: templateServiceId, namespace, gitopsTarget, profile });
}
if ((item.kind === "Deployment" || item.kind === "StatefulSet") && item.spec?.selector?.matchLabels) {
item.spec.selector.matchLabels = {
@@ -4368,7 +4368,7 @@ function deepSeekProxyManifest({ profile = "dev", source, sourceBranch = default
{ name: "moonbridge-scripts", configMap: { name: "hwlab-deepseek-proxy-config" } },
{ name: "moonbridge-config", emptyDir: {} },
{ name: "moonbridge-data", emptyDir: {} },
...(runtimeLane ? [v02MetricsSidecarVolume()] : [])
...(runtimeLane ? [v02MetricsSidecarVolume(profile)] : [])
]
}
}
+10
View File
@@ -536,6 +536,16 @@ test("v03 render keeps node identity as data instead of generated structure", as
const workloads = await readFile(path.join(outDir, "runtime-v03", "workloads.yaml"), "utf8");
const workloadsJson = JSON.parse(workloads);
const deepseekProxy = await readFile(path.join(outDir, "runtime-v03", "deepseek-proxy.yaml"), "utf8");
const deepseekProxyJson = JSON.parse(deepseekProxy);
const metricsSidecarConfigMaps = [...(workloadsJson.items ?? []), ...(deepseekProxyJson.items ?? [])]
.filter((item) => item.kind === "Deployment")
.flatMap((item) => item.spec?.template?.spec?.volumes ?? [])
.filter((volume) => volume.name === "hwlab-metrics-sidecar")
.map((volume) => volume.configMap?.name);
assert.ok(metricsSidecarConfigMaps.length >= 5, "expected v03 observable workloads to mount metrics sidecar config");
assert.deepEqual([...new Set(metricsSidecarConfigMaps)], ["hwlab-v03-metrics-sidecar"]);
assert.doesNotMatch(`${workloads}\n${deepseekProxy}`, /hwlab-v02-metrics-sidecar/u);
const agentRunNodeEnv = (workloadsJson.items ?? [])
.flatMap((item) => collectContainersFromItem(item))
.flatMap((container) => container.env ?? [])