The switches in rows E and F in Eqiad, and in drmrs, are set up to provide a routed access layer. In other words each rack has a different subnet / vlan, and the switch acts as the default gateway for local servers on that subnet.
This causes an issue for our Kubernetes hosts, which use the Calico framework to configure networking and set up BGP peerings to the physical network. Currently each K8s server peers with the two core routers at each site, to their loopback IPs, so the peering will establish no matter what row/subnet the server is in. The BGP peer IPs are defined globally for each site, for example:
This works well for the existing setup, where all switches are layer-2 only and the core routers are the IP gateway for all hosts. With layer-3 access switches this will not work, however. The K8s hosts will instead need to form a BGP adjacency with the top-of-rack switch.
There appears to be some scope in Calico to define BGP peers per-node, using a label-selector:
https://projectcalico.docs.tigera.io/networking/bgp#configure-a-per-node-bgp-peer
There may be other options also, host or network side. Creating this task to facilitate discussion on the topic and try to arrive at a solution.