feat(dashboard): show "nodes rolled N/M" so a red deploy says whether the fleet moved #2032
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/rollout-summary"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A kernel deploy that rolled every node and then tripped on a post-roll step renders exactly like one that rolled nothing - both just say
Failed.On 2026-08-11 the
linuxproject showed eight red deploys while all five workers were in fact running the new kernel. The only way to tell which had actually moved the fleet was to read node kernel versions by hand. On that one page:hz666vzkhpfinal-verifywedgedmxkfxThree very different outcomes, one indistinguishable status. The deploy phase answers "did the workflow finish" - which is not the question an operator is asking, namely "did the fleet move".
Change
Adds
rollSummary()over the per-node progress the dashboard already derives from the workflow'sroll-onenodes, surfaced in two places:nodes rolled 2/5, colouredok/run/badnode rolloutheadingNo CRD or API change - the data was already there, it simply was not counted. Shown even on a failed deploy, deliberately: that is exactly the case where it carries information.
Test
Pins the property that matters - rolled-all and rolled-none must not produce the same summary - plus the partial and not-a-kernel-roll cases.
A kernel deploy that rolled EVERY node and then tripped on a post-roll step renders exactly like one that rolled nothing: both just say Failed. On 2026-08-11 the linux project showed eight red deploys while all five workers were in fact running the new kernel, and the only way to tell which deploys had actually moved the fleet was to read node kernel versions by hand. Concretely, on that one page: hz666 rolled 1 node, then the canary gate expired -> Failed vzkhp rolled 2 nodes, then final-verify wedged -> Failed mxkfx rolled 0 nodes, died at the first agent -> Failed Three very different outcomes, one indistinguishable status. The deploy phase answers "did the workflow finish". That is not the question an operator is asking, which is "did the fleet move". Adds rollSummary() over the per-node progress the dashboard ALREADY derives from the workflow's roll-one nodes, and surfaces it two places: the fold's kv block ("nodes rolled 2/5", coloured ok/run/bad) and the node-rollout heading. No CRD or API change -- the data was already there, it simply was not counted. Shown even on a failed deploy, deliberately: that is exactly the case where it carries information. Test pins the property that matters -- rolled-all and rolled-none must not produce the same summary -- plus the partial and not-a-kernel-roll cases.