Unfortunately the effects only work temporarily, eventually Google Wifi starts rerouting traffic based on the MAC address to the wrong ip. The workaround for now is to use an ingress with NodePort then forward to any node. Unfortunately this breaks failover but at least nodes can have static ips.
Google Wifi doesn't obey normal ARP announcements made form metallb or other Kubernetes services. This creates a problem when trying to create port forwarding rules in Google Wifi because ingress and services never show up in the UI.
This project creates a loop that basically spoofs a packet from the ingress ip you want to advertise. Unfourtunately it's not enough to do this once, you must do it constantly or Google Wifi will try to change the forwarding rule to whatever MAC address it has. It may also help to direct inbound traffic to keep the route alive.
export HOST_IP=[IP ADDRESS TO ADVERTISE]
export DEST_IP=8.8.8.8
python advertise.py
docker run -e HOST_IP=[IP ADDRESS TO ADVERTISE] DEST_IP=[DESTINATION ip, maybe use 8.8.8.8] todaywasawesome/metallb-google-wifi-announce
Modify the daemonset yaml with the ip address you want to advertise then apply if with kubectl apply -f metallb-google-wifi-announce-daemonset.yaml
Special thanks to Etienne Champetier for showing me how to use Scapy. And to Redditor u/jaygrok for having thread that was easy to follow and documented the issue. I hope you found a resolution :)