implement k8s service discovery (#988)

* implement k8s service discovery

* simplify code

* use default namespace if not provided

* disable codecov bot comment

* ignore adhoc dir

* simplify building target in NewClient

* reformat code

* Fix filepath (#990)

* format code, and reorg imports (#991)

* add more unit test

Co-authored-by: anqiansong <anqiansong@gmail.com>
This commit is contained in:
Kevin Wan
2021-09-04 10:27:08 +08:00
committed by GitHub
parent 0325d8e92d
commit 20f665ede8
19 changed files with 979 additions and 41 deletions

View File

@@ -55,13 +55,21 @@ func NewClient(c RpcClientConf, options ...ClientOption) (Client, error) {
}
opts = append(opts, options...)
var client Client
var target string
var err error
if len(c.Endpoints) > 0 {
client, err = internal.NewClient(internal.BuildDirectTarget(c.Endpoints), opts...)
} else if err = c.Etcd.Validate(); err == nil {
client, err = internal.NewClient(internal.BuildDiscovTarget(c.Etcd.Hosts, c.Etcd.Key), opts...)
target = internal.BuildDirectTarget(c.Endpoints)
} else if len(c.Target) > 0 {
target = c.Target
} else {
if err = c.Etcd.Validate(); err != nil {
return nil, err
}
target = internal.BuildDiscovTarget(c.Etcd.Hosts, c.Etcd.Key)
}
client, err := internal.NewClient(target, opts...)
if err != nil {
return nil, err
}