fix: render lane-scoped metrics sidecar
This commit is contained in:
@@ -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)] : [])
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 ?? [])
|
||||
|
||||
Reference in New Issue
Block a user