Merge pull request #46833 from wasylkowski/fix-rc-cleanup
Automatic merge from submit-queue (batch tested with PRs 46235, 44786, 46833, 46756, 46669) Fixed ResourceConsumer.CleanUp to properly clean up non-replication-controller resources and pods **What this PR does / why we need it**: Without this fix CleanUp does not remove non-replication-controller resources and pods. This leads to pollution that in some cases inadvertently affects what is happening in AfterEachs before the namespace gets deleted. **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes # **Special notes for your reviewer**: **Release note**: ```release-note NONE ```
This commit is contained in:
		@@ -39,6 +39,7 @@ go_library(
 | 
				
			|||||||
        "//pkg/api/v1/helper:go_default_library",
 | 
					        "//pkg/api/v1/helper:go_default_library",
 | 
				
			||||||
        "//pkg/api/v1/pod:go_default_library",
 | 
					        "//pkg/api/v1/pod:go_default_library",
 | 
				
			||||||
        "//pkg/apis/autoscaling/v1:go_default_library",
 | 
					        "//pkg/apis/autoscaling/v1:go_default_library",
 | 
				
			||||||
 | 
					        "//pkg/apis/extensions:go_default_library",
 | 
				
			||||||
        "//pkg/apis/extensions/v1beta1:go_default_library",
 | 
					        "//pkg/apis/extensions/v1beta1:go_default_library",
 | 
				
			||||||
        "//pkg/client/clientset_generated/clientset:go_default_library",
 | 
					        "//pkg/client/clientset_generated/clientset:go_default_library",
 | 
				
			||||||
        "//pkg/client/clientset_generated/internalclientset: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/fields:go_default_library",
 | 
				
			||||||
        "//vendor/k8s.io/apimachinery/pkg/labels: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: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/types:go_default_library",
 | 
				
			||||||
        "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library",
 | 
					        "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library",
 | 
				
			||||||
        "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
 | 
					        "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,10 +23,13 @@ import (
 | 
				
			|||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						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/intstr"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/wait"
 | 
						"k8s.io/apimachinery/pkg/util/wait"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/v1"
 | 
						"k8s.io/kubernetes/pkg/api/v1"
 | 
				
			||||||
	autoscalingv1 "k8s.io/kubernetes/pkg/apis/autoscaling/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/clientset"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
 | 
						"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
 | 
				
			||||||
	"k8s.io/kubernetes/test/e2e/framework"
 | 
						"k8s.io/kubernetes/test/e2e/framework"
 | 
				
			||||||
@@ -58,9 +61,9 @@ const (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
	KindRC         = "replicationController"
 | 
						KindRC         = "ReplicationController"
 | 
				
			||||||
	KindDeployment = "deployment"
 | 
						KindDeployment = "Deployment"
 | 
				
			||||||
	KindReplicaSet = "replicaset"
 | 
						KindReplicaSet = "ReplicaSet"
 | 
				
			||||||
	subresource    = "scale"
 | 
						subresource    = "scale"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -378,12 +381,27 @@ func (rc *ResourceConsumer) CleanUp() {
 | 
				
			|||||||
	close(rc.stopCustomMetric)
 | 
						close(rc.stopCustomMetric)
 | 
				
			||||||
	// Wait some time to ensure all child goroutines are finished.
 | 
						// Wait some time to ensure all child goroutines are finished.
 | 
				
			||||||
	time.Sleep(10 * time.Second)
 | 
						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(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))
 | 
						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) {
 | 
					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))
 | 
						By(fmt.Sprintf("Running consuming RC %s via %s with %v replicas", name, kind, replicas))
 | 
				
			||||||
	_, err := c.Core().Services(ns).Create(&v1.Service{
 | 
						_, err := c.Core().Services(ns).Create(&v1.Service{
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user