In 1.4.0-rc3, entire portions of the config are being deleted when an interface is either not up yet, or no longer present. This behavior is not present in 1.4.0-rc1.
If an interface comes up after the migration script is run, like those created by containers, the migration script is deleting not just the config related to the "missing" interface, but the entire parent config as well (MPLS, OSPF, etc...). This would also impact interfaces that may change due to the use of a USB Ethernet adapter, the pulling of an unused PCIe card from the system (causing interface numbering to change), and even missing logical interfaces like dummy interfaces This is very undesired behavior as it makes any remote reboot potentially outage causing.
vyos@vyos# run show log | match migrat Jan 26 17:14:07 vyos-router[974]: Starting VyOS router: migrate configure failed! vyos@vyos# compare commands 0 delete interfaces ethernet eth10 mtu '1500' delete protocols mpls interface 'eth10' delete protocols ospf interface eth1 area '0' delete protocols ospf interface eth10 area '0' delete protocols ospf interface eth10 network 'point-to-point' delete protocols pim interface eth1 delete protocols pim interface eth10 delete protocols pim rp address 10.0.0.1 group '224.0.0.0/4'
The interface that is not yet up in that example is eth10 (ZeroTier interface created from a container), but you can see the entire parent configs for OSPF and PIM are deleted. Nothing should be deleted, as eth10 will be up shortly.