mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-14 21:53:52 +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() {
|
It("should be created and deleted successfully", func() {
|
||||||
framework.SkipUnlessFederated(f.Client)
|
framework.SkipUnlessFederated(f.Client)
|
||||||
|
framework.SkipUnlessProviderIs("gce", "gke") // TODO: Federated ingress is not yet supported on non-GCP platforms.
|
||||||
nsName := f.FederationNamespace.Name
|
nsName := f.FederationNamespace.Name
|
||||||
ingress := createIngressOrFail(f.FederationClientset_1_5, nsName)
|
ingress := createIngressOrFail(f.FederationClientset_1_5, nsName)
|
||||||
By(fmt.Sprintf("Creation of ingress %q in namespace %q succeeded. Deleting ingress.", ingress.Name, 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
|
// register clusters in federation apiserver
|
||||||
BeforeEach(func() {
|
BeforeEach(func() {
|
||||||
framework.SkipUnlessFederated(f.Client)
|
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 == "" {
|
if federationName = os.Getenv("FEDERATION_NAME"); federationName == "" {
|
||||||
federationName = DefaultFederationName
|
federationName = DefaultFederationName
|
||||||
}
|
}
|
||||||
@@ -104,7 +105,11 @@ var _ = framework.KubeDescribe("Federated ingresses [Feature:Federation]", func(
|
|||||||
defer func() { // Cleanup
|
defer func() { // Cleanup
|
||||||
By(fmt.Sprintf("Deleting ingress %q in namespace %q", ingress.Name, ns))
|
By(fmt.Sprintf("Deleting ingress %q in namespace %q", ingress.Name, ns))
|
||||||
err := f.FederationClientset_1_5.Ingresses(ns).Delete(ingress.Name, &v1.DeleteOptions{})
|
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
|
// wait for ingress shards being created
|
||||||
waitForIngressShardsOrFail(ns, ingress, clusters)
|
waitForIngressShardsOrFail(ns, ingress, clusters)
|
||||||
@@ -143,6 +148,9 @@ var _ = framework.KubeDescribe("Federated ingresses [Feature:Federation]", func(
|
|||||||
}
|
}
|
||||||
if jig.ing != nil {
|
if jig.ing != nil {
|
||||||
deleteIngressOrFail(f.FederationClientset_1_5, ns, jig.ing.Name)
|
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
|
jig.ing = nil
|
||||||
} else {
|
} else {
|
||||||
By("No ingress to delete. Ingress is nil")
|
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)
|
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 {
|
func createIngressOrFail(clientset *fedclientset.Clientset, namespace string) *v1beta1.Ingress {
|
||||||
if clientset == nil || len(namespace) == 0 {
|
if clientset == nil || len(namespace) == 0 {
|
||||||
Fail(fmt.Sprintf("Internal error: invalid parameters passed to createIngressOrFail: clientset: %v, namespace: %v", clientset, namespace))
|
Fail(fmt.Sprintf("Internal error: invalid parameters passed to createIngressOrFail: clientset: %v, namespace: %v", clientset, namespace))
|
||||||
|
Reference in New Issue
Block a user