Skip to content

sapcc/cni-nanny

Repository files navigation

cni-nanny

CI Go Report Card

Helper for CNI operations. Set of controllers help to discover and configure Calico BGP peers.

[architecture]

Why?

Each rack TORs have different IP addresses for peering with Calico nodes. Peer discovery is based on traceroute.

Rediscover BGP Peers

In case Calico BGPPeers need to be recreated (e.g. BGPFilters or AS number change), following can be done to trigger rediscovery.

  1. Optional. Given each rack has two BGP peers, remove the half of BGP peers at one time to avoid downtime.
# print every first line
› kubectl get bgppeer | awk '{print $1}' | grep -v NAME | awk 'NR % 2 == 1'

# print every second line
› kubectl get bgppeer | awk '{print $1}' | grep -v NAME | awk 'NR % 2 == 0'
  1. Delete Calico BGPPeer resources
› kubectl delete bgppeer bgp-peer-pod123-10.10.11.10
  1. Delete BgpPeerDiscovery resources.
› kubectl delete bgppeerdiscovery -l app.kubernetes.io/managed-by=cni-nanny
  1. Delete LabelDiscovery resources.
› kubectl delete labeldiscovery -l app.kubernetes.io/managed-by=cni-nanny
  1. Wait for the new discovery to complete.