This bug was initially created as a copy of Bug #1728382 Description of problem: The interface_for_ip function assumes facter 2 syntax for facts but when running with facter 3 we end up with a newer facter that no longer provides the interface_<interface> facts. This results in the keepalived failing to start because the 'interface' config line doesn't have an interface configured.
According to our records, this should be resolved by puppet-tripleo-8.4.1-20.el7ost. This build is available now.