From 20934d7e5047972b663db46992a6f596eaf243c7 Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Wed, 29 Jul 2020 09:59:23 -0400 Subject: [PATCH] Create service for gluster endpoint Creating an endpoint without a service can cause endpoint to disappear https://github.com/kubernetes/kubernetes/issues/12964 --- test/e2e/framework/volume/fixtures.go | 19 ++++++++++++++++++- test/e2e/storage/drivers/in_tree.go | 18 +++++++++++++++--- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/test/e2e/framework/volume/fixtures.go b/test/e2e/framework/volume/fixtures.go index c4a2c75557d..7e687f3ef8a 100644 --- a/test/e2e/framework/volume/fixtures.go +++ b/test/e2e/framework/volume/fixtures.go @@ -173,6 +173,23 @@ func NewGlusterfsServer(cs clientset.Interface, namespace string) (config TestCo } pod, ip = CreateStorageServer(cs, config) + service := &v1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: config.Prefix + "-server", + }, + Spec: v1.ServiceSpec{ + Ports: []v1.ServicePort{ + { + Protocol: v1.ProtocolTCP, + Port: 24007, + }, + }, + }, + } + + _, err := cs.CoreV1().Services(namespace).Create(context.TODO(), service, metav1.CreateOptions{}) + framework.ExpectNoError(err, "failed to create service for Gluster server") + ginkgo.By("creating Gluster endpoints") endpoints := &v1.Endpoints{ TypeMeta: metav1.TypeMeta{ @@ -199,7 +216,7 @@ func NewGlusterfsServer(cs clientset.Interface, namespace string) (config TestCo }, }, } - _, err := cs.CoreV1().Endpoints(namespace).Create(context.TODO(), endpoints, metav1.CreateOptions{}) + _, err = cs.CoreV1().Endpoints(namespace).Create(context.TODO(), endpoints, metav1.CreateOptions{}) framework.ExpectNoError(err, "failed to create endpoints for Gluster server") return config, pod, ip diff --git a/test/e2e/storage/drivers/in_tree.go b/test/e2e/storage/drivers/in_tree.go index d5183f28081..a866266c1f1 100644 --- a/test/e2e/storage/drivers/in_tree.go +++ b/test/e2e/storage/drivers/in_tree.go @@ -324,14 +324,26 @@ func (v *glusterVolume) DeleteVolume() { name := v.prefix + "-server" - framework.Logf("Deleting Gluster endpoints %q...", name) + nameSpaceName := fmt.Sprintf("%s/%s", ns.Name, name) + + framework.Logf("Deleting Gluster endpoints %s...", nameSpaceName) err := cs.CoreV1().Endpoints(ns.Name).Delete(context.TODO(), name, metav1.DeleteOptions{}) if err != nil { if !apierrors.IsNotFound(err) { - framework.Failf("Gluster delete endpoints failed: %v", err) + framework.Failf("Gluster deleting endpoint %s failed: %v", nameSpaceName, err) } - framework.Logf("Gluster endpoints %q not found, assuming deleted", name) + framework.Logf("Gluster endpoints %q not found, assuming deleted", nameSpaceName) } + + framework.Logf("Deleting Gluster service %s...", nameSpaceName) + err = cs.CoreV1().Services(ns.Name).Delete(context.TODO(), name, metav1.DeleteOptions{}) + if err != nil { + if !apierrors.IsNotFound(err) { + framework.Failf("Gluster deleting service %s failed: %v", nameSpaceName, err) + } + framework.Logf("Gluster service %q not found, assuming deleted", nameSpaceName) + } + framework.Logf("Deleting Gluster server pod %q...", v.serverPod.Name) err = e2epod.DeletePodWithWait(cs, v.serverPod) if err != nil {