upmc-enterprises / elasticsearch-operator

manages elasticsearch clusters

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kibana and Cerebro services are not deleted when deleting ElasticsearchCluster

xyphr opened this issue · comments

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.

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?