Fix k8s list grouping for dual-role control-plane nodes (#2315)

This commit is contained in:
Hokila Jan authored and GitHub committed 2026-09-29 19:17:13 -07:00
1 parent d5023f4071
commit dbd5ca0840
2 files changed
+22 -3

No files matched your search

+7 -3
View File
@@ -86,9 +86,13 @@ public struct K8sHelper {
var controlPlanes: [ContainerSnapshot] = []
var workers: [ContainerSnapshot] = []
for snapshot in snapshots {
switch snapshot.configuration.labels[ResourceLabelKeys.role] {
case controlPlaneRoleName: controlPlanes.append(snapshot)
default: workers.append(snapshot)
let roles = snapshot.configuration.labels[ResourceLabelKeys.role, default: ""]
.split(separator: ",")
.map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }
if roles.contains(controlPlaneRoleName) {
controlPlanes.append(snapshot)
} else {
workers.append(snapshot)
}
}
+15
View File
@@ -153,6 +153,21 @@ struct BuildK8sRowsTests {
#expect(rows[2].snapshot.id == "dev-worker-2")
}
@Test func mixedControlPlaneRoleIsGroupedAsControlPlane() throws {
let cp = try makeSnapshot(
id: "k8s-dev",
role: "\(K8sHelper.controlPlaneRoleName),worker")
let worker = try makeWorker("k8s-dev-worker-1")
let rows = K8sHelper.buildK8sRows(from: [worker, cp])
#expect(rows.count == 2)
#expect(rows[0].snapshot.id == "k8s-dev")
#expect(rows[0].clusterName == "k8s-dev")
#expect(rows[1].snapshot.id == "k8s-dev-worker-1")
#expect(rows[1].clusterName == "k8s-dev")
}
@Test func workersGroupedUnderCorrectControlPlane() throws {
let cp1 = try makeControlPlane("alpha")
let cp2 = try makeControlPlane("beta")