From f4fc8ee15b75c8d1610a76be61decd6802c4327e Mon Sep 17 00:00:00 2001 From: likakuli <1154584512@qq.com> Date: Thu, 10 Feb 2022 15:29:28 +0800 Subject: [PATCH] fix a bug that Replica set by overridepolicy will be reset by ReviseReplica interpreterhook issue#1347 Signed-off-by: likakuli <1154584512@qq.com> --- pkg/controllers/binding/common.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/controllers/binding/common.go b/pkg/controllers/binding/common.go index 70e0da969..525cc8654 100644 --- a/pkg/controllers/binding/common.go +++ b/pkg/controllers/binding/common.go @@ -81,11 +81,6 @@ func ensureWork( for i := range targetClusters { targetCluster := targetClusters[i] clonedWorkload := workload.DeepCopy() - cops, ops, err := overrideManager.ApplyOverridePolicies(clonedWorkload, targetCluster.Name) - if err != nil { - klog.Errorf("Failed to apply overrides for %s/%s/%s, err is: %v", clonedWorkload.GetKind(), clonedWorkload.GetNamespace(), clonedWorkload.GetName(), err) - return err - } workNamespace, err := names.GenerateExecutionSpaceName(targetCluster.Name) if err != nil { @@ -116,6 +111,13 @@ func ensureWork( } } + // We should call ApplyOverridePolicies last, as override rules have the highest priority + cops, ops, err := overrideManager.ApplyOverridePolicies(clonedWorkload, targetCluster.Name) + if err != nil { + klog.Errorf("Failed to apply overrides for %s/%s/%s, err is: %v", clonedWorkload.GetKind(), clonedWorkload.GetNamespace(), clonedWorkload.GetName(), err) + return err + } + annotations := mergeAnnotations(clonedWorkload, binding, scope) annotations, err = recordAppliedOverrides(cops, ops, annotations) if err != nil {