{% set dhcrelays = prefixes | selectattr('prefix', 'in', dhcp_servers | map('first') | ipaddr("network/prefix"))
    | map(attribute="vrf.name") | map('regex_replace', '^', 'dhcrelay@') %}
{% set exits = [inventory_hostname, peer]|sort -%}

global_defs {
    enable_script_security
    script_user root
}

vrrp_instance dhcrelay {
    virtual_router_id 50
    virtual_ipaddress { 169.254.1.1/24 }
    interface peerlink.4
{% for exit in exits %}
    @{{ exit }} priority {{ loop.index }}
    @{{ exit }} unicast_src_ip {{ "169.254.1.0/24" | ipaddr(loop.index + 1) | ipaddr('address') }}
{% endfor %}
    unicast_peer {
{% for exit in exits %}
        @^{{ exit }} {{ "169.254.1.0/24" | ipaddr(loop.index + 1) | ipaddr('address') }}
{% endfor %}
    }
    notify_master "systemctl start {{ dhcrelays | join(' ') }}"
    notify_fault "systemctl start {{ dhcrelays | join(' ') }}"
    notify_backup "systemctl stop {{ dhcrelays | join(' ') }}"
    notify_stop "systemctl stop {{ dhcrelays | join(' ') }}"
}