mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-10-09 04:17:51 +00:00
etcd tls configuration support
This commit is contained in:
parent
b6810f3ce7
commit
f52b88a962
3 changed files with 30 additions and 1 deletions
|
|
@ -63,8 +63,13 @@ func BuildServerFlags(cmd *cobra.Command, srv *server.Command) {
|
|||
flags.StringVar(&srv.Config.Etcd.LPeerURL, "etcd.listen-peer-address", srv.Config.Etcd.LPeerURL, "Listen peer address.")
|
||||
flags.StringVar(&srv.Config.Etcd.APeerURL, "etcd.advertise-peer-address", srv.Config.Etcd.APeerURL, "Advertise peer address. If not provided, uses the listen peer address.")
|
||||
flags.StringVar(&srv.Config.Etcd.ClusterURL, "etcd.cluster-url", srv.Config.Etcd.ClusterURL, "Cluster URL to join.")
|
||||
// Etcd.ClusterName uses Cluster.Name for its value.
|
||||
flags.StringVar(&srv.Config.Etcd.InitCluster, "etcd.initial-cluster", srv.Config.Etcd.InitCluster, "Initial cluster name1=apurl1,name2=apurl2")
|
||||
// Etcd specified tls configuration options
|
||||
flags.StringVar(&srv.Config.Etcd.TrustedCAFile, "etcd.tls-trusted-cafile", srv.Config.Etcd.TrustedCAFile, "Certificate Authority certificate")
|
||||
flags.StringVar(&srv.Config.Etcd.ClientCertFile, "etcd.tls-cert-file", srv.Config.Etcd.ClientCertFile, "Client certificate (required for tls)")
|
||||
flags.StringVar(&srv.Config.Etcd.ClientKeyFile, "etcd.tls-key-file", srv.Config.Etcd.ClientKeyFile, "Client key file (required for tls)")
|
||||
flags.StringVar(&srv.Config.Etcd.PeerCertFile, "etcd.tls-peer-cert-file", srv.Config.Etcd.PeerCertFile, "Peer certificate (required for tls)")
|
||||
flags.StringVar(&srv.Config.Etcd.PeerKeyFile, "etcd.tls-peer-key-file", srv.Config.Etcd.PeerKeyFile, "Peer key file (required for tls)")
|
||||
|
||||
// AntiEntropy
|
||||
flags.DurationVar((*time.Duration)(&srv.Config.AntiEntropy.Interval), "anti-entropy.interval", (time.Duration)(srv.Config.AntiEntropy.Interval), "Interval at which to run anti-entropy routine.")
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ import (
|
|||
"go.etcd.io/etcd/embed"
|
||||
"go.etcd.io/etcd/etcdserver/api/v3client"
|
||||
"go.etcd.io/etcd/mvcc/mvccpb"
|
||||
"go.etcd.io/etcd/pkg/transport"
|
||||
"go.etcd.io/etcd/pkg/types"
|
||||
)
|
||||
|
||||
|
|
@ -48,6 +49,12 @@ type Options struct {
|
|||
InitCluster string `toml:"initial-cluster"`
|
||||
ClusterName string `toml:"cluster-name"`
|
||||
HeartbeatTTL int64 `toml:"heartbeat-ttl"`
|
||||
// TLS provided tls files
|
||||
TrustedCAFile string `toml:"tls-trusted-cafile"`
|
||||
ClientCertFile string `toml:"tls-cert-file"`
|
||||
ClientKeyFile string `toml:"tls-key-file"`
|
||||
PeerCertFile string `toml:"tls-peer-cert-file"`
|
||||
PeerKeyFile string `toml:"tls-peer-key-file"`
|
||||
|
||||
LPeerSocket []*net.TCPListener
|
||||
LClientSocket []*net.TCPListener
|
||||
|
|
@ -171,6 +178,17 @@ func parseOptions(opt Options) *embed.Config {
|
|||
id, name := memberAdd(cli, opt.APeerURL)
|
||||
log.Printf("\tid: %d, name: %s\n", id, name)
|
||||
}
|
||||
// can only use tls if not using pre-configured listeners
|
||||
cfg.ClientTLSInfo = transport.TLSInfo{
|
||||
TrustedCAFile: opt.TrustedCAFile,
|
||||
CertFile: opt.ClientCertFile,
|
||||
KeyFile: opt.ClientKeyFile,
|
||||
}
|
||||
cfg.PeerTLSInfo = transport.TLSInfo{
|
||||
TrustedCAFile: opt.TrustedCAFile,
|
||||
CertFile: opt.PeerCertFile,
|
||||
KeyFile: opt.PeerKeyFile,
|
||||
}
|
||||
|
||||
return cfg
|
||||
}
|
||||
|
|
|
|||
|
|
@ -351,6 +351,12 @@ func NewConfig() *Config {
|
|||
c.Etcd.InitCluster = c.Name + "=" + c.Etcd.LPeerURL
|
||||
c.Etcd.HeartbeatTTL = 5
|
||||
|
||||
c.Etcd.TrustedCAFile = ""
|
||||
c.Etcd.ClientCertFile = ""
|
||||
c.Etcd.ClientKeyFile = ""
|
||||
c.Etcd.PeerCertFile = ""
|
||||
c.Etcd.PeerKeyFile = ""
|
||||
|
||||
return c
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue