A simple solution could be to add a variable that identify if is present a VIP on the API interface in group_vars/all.yml (e.g. e.g. haproxy_enable_internal_vip: "{{ 'no' if kolla_internal_vip_address == api_interface_address else 'yes' }}") and then put a condition in haproxy_single_service_split.cfg.j2 template to avoid internal front-end and back-end bindings.
A simple solution could be to add a variable that identify if is present a VIP on the API interface in group_vars/all.yml (e.g. e.g. haproxy_ enable_ internal_ vip: "{{ 'no' if kolla_internal_ vip_address == api_interface_ address else 'yes' }}") and then put a condition in haproxy_ single_ service_ split.cfg. j2 template to avoid internal front-end and back-end bindings.