mirror of https://github.com/k3s-io/k3s.git
Add cache to spegel p2p peerinfo handler
libp2p may make a large number of bootstrap calls during startup; serve nodes from cache to avoid excessive CPU usage. Signed-off-by: Brad Davidson <brad.davidson@rancher.com>pull/12179/head
parent
11042804f3
commit
bb3b1330de
|
@ -176,15 +176,20 @@ func (s *serverBootstrapper) Get(ctx context.Context) ([]peer.AddrInfo, error) {
|
|||
if nodeName == "" {
|
||||
return nil, errors.New("node name not set")
|
||||
}
|
||||
|
||||
nodes := s.controlConfig.Runtime.Core.Core().V1().Node()
|
||||
labelSelector := labels.Set{P2pEnabledLabel: "true"}.String()
|
||||
nodeList, err := nodes.List(metav1.ListOptions{LabelSelector: labelSelector})
|
||||
if !nodes.Informer().HasSynced() {
|
||||
return nil, errors.New("node cache informer not synced")
|
||||
}
|
||||
|
||||
labelSelector := labels.Set{P2pEnabledLabel: "true"}.AsSelector()
|
||||
nodeList, err := nodes.Cache().List(labelSelector)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
addrs := []peer.AddrInfo{}
|
||||
for _, node := range nodeList.Items {
|
||||
for _, node := range nodeList {
|
||||
if node.Name == nodeName {
|
||||
// don't return our own address
|
||||
continue
|
||||
|
|
Loading…
Reference in New Issue