mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-14 13:45:06 +00:00
Fix leaking ingress resources in federated ingress e2e test.
This commit is contained in:
@@ -64,7 +64,7 @@ var _ = framework.KubeDescribe("Federated ingresses [Feature:Federation]", func(
|
||||
|
||||
It("should be created and deleted successfully", func() {
|
||||
framework.SkipUnlessFederated(f.Client)
|
||||
|
||||
framework.SkipUnlessProviderIs("gce", "gke") // TODO: Federated ingress is not yet supported on non-GCP platforms.
|
||||
nsName := f.FederationNamespace.Name
|
||||
ingress := createIngressOrFail(f.FederationClientset_1_5, nsName)
|
||||
By(fmt.Sprintf("Creation of ingress %q in namespace %q succeeded. Deleting ingress.", ingress.Name, nsName))
|
||||
@@ -86,6 +86,7 @@ var _ = framework.KubeDescribe("Federated ingresses [Feature:Federation]", func(
|
||||
// register clusters in federation apiserver
|
||||
BeforeEach(func() {
|
||||
framework.SkipUnlessFederated(f.Client)
|
||||
framework.SkipUnlessProviderIs("gce", "gke") // TODO: Federated ingress is not yet supported on non-GCP platforms.
|
||||
if federationName = os.Getenv("FEDERATION_NAME"); federationName == "" {
|
||||
federationName = DefaultFederationName
|
||||
}
|
||||
@@ -104,7 +105,11 @@ var _ = framework.KubeDescribe("Federated ingresses [Feature:Federation]", func(
|
||||
defer func() { // Cleanup
|
||||
By(fmt.Sprintf("Deleting ingress %q in namespace %q", ingress.Name, ns))
|
||||
err := f.FederationClientset_1_5.Ingresses(ns).Delete(ingress.Name, &v1.DeleteOptions{})
|
||||
framework.ExpectNoError(err, "Error deleting ingress %q in namespace %q", ingress.Name, ns)
|
||||
framework.ExpectNoError(err, "Error deleting ingress %q/%q in federation", ns, ingress.Name)
|
||||
for clusterName, cluster := range clusters {
|
||||
err := cluster.Ingresses(ns).Delete(ingress.Name, &v1.DeleteOptions{})
|
||||
framework.ExpectNoError(err, "Error deleting ingress %q/%q in cluster %q", ns, ingress.Name, clusterName)
|
||||
}
|
||||
}()
|
||||
// wait for ingress shards being created
|
||||
waitForIngressShardsOrFail(ns, ingress, clusters)
|
||||
@@ -143,6 +148,9 @@ var _ = framework.KubeDescribe("Federated ingresses [Feature:Federation]", func(
|
||||
}
|
||||
if jig.ing != nil {
|
||||
deleteIngressOrFail(f.FederationClientset_1_5, ns, jig.ing.Name)
|
||||
for clusterName, cluster := range clusters {
|
||||
deleteClusterIngressOrFail(clusterName, cluster.Clientset, ns, jig.ing.Name)
|
||||
}
|
||||
jig.ing = nil
|
||||
} else {
|
||||
By("No ingress to delete. Ingress is nil")
|
||||
@@ -268,6 +276,15 @@ func deleteIngressOrFail(clientset *fedclientset.Clientset, namespace string, in
|
||||
framework.ExpectNoError(err, "Error deleting ingress %q from namespace %q", ingressName, namespace)
|
||||
}
|
||||
|
||||
// TODO: quinton: This is largely a cut 'n paste of the above. Yuck! Refactor as soon as we have a common interface implmented by both fedclientset.Clientset and kubeclientset.Clientset
|
||||
func deleteClusterIngressOrFail(clusterName string, clientset *kubeclientset.Clientset, namespace string, ingressName string) {
|
||||
if clientset == nil || len(namespace) == 0 || len(ingressName) == 0 {
|
||||
Fail(fmt.Sprintf("Internal error: invalid parameters passed to deleteClusterIngressOrFail: cluster: %q, clientset: %v, namespace: %v, ingress: %v", clusterName, clientset, namespace, ingressName))
|
||||
}
|
||||
err := clientset.Ingresses(namespace).Delete(ingressName, v1.NewDeleteOptions(0))
|
||||
framework.ExpectNoError(err, "Error deleting cluster ingress %q/%q from cluster %q", namespace, ingressName, clusterName)
|
||||
}
|
||||
|
||||
func createIngressOrFail(clientset *fedclientset.Clientset, namespace string) *v1beta1.Ingress {
|
||||
if clientset == nil || len(namespace) == 0 {
|
||||
Fail(fmt.Sprintf("Internal error: invalid parameters passed to createIngressOrFail: clientset: %v, namespace: %v", clientset, namespace))
|
||||
|
Reference in New Issue
Block a user