upmc-enterprises/elasticsearch-operator

Kibana and Cerebro services are not deleted when deleting ElasticsearchCluster

xyphr opened this issue · 2 comments

xyphr commented

Currently, when deleting an ElasticsearchCluster the services for Kibana and Cerebro are left behind. The delete services method doesn't have the code for deleting those two services.

xyphr commented

This seems to fix it

diff --git a/pkg/k8sutil/services.go b/pkg/k8sutil/services.go
index e9deabb0..8274697f 100644
--- a/pkg/k8sutil/services.go
+++ b/pkg/k8sutil/services.go
@@ -262,19 +262,17 @@ func (k *K8sutil) DeleteServices(clusterName, namespace string) error {
 
        for component, _ := range mgmtServices {
 
+               fullClientServiceName := fmt.Sprintf("%s-%s", component, clusterName)
                // Check if service exists
-               s, _ := k.Kclient.CoreV1().Services(namespace).Get(component, metav1.GetOptions{})
-
-               // Service exists, delete
-               if len(s.Name) >= 1 {
-                       fullClientServiceName := fmt.Sprintf("%s-%s", component, clusterName)
-
+               _, err := k.Kclient.CoreV1().Services(namespace).Get(fullClientServiceName, metav1.GetOptions{})
+               if err != nil {
+                       logrus.Error("Could not find service "+fullClientServiceName+":", err)
+               } else {
                        if err := k.Kclient.CoreV1().Services(namespace).Delete(fullClientServiceName, &metav1.DeleteOptions{}); err != nil {
                                logrus.Error("Could not delete service "+fullClientServiceName+":", err)
                        }
                        logrus.Infof("Deleted service: %s", fullClientServiceName)
                }
-
        }
 
        return nil

Hey @xyphr would you like to send up a PR?