Merge pull request #33869 from madhusudancs/fed-e2e-cleanup-v4

Automatic merge from submit-queue

Deregister clusters during federated namespace e2e tear down.

This is causing other tests to leak resources.

cc @mwielgus @kubernetes/sig-cluster-federation
This commit is contained in:
Kubernetes Submit Queue 2016-10-03 17:36:16 -07:00 committed by GitHub
commit 4a0cd145e5

View File

@ -18,13 +18,13 @@ package e2e
import ( import (
"fmt" "fmt"
"os"
"strings" "strings"
"time" "time"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/api/errors"
api_v1 "k8s.io/kubernetes/pkg/api/v1" api_v1 "k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_3"
"k8s.io/kubernetes/pkg/util/wait" "k8s.io/kubernetes/pkg/util/wait"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
@ -38,18 +38,21 @@ const (
// Create/delete ingress api objects // Create/delete ingress api objects
var _ = framework.KubeDescribe("Federation namespace [Feature:Federation]", func() { var _ = framework.KubeDescribe("Federation namespace [Feature:Federation]", func() {
f := framework.NewDefaultFederatedFramework("federation-namespace") f := framework.NewDefaultFederatedFramework("federation-namespace")
clusterClientSet := make(map[string]*release_1_3.Clientset)
Describe("Namespace objects", func() { Describe("Namespace objects", func() {
var federationName string
var clusters map[string]*cluster // All clusters, keyed by cluster name
BeforeEach(func() { BeforeEach(func() {
framework.SkipUnlessFederated(f.Client) framework.SkipUnlessFederated(f.Client)
clusters := buildClustersOrFail_14(f)
for _, cluster := range clusters { // TODO: Federation API server should be able to answer this.
if _, found := clusterClientSet[cluster.Name]; !found { if federationName = os.Getenv("FEDERATION_NAME"); federationName == "" {
clientset := createClientsetForCluster(*cluster, 1, "e2e-test") federationName = DefaultFederationName
clusterClientSet[cluster.Name] = clientset
}
} }
clusters = map[string]*cluster{}
registerClusters(clusters, UserAgentName, federationName, f)
}) })
AfterEach(func() { AfterEach(func() {
@ -57,11 +60,12 @@ var _ = framework.KubeDescribe("Federation namespace [Feature:Federation]", func
deleteAllTestNamespaces( deleteAllTestNamespaces(
f.FederationClientset_1_4.Core().Namespaces().List, f.FederationClientset_1_4.Core().Namespaces().List,
f.FederationClientset_1_4.Core().Namespaces().Delete) f.FederationClientset_1_4.Core().Namespaces().Delete)
for _, clientset := range clusterClientSet { for _, cluster := range clusters {
deleteAllTestNamespaces( deleteAllTestNamespaces(
clientset.Core().Namespaces().List, cluster.Core().Namespaces().List,
clientset.Core().Namespaces().Delete) cluster.Core().Namespaces().Delete)
} }
unregisterClusters(clusters, f)
}) })
It("should be created and deleted successfully", func() { It("should be created and deleted successfully", func() {
@ -78,8 +82,8 @@ var _ = framework.KubeDescribe("Federation namespace [Feature:Federation]", func
// Check subclusters if the namespace was created there. // Check subclusters if the namespace was created there.
err = wait.Poll(5*time.Second, 2*time.Minute, func() (bool, error) { err = wait.Poll(5*time.Second, 2*time.Minute, func() (bool, error) {
for _, client := range clusterClientSet { for _, cluster := range clusters {
_, err := client.Core().Namespaces().Get(ns.Name) _, err := cluster.Core().Namespaces().Get(ns.Name)
if err != nil && !errors.IsNotFound(err) { if err != nil && !errors.IsNotFound(err) {
return false, err return false, err
} }