From 26cc4ff55c3ccce6f15b2271a1220d993e07e88a Mon Sep 17 00:00:00 2001 From: Michael Taufen Date: Fri, 16 Feb 2018 13:04:23 -0800 Subject: [PATCH] Fix e2e node setKubeletConfiguration helper The helper should have been using `apiequality.Semantic.DeepEqual`, instead of `reflect.DeepEqual`. Previously, nil vs empty containers were treated as not equal, but they should be considered equal for objects managed by Kubernetes API machinery, like KubeletConfiguration. This should fix the failing eviction tests. --- test/e2e_node/BUILD | 1 + test/e2e_node/util.go | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/test/e2e_node/BUILD b/test/e2e_node/BUILD index 370c64dfbb5..2d5af832b5f 100644 --- a/test/e2e_node/BUILD +++ b/test/e2e_node/BUILD @@ -51,6 +51,7 @@ go_library( "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/github.com/prometheus/common/model:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/test/e2e_node/util.go b/test/e2e_node/util.go index 58bde2ae86c..3852d7b5cec 100644 --- a/test/e2e_node/util.go +++ b/test/e2e_node/util.go @@ -23,7 +23,6 @@ import ( "io/ioutil" "net/http" "os/exec" - "reflect" "regexp" "strings" "time" @@ -31,6 +30,7 @@ import ( "github.com/golang/glog" apiv1 "k8s.io/api/core/v1" + apiequality "k8s.io/apimachinery/pkg/api/equality" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" @@ -110,7 +110,7 @@ func tempSetCurrentKubeletConfig(f *framework.Framework, updateFunction func(ini framework.ExpectNoError(err) newCfg := oldCfg.DeepCopy() updateFunction(newCfg) - if reflect.DeepEqual(*newCfg, *oldCfg) { + if apiequality.Semantic.DeepEqual(*newCfg, *oldCfg) { return } @@ -185,7 +185,7 @@ func setKubeletConfiguration(f *framework.Framework, kubeCfg *kubeletconfig.Kube if err != nil { return fmt.Errorf("failed trying to get current Kubelet config, will retry, error: %v", err) } - if !reflect.DeepEqual(*kubeCfg, *newKubeCfg) { + if !apiequality.Semantic.DeepEqual(*kubeCfg, *newKubeCfg) { return fmt.Errorf("still waiting for new configuration to take effect, will continue to watch /configz") } glog.Infof("new configuration has taken effect")