From 6597fafd171493af159024a46945f9971c4b249f Mon Sep 17 00:00:00 2001 From: Garrybest Date: Thu, 29 Dec 2022 16:40:26 +0800 Subject: [PATCH] avoid calling apiserver when scheduling result has no changes Signed-off-by: Garrybest --- pkg/scheduler/scheduler.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/scheduler/scheduler.go b/pkg/scheduler/scheduler.go index 23ee379f9..f8fe89aa6 100644 --- a/pkg/scheduler/scheduler.go +++ b/pkg/scheduler/scheduler.go @@ -511,6 +511,9 @@ func (s *Scheduler) patchScheduleResultForResourceBinding(oldBinding *workv1alph if err != nil { return fmt.Errorf("failed to create a merge patch: %v", err) } + if "{}" == string(patchBytes) { + return nil + } _, err = s.KarmadaClient.WorkV1alpha2().ResourceBindings(newBinding.Namespace).Patch(context.TODO(), newBinding.Name, types.MergePatchType, patchBytes, metav1.PatchOptions{}) return err @@ -565,6 +568,9 @@ func (s *Scheduler) patchScheduleResultForClusterResourceBinding(oldBinding *wor if err != nil { return fmt.Errorf("failed to create a merge patch: %v", err) } + if "{}" == string(patchBytes) { + return nil + } _, err = s.KarmadaClient.WorkV1alpha2().ClusterResourceBindings().Patch(context.TODO(), newBinding.Name, types.MergePatchType, patchBytes, metav1.PatchOptions{}) return err