diff --git a/database/database.go b/database/database.go
index 75f4802..63125f6 100644
--- a/database/database.go
+++ b/database/database.go
@@ -56,6 +56,9 @@
 	case "redis":
 		database.kvc, err = kvstore.NewRedisClient(address, time.Duration(timeout), false)
 		return &database, err
+	case "etcd":
+		database.kvc, err = kvstore.NewEtcdClient(ctx, address, time.Duration(timeout), log.ErrorLevel)
+		return &database, err
 	}
 	return &database, errors.New("unsupported-kv-store")
 }
@@ -1061,14 +1064,15 @@
 	logger.Infow(ctx, "Deleting all the Update Vnet Requests for device", log.Fields{"device": deviceID})
 	return nil
 }
+
 // PutOltFlowService to add OltFlowService info
 func (db *Database) PutOltFlowService(ctx context.Context, value string) error {
 	key := GetKeyPath(OltFlowServicePath)
 
-        if err := db.kvc.Put(ctx, key, value); err != nil {
-                logger.Warnw(ctx, "Put OltFlowService failed", log.Fields{"key": key})
+	if err := db.kvc.Put(ctx, key, value); err != nil {
+		logger.Warnw(ctx, "Put OltFlowService failed", log.Fields{"key": key})
 		return err
-        }
+	}
 	return nil
 }
 
diff --git a/voltha-go-controller/config.go b/voltha-go-controller/config.go
index 496c17d..fc8c716 100644
--- a/voltha-go-controller/config.go
+++ b/voltha-go-controller/config.go
@@ -44,10 +44,10 @@
 	*/
 	defaultConnectionRetryDelay = 1
 	defaultConnectionMaxRetries = 120
-	defaultKVStoreType          = "redis"
+	defaultKVStoreType          = "etcd"
 	defaultKVStoreHost          = "127.0.0.1"
-	defaultKVStorePort          = 6379
-	defaultKVStoreTimeout       = 5
+	defaultKVStorePort          = 2379
+	defaultKVStoreTimeout       = 5000000000
 	defaultKafkaAdapterHost     = "127.0.0.1"
 	defaultKafkaAdapterPort     = 9092
 	defaultInstanceID           = "VGC-01"
diff --git a/voltha-go-controller/main.go b/voltha-go-controller/main.go
index 65c2845..8bd65f8 100644
--- a/voltha-go-controller/main.go
+++ b/voltha-go-controller/main.go
@@ -33,8 +33,9 @@
 	"voltha-go-controller/internal/pkg/vpagent"
 	"voltha-go-controller/voltha-go-controller/nbi"
 
-	"github.com/opencord/voltha-lib-go/v7/pkg/db/kvstore"
 	"voltha-go-controller/log"
+
+	"github.com/opencord/voltha-lib-go/v7/pkg/db/kvstore"
 	"github.com/opencord/voltha-lib-go/v7/pkg/probe"
 )
 
@@ -73,11 +74,13 @@
 
 }
 
-func newKVClient(storeType, address string, timeout int) (kvstore.Client, error) {
+func newKVClient(ctx context.Context, storeType, address string, timeout int) (kvstore.Client, error) {
 	logger.Infow(ctx, "kv-store-type", log.Fields{"store": storeType})
 	switch storeType {
 	case "redis":
 		return kvstore.NewRedisClient(address, time.Duration(timeout), false)
+	case "etcd":
+		return kvstore.NewEtcdClient(ctx, address, time.Duration(timeout), log.ErrorLevel)
 	}
 	return nil, errors.New("unsupported-kv-store")
 }
@@ -119,7 +122,6 @@
 	p := &probe.Probe{}
 	ctx := context.WithValue(context.Background(), probe.ProbeContextKey, p)
 
-
 	pc.Init()
 
 	// Setup logging for the program
@@ -130,9 +132,9 @@
 	if logLevel, err = log.StringToLogLevel(config.LogLevel); err != nil {
 		logLevel = log.DebugLevel
 	}
-        if err := log.SetDefaultLogger(ctx, int(logLevel), log.Fields{"instanceId": config.InstanceID}); err != nil {
-                logger.With(ctx, log.Fields{"error": err}, "Cannot setup logging")
-        }
+	if err := log.SetDefaultLogger(ctx, int(logLevel), log.Fields{"instanceId": config.InstanceID}); err != nil {
+		logger.With(ctx, log.Fields{"error": err}, "Cannot setup logging")
+	}
 
 	// Update all loggers (provisionned via init) with a common field
 	if err := log.UpdateAllLoggers(log.Fields{"instanceId": config.InstanceID}); err != nil {
@@ -140,7 +142,7 @@
 	}
 	log.SetAllLogLevel(int(logLevel))
 
-	if vgcInfo.kvClient, err = newKVClient(config.KVStoreType, config.KVStoreEndPoint, config.KVStoreTimeout); err != nil {
+	if vgcInfo.kvClient, err = newKVClient(ctx, config.KVStoreType, config.KVStoreEndPoint, config.KVStoreTimeout); err != nil {
 		logger.Errorw(ctx, "KVClient Establishment Failure", log.Fields{"Reason": err})
 	}
 
