diff --git a/docs/release-notes/release-notes-0.18.3.md b/docs/release-notes/release-notes-0.18.3.md index c3afe960020..f8f23970258 100644 --- a/docs/release-notes/release-notes-0.18.3.md +++ b/docs/release-notes/release-notes-0.18.3.md @@ -87,6 +87,9 @@ commitment when the channel was force closed. * Commitment fees are now taken into account when [calculating the fee exposure threshold](https://github.com/lightningnetwork/lnd/pull/8824). +* [Allow](https://github.com/lightningnetwork/lnd/pull/8845) multiple etcd hosts + to be specified in db.etcd.host. + ## RPC Updates * [`xImportMissionControl`](https://github.com/lightningnetwork/lnd/pull/8779) diff --git a/kvdb/etcd/config.go b/kvdb/etcd/config.go index 76ca264c9c3..e8cbaf98c5e 100644 --- a/kvdb/etcd/config.go +++ b/kvdb/etcd/config.go @@ -14,7 +14,7 @@ type Config struct { EmbeddedLogFile string `long:"embedded_log_file" description:"Optional log file to use for embedded instance logs. note: use for testing only."` - Host string `long:"host" description:"Etcd database host."` + Host string `long:"host" description:"Etcd database host. Supports multiple hosts separated by a comma."` User string `long:"user" description:"Etcd database user."` diff --git a/kvdb/etcd/db.go b/kvdb/etcd/db.go index acdda382b24..03d93c62031 100644 --- a/kvdb/etcd/db.go +++ b/kvdb/etcd/db.go @@ -8,6 +8,7 @@ import ( "fmt" "io" "runtime" + "strings" "sync" "time" @@ -138,7 +139,7 @@ func NewEtcdClient(ctx context.Context, cfg Config) (*clientv3.Client, context.Context, func(), error) { clientCfg := clientv3.Config{ - Endpoints: []string{cfg.Host}, + Endpoints: strings.Split(cfg.Host, ","), DialTimeout: etcdConnectionTimeout, Username: cfg.User, Password: cfg.Pass, diff --git a/kvdb/etcd/fixture.go b/kvdb/etcd/fixture.go index d1ef6cd7b64..b7a697fad4a 100644 --- a/kvdb/etcd/fixture.go +++ b/kvdb/etcd/fixture.go @@ -5,6 +5,7 @@ package etcd import ( "context" + "strings" "testing" "time" @@ -49,7 +50,7 @@ func NewEtcdTestFixture(t *testing.T) *EtcdTestFixture { t.Cleanup(etcdCleanup) cli, err := clientv3.New(clientv3.Config{ - Endpoints: []string{config.Host}, + Endpoints: strings.Split(config.Host, ","), Username: config.User, Password: config.Pass, }) diff --git a/sample-lnd.conf b/sample-lnd.conf index e20b5ea8e0a..70251ea10fd 100644 --- a/sample-lnd.conf +++ b/sample-lnd.conf @@ -1374,7 +1374,7 @@ [etcd] -; Etcd database host. +; Etcd database host. Supports multiple hosts separated by a comma. ; Default: ; db.etcd.host= ; Example: