From 431a4edee910af3a7bc7c084e618d9933c32ed19 Mon Sep 17 00:00:00 2001 From: zhengjr9 <96896223+zhengjr9@users.noreply.github.com> Date: Tue, 26 Dec 2023 17:54:07 +0800 Subject: [PATCH] bugfix: Filter rs that are not part of the current Deployement (#191) Signed-off-by: zhengjr (cherry picked from commit 1e84129ff1bf9abc28ac8f3fa400df6482670f16) Signed-off-by: AiRanthem --- .../deployment/deployment_controller.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/pkg/controller/deployment/deployment_controller.go b/pkg/controller/deployment/deployment_controller.go index 6150942..7a6392b 100644 --- a/pkg/controller/deployment/deployment_controller.go +++ b/pkg/controller/deployment/deployment_controller.go @@ -81,7 +81,22 @@ func (dc *DeploymentController) getReplicaSetsForDeployment(ctx context.Context, } // List all ReplicaSets to find those we own but that no longer match our // selector. They will be orphaned by ClaimReplicaSets(). - return dc.rsLister.ReplicaSets(d.Namespace).List(deploymentSelector) + allRSs, err := dc.rsLister.ReplicaSets(d.Namespace).List(deploymentSelector) + if err != nil { + return nil, fmt.Errorf("list %s/%s rs failed:%v", d.Namespace, d.Name, err) + } + // select rs owner by current deployment + ownedRSs := make([]*apps.ReplicaSet, 0) + for _, rs := range allRSs { + if !rs.DeletionTimestamp.IsZero() { + continue + } + + if metav1.IsControlledBy(rs, d) { + ownedRSs = append(ownedRSs, rs) + } + } + return ownedRSs, nil } // syncDeployment will sync the deployment with the given key.