The fix for this is to add on-link: true
to the netplan config via cloud-init, e.g.
config:
user.network-config: |
version: 2
ethernets:
eth0:
addresses:
- 192.168.1.201/32
nameservers:
addresses:
- 8.8.8.8
routes:
- to: 0.0.0.0/0
via: 169.254.0.1
on-link: true
devices:
eth0:
ipv4.address: 192.168.1.201
nictype: routed
parent: enp3s0
type: nic
Tested working in focal and bionic.