From 5678bcf224e1a694ded4d39347fad46aa3dac58a Mon Sep 17 00:00:00 2001 From: Andrzej Wasylkowski Date: Thu, 1 Jun 2017 15:50:33 +0200 Subject: [PATCH] Fixed ResourceConsumer.CleanUp to properly clean up non-replication-controller resources and pods. --- test/e2e/common/BUILD | 2 ++ test/e2e/common/autoscaling_utils.go | 28 +++++++++++++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/test/e2e/common/BUILD b/test/e2e/common/BUILD index 05b9257ce9b..77c5ff19dee 100644 --- a/test/e2e/common/BUILD +++ b/test/e2e/common/BUILD @@ -39,6 +39,7 @@ go_library( "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/pod:go_default_library", "//pkg/apis/autoscaling/v1:go_default_library", + "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/v1beta1:go_default_library", "//pkg/client/clientset_generated/clientset:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", @@ -57,6 +58,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", diff --git a/test/e2e/common/autoscaling_utils.go b/test/e2e/common/autoscaling_utils.go index 11f53923825..e4eb8f89717 100644 --- a/test/e2e/common/autoscaling_utils.go +++ b/test/e2e/common/autoscaling_utils.go @@ -23,10 +23,13 @@ import ( "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/v1" autoscalingv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1" + extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/test/e2e/framework" @@ -58,9 +61,9 @@ const ( ) const ( - KindRC = "replicationController" - KindDeployment = "deployment" - KindReplicaSet = "replicaset" + KindRC = "ReplicationController" + KindDeployment = "Deployment" + KindReplicaSet = "ReplicaSet" subresource = "scale" ) @@ -378,12 +381,27 @@ func (rc *ResourceConsumer) CleanUp() { close(rc.stopCustomMetric) // Wait some time to ensure all child goroutines are finished. time.Sleep(10 * time.Second) - framework.ExpectNoError(framework.DeleteRCAndPods(rc.framework.ClientSet, rc.framework.InternalClientset, rc.framework.Namespace.Name, rc.name)) + kind, err := kindOf(rc.kind) + framework.ExpectNoError(err) + framework.ExpectNoError(framework.DeleteResourceAndPods(rc.framework.ClientSet, rc.framework.InternalClientset, kind, rc.framework.Namespace.Name, rc.name)) framework.ExpectNoError(rc.framework.ClientSet.Core().Services(rc.framework.Namespace.Name).Delete(rc.name, nil)) - framework.ExpectNoError(framework.DeleteRCAndPods(rc.framework.ClientSet, rc.framework.InternalClientset, rc.framework.Namespace.Name, rc.controllerName)) + framework.ExpectNoError(framework.DeleteResourceAndPods(rc.framework.ClientSet, rc.framework.InternalClientset, api.Kind("ReplicationController"), rc.framework.Namespace.Name, rc.controllerName)) framework.ExpectNoError(rc.framework.ClientSet.Core().Services(rc.framework.Namespace.Name).Delete(rc.controllerName, nil)) } +func kindOf(kind string) (schema.GroupKind, error) { + switch kind { + case KindRC: + return api.Kind(kind), nil + case KindReplicaSet: + return extensionsinternal.Kind(kind), nil + case KindDeployment: + return extensionsinternal.Kind(kind), nil + default: + return schema.GroupKind{}, fmt.Errorf("Unsupported kind: %v", kind) + } +} + func runServiceAndWorkloadForResourceConsumer(c clientset.Interface, internalClient internalclientset.Interface, ns, name, kind string, replicas int, cpuLimitMillis, memLimitMb int64) { By(fmt.Sprintf("Running consuming RC %s via %s with %v replicas", name, kind, replicas)) _, err := c.Core().Services(ns).Create(&v1.Service{