mirror of
https://github.com/cloudnativelabs/kube-router.git
synced 2025-11-19 12:01:17 +01:00
fix(bgp_policies.go): don't get BGP peers twice
Fixes a problem where a user would end up with redundant external peers in their BGP policies because getting peers is IP family agnostic and yet is run twice on the same list. This also ruined unit test consistency.
This commit is contained in:
parent
06f5f8babf
commit
31c22ff634
@ -430,6 +430,18 @@ func (nrc *NetworkRoutingController) addExternalBGPPeersDefinedSet() (map[v1core
|
||||
externalBgpPeers := make([]string, 0)
|
||||
externalBGPPeerCIDRs := make(map[v1core.IPFamily][]string)
|
||||
|
||||
if len(nrc.globalPeerRouters) > 0 {
|
||||
for _, peer := range nrc.globalPeerRouters {
|
||||
externalBgpPeers = append(externalBgpPeers, peer.Conf.NeighborAddress)
|
||||
}
|
||||
}
|
||||
if len(nrc.nodePeerRouters) > 0 {
|
||||
externalBgpPeers = append(externalBgpPeers, nrc.nodePeerRouters...)
|
||||
}
|
||||
if len(externalBgpPeers) == 0 {
|
||||
return externalBGPPeerCIDRs, nil
|
||||
}
|
||||
|
||||
for family, extPeerSetName := range map[v1core.IPFamily]string{
|
||||
v1core.IPv4Protocol: externalPeerSet,
|
||||
v1core.IPv6Protocol: externalPeerSetV6} {
|
||||
@ -438,17 +450,6 @@ func (nrc *NetworkRoutingController) addExternalBGPPeersDefinedSet() (map[v1core
|
||||
return externalBGPPeerCIDRs, err
|
||||
}
|
||||
|
||||
if len(nrc.globalPeerRouters) > 0 {
|
||||
for _, peer := range nrc.globalPeerRouters {
|
||||
externalBgpPeers = append(externalBgpPeers, peer.Conf.NeighborAddress)
|
||||
}
|
||||
}
|
||||
if len(nrc.nodePeerRouters) > 0 {
|
||||
externalBgpPeers = append(externalBgpPeers, nrc.nodePeerRouters...)
|
||||
}
|
||||
if len(externalBgpPeers) == 0 {
|
||||
return externalBGPPeerCIDRs, nil
|
||||
}
|
||||
for _, peer := range externalBgpPeers {
|
||||
ip := net.ParseIP(peer)
|
||||
if ip == nil {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user