From 56964fd99c7c8b66a1acd5644b564ece0e28cbe9 Mon Sep 17 00:00:00 2001
From: Murat Kabilov <murat.kabilov@zalando.de>
Date: Fri, 19 May 2017 15:22:30 +0200
Subject: [PATCH] remove etcd requests from the operator

---
 pkg/cluster/cluster.go       | 26 --------------------------
 pkg/cluster/util.go          |  2 +-
 pkg/controller/controller.go |  6 ------
 pkg/controller/etcd.go       | 25 -------------------------
 pkg/controller/util.go       |  1 -
 5 files changed, 1 insertion(+), 59 deletions(-)
 delete mode 100644 pkg/controller/etcd.go

diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go
index e7dae408..103ccde7 100644
--- a/pkg/cluster/cluster.go
+++ b/pkg/cluster/cluster.go
@@ -11,8 +11,6 @@ import (
 	"sync"
 
 	"github.com/Sirupsen/logrus"
-	etcdclient "github.com/coreos/etcd/client"
-	"golang.org/x/net/context"
 	"k8s.io/client-go/kubernetes"
 	"k8s.io/client-go/pkg/api"
 	"k8s.io/client-go/pkg/api/v1"
@@ -38,7 +36,6 @@ var (
 type Config struct {
 	KubeClient          *kubernetes.Clientset //TODO: move clients to the better place?
 	RestClient          *rest.RESTClient
-	EtcdClient          etcdclient.KeysAPI
 	TeamsAPIClient      *teams.API
 	OpConfig            config.Config
 	InfrastructureRoles map[string]spec.PgUser // inherited from the controller
@@ -146,22 +143,6 @@ func (c *Cluster) initUsers() error {
 	return nil
 }
 
-func (c *Cluster) etcdKeyExists(keyName string) (bool, error) {
-	options := etcdclient.GetOptions{}
-	resp, err := c.EtcdClient.Get(context.Background(), keyName, &options)
-	if err != nil {
-		etcdErr, ok := err.(etcdclient.Error)
-		if !ok {
-			return false, err
-		}
-		if etcdErr.Code == etcdclient.ErrorCodeKeyNotFound {
-			return false, nil
-		}
-	}
-
-	return resp != nil, err
-}
-
 func (c *Cluster) Create(stopCh <-chan struct{}) error {
 	c.mu.Lock()
 	defer c.mu.Unlock()
@@ -182,13 +163,6 @@ func (c *Cluster) Create(stopCh <-chan struct{}) error {
 
 	c.setStatus(spec.ClusterStatusCreating)
 
-	keyExist, err := c.etcdKeyExists(fmt.Sprintf("/%s/%s", c.OpConfig.EtcdScope, c.Metadata.Name))
-	if err != nil {
-		c.logger.Warnf("Can't check etcd key: %s", err)
-	}
-	if keyExist {
-		c.logger.Warnf("Etcd key for the cluster already exists")
-	}
 	//TODO: service will create endpoint implicitly
 	ep, err := c.createEndpoint()
 	if err != nil {
diff --git a/pkg/cluster/util.go b/pkg/cluster/util.go
index ff74c193..683c99a0 100644
--- a/pkg/cluster/util.go
+++ b/pkg/cluster/util.go
@@ -1,11 +1,11 @@
 package cluster
 
 import (
+	"encoding/json"
 	"fmt"
 	"strings"
 	"time"
 
-	"k8s.io/apimachinery/pkg/util/json"
 	"k8s.io/client-go/pkg/api/v1"
 	"k8s.io/client-go/pkg/apis/apps/v1beta1"
 	"k8s.io/client-go/pkg/labels"
diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go
index 0075a07b..3f50158c 100644
--- a/pkg/controller/controller.go
+++ b/pkg/controller/controller.go
@@ -5,7 +5,6 @@ import (
 	"sync"
 
 	"github.com/Sirupsen/logrus"
-	etcdclient "github.com/coreos/etcd/client"
 	"k8s.io/client-go/kubernetes"
 	"k8s.io/client-go/pkg/api/v1"
 	"k8s.io/client-go/rest"
@@ -21,7 +20,6 @@ type Config struct {
 	RestConfig          *rest.Config
 	KubeClient          *kubernetes.Clientset
 	RestClient          *rest.RESTClient
-	EtcdClient          etcdclient.KeysAPI
 	TeamsAPIClient      *teams.API
 	InfrastructureRoles map[string]spec.PgUser
 }
@@ -122,10 +120,6 @@ func (c *Controller) initController() {
 		DeleteFunc: c.podDelete,
 	})
 
-	if err := c.initEtcdClient(c.opConfig.EtcdHost); err != nil {
-		c.logger.Fatalf("Can't get etcd client: %s", err)
-	}
-
 	c.clusterEventQueues = make([]*cache.FIFO, c.opConfig.Workers)
 	for i := range c.clusterEventQueues {
 		c.clusterEventQueues[i] = cache.NewFIFO(func(obj interface{}) (string, error) {
diff --git a/pkg/controller/etcd.go b/pkg/controller/etcd.go
deleted file mode 100644
index 0bb38fe5..00000000
--- a/pkg/controller/etcd.go
+++ /dev/null
@@ -1,25 +0,0 @@
-package controller
-
-import (
-	"fmt"
-	"time"
-
-	etcdclient "github.com/coreos/etcd/client"
-)
-
-func (c *Controller) initEtcdClient(etcdHost string) error {
-	etcdURL := fmt.Sprintf("http://%s", etcdHost)
-
-	cfg, err := etcdclient.New(etcdclient.Config{
-		Endpoints:               []string{etcdURL},
-		Transport:               etcdclient.DefaultTransport,
-		HeaderTimeoutPerRequest: time.Second,
-	})
-	if err != nil {
-		return err
-	}
-
-	c.EtcdClient = etcdclient.NewKeysAPI(cfg)
-
-	return nil
-}
diff --git a/pkg/controller/util.go b/pkg/controller/util.go
index 5d002cda..94f9fc89 100644
--- a/pkg/controller/util.go
+++ b/pkg/controller/util.go
@@ -23,7 +23,6 @@ func (c *Controller) makeClusterConfig() cluster.Config {
 	return cluster.Config{
 		KubeClient:          c.KubeClient,
 		RestClient:          c.RestClient,
-		EtcdClient:          c.EtcdClient,
 		TeamsAPIClient:      c.TeamsAPIClient,
 		OpConfig:            config.Copy(c.opConfig),
 		InfrastructureRoles: infrastructureRoles,
-- 
GitLab