From a0834952408996e92d89997636a24d3295a3b307 Mon Sep 17 00:00:00 2001 From: Piotr Kazmierczak <470696+pkazmierczak@users.noreply.github.com> Date: Fri, 5 Sep 2025 16:20:34 +0200 Subject: [PATCH] system scheduler: correction to Test_computeCanaryNodes (#26707) --- scheduler/reconciler/reconcile_node.go | 2 +- scheduler/reconciler/reconcile_node_test.go | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/scheduler/reconciler/reconcile_node.go b/scheduler/reconciler/reconcile_node.go index 71dd7965c..cd99ac8c9 100644 --- a/scheduler/reconciler/reconcile_node.go +++ b/scheduler/reconciler/reconcile_node.go @@ -135,7 +135,7 @@ func (nr *NodeReconciler) findOldCanaryNodes(nodesList []*structs.Node, numberOf a *structs.Allocation, tg *structs.TaskGroup, canaryNodes map[string]map[string]bool, nodeID string) ([]*structs.Node, int) { if a.DeploymentStatus == nil || a.DeploymentStatus.Canary == false || - nr.DeploymentCurrent == nil { // TODO: should we add this? || nr.DeploymentCurrent.ID != a.DeploymentID { + nr.DeploymentCurrent == nil { return nodesList, numberOfCanaryNodes } diff --git a/scheduler/reconciler/reconcile_node_test.go b/scheduler/reconciler/reconcile_node_test.go index c9906e76a..87e822dca 100644 --- a/scheduler/reconciler/reconcile_node_test.go +++ b/scheduler/reconciler/reconcile_node_test.go @@ -895,6 +895,7 @@ func Test_computeCanaryNodes(t *testing.T) { DeploymentStatus: &structs.AllocDeploymentStatus{ Canary: true, }, + TaskGroup: "foo", }, }, }, @@ -925,6 +926,26 @@ func Test_computeCanaryNodes(t *testing.T) { fiveEligibleNodeNames[2]: "foo", }, }, + { + name: "task group with 100% canary deploy, 1 eligible node", + nodes: map[string]*structs.Node{"foo": mock.Node()}, + liveAllocs: nil, + terminalAllocs: nil, + required: map[string]*structs.TaskGroup{ + "foo": { + Name: "foo", + Update: &structs.UpdateStrategy{ + Canary: 100, + MaxParallel: 1, + }, + }, + }, + existingDeployment: nil, + expectedCanaryNodes: map[string]int{ + "foo": 1, + }, + expectedCanaryNodeID: nil, + }, } for _, tc := range testCases {