VOL-3934 - TLS connection support
This is a bit of a breaking change as the current voltctl config
file defines verify as a string when it should have been a bool
from the start.
depends on merge of https://gerrit.opencord.org/c/voltha-lib-go/+/23594
Change-Id: Idb1f90a6bc827a599f2290bd276604997aab44e8
diff --git a/internal/pkg/commands/log.go b/internal/pkg/commands/log.go
index 77d97e9..a1110b4 100644
--- a/internal/pkg/commands/log.go
+++ b/internal/pkg/commands/log.go
@@ -17,11 +17,10 @@
import (
"context"
+ "crypto/tls"
"encoding/json"
"errors"
"fmt"
- "net"
- "strconv"
"strings"
flags "github.com/jessevdk/go-flags"
@@ -30,6 +29,7 @@
"github.com/opencord/voltha-lib-go/v4/pkg/config"
"github.com/opencord/voltha-lib-go/v4/pkg/db/kvstore"
"github.com/opencord/voltha-lib-go/v4/pkg/log"
+ v3Client "go.etcd.io/etcd/clientv3"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
@@ -250,14 +250,24 @@
}
func constructConfigManager(ctx context.Context) (*config.ConfigManager, func(), error) {
- client, err := kvstore.NewEtcdClient(ctx, GlobalConfig.KvStore, GlobalConfig.KvStoreConfig.Timeout, log.FatalLevel)
+ var tlsConfig *tls.Config
+ if GlobalConfig.Tls.UseTls {
+ tlsConfig = &tls.Config{InsecureSkipVerify: !GlobalConfig.Tls.Verify}
+ }
+ logconfig := log.ConstructZapConfig(log.JSON, log.FatalLevel, log.Fields{})
+ client, err := kvstore.NewEtcdCustomClient(
+ ctx,
+ &v3Client.Config{
+ Endpoints: []string{GlobalConfig.KvStore},
+ DialTimeout: GlobalConfig.KvStoreConfig.Timeout,
+ LogConfig: &logconfig,
+ TLS: tlsConfig,
+ })
if err != nil {
return nil, nil, fmt.Errorf("Unable to create kvstore client %s", err)
}
- // Already error checked during option processing
- host, port, _ := splitEndpoint(GlobalConfig.KvStore, defaultKvHost, defaultKvPort)
- cm := config.NewConfigManager(ctx, client, supportedKvStoreType, net.JoinHostPort(host, strconv.Itoa(port)), GlobalConfig.KvStoreConfig.Timeout)
+ cm := config.NewConfigManager(ctx, client, supportedKvStoreType, GlobalConfig.KvStore, GlobalConfig.KvStoreConfig.Timeout)
return cm, func() { client.Close(ctx) }, nil
}
@@ -685,8 +695,7 @@
if len(options.Args.Component) == 0 {
componentList, err = cm.RetrieveComponentList(ctx, config.ConfigTypeLogLevel)
if err != nil {
- host, port, _ := splitEndpoint(GlobalConfig.KvStore, defaultKvHost, defaultKvPort)
- return fmt.Errorf("Unable to retrieve list of voltha components : %s \nIs ETCD available at %s:%d?", err, host, port)
+ return fmt.Errorf("Unable to retrieve list of voltha components : %s \nIs ETCD available at %s?", err, GlobalConfig.KvStore)
}
} else {
componentList = toStringArray(options.Args.Component)