From 538248df0de7f255aa25c024089eb291ad5a19a0 Mon Sep 17 00:00:00 2001 From: kerthcet Date: Tue, 19 Dec 2023 19:13:30 +0800 Subject: [PATCH 1/2] More understandable error for scheduler configuration validation Signed-off-by: kerthcet --- pkg/scheduler/apis/config/validation/validation.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/scheduler/apis/config/validation/validation.go b/pkg/scheduler/apis/config/validation/validation.go index 4d6d977c177..1993ec8c933 100644 --- a/pkg/scheduler/apis/config/validation/validation.go +++ b/pkg/scheduler/apis/config/validation/validation.go @@ -273,11 +273,11 @@ func validateCommonQueueSort(path *field.Path, profiles []config.KubeSchedulerPr curr = profiles[i].Plugins.QueueSort } if !cmp.Equal(canon, curr) { - errs = append(errs, field.Invalid(path.Index(i).Child("plugins", "queueSort"), curr, "has to match for all profiles")) + errs = append(errs, field.Invalid(path.Index(i).Child("plugins", "queueSort"), curr, "queueSort must be the same for all profiles")) } for _, cfg := range profiles[i].PluginConfig { if cfg.Name == queueSortName && !cmp.Equal(queueSortArgs, cfg.Args) { - errs = append(errs, field.Invalid(path.Index(i).Child("pluginConfig", "args"), cfg.Args, "has to match for all profiles")) + errs = append(errs, field.Invalid(path.Index(i).Child("pluginConfig", "args"), cfg.Args, "queueSort must be the same for all profiles")) } } } From 1f3e668e180589a9649632661abbe589d3509cdc Mon Sep 17 00:00:00 2001 From: kerthcet Date: Wed, 20 Dec 2023 10:23:29 +0800 Subject: [PATCH 2/2] Use semantic comparation for API Signed-off-by: kerthcet --- pkg/scheduler/apis/config/validation/validation.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/scheduler/apis/config/validation/validation.go b/pkg/scheduler/apis/config/validation/validation.go index 1993ec8c933..9d61c8cf861 100644 --- a/pkg/scheduler/apis/config/validation/validation.go +++ b/pkg/scheduler/apis/config/validation/validation.go @@ -23,8 +23,8 @@ import ( "strconv" "strings" - "github.com/google/go-cmp/cmp" v1 "k8s.io/api/core/v1" + apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/runtime" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/sets" @@ -272,11 +272,11 @@ func validateCommonQueueSort(path *field.Path, profiles []config.KubeSchedulerPr if profiles[i].Plugins != nil { curr = profiles[i].Plugins.QueueSort } - if !cmp.Equal(canon, curr) { + if !apiequality.Semantic.DeepEqual(canon, curr) { errs = append(errs, field.Invalid(path.Index(i).Child("plugins", "queueSort"), curr, "queueSort must be the same for all profiles")) } for _, cfg := range profiles[i].PluginConfig { - if cfg.Name == queueSortName && !cmp.Equal(queueSortArgs, cfg.Args) { + if cfg.Name == queueSortName && !apiequality.Semantic.DeepEqual(queueSortArgs, cfg.Args) { errs = append(errs, field.Invalid(path.Index(i).Child("pluginConfig", "args"), cfg.Args, "queueSort must be the same for all profiles")) } }