global_defs {
    {% if keepalived_enable_script_security %}

    enable_script_security
    script_user {{ keepalived_script_username }}

    {% endif %}
}

{% for script in keepalived_scripts %}
vrrp_script {{ script.name }} {
        script "{{ script.script }}"
        interval {{ script.interval | default(1) }}
        weight {{ script.weight | default(2) }}
        fall {{ script.fall | default(3) }}
        rise {{ script.raise | default(2) }}
        timeout {{ script.timeout | default(5) }}
}
{% endfor %}

{% for instance in keepalived_instances %}
vrrp_instance {{ instance.name }} {
        interface {{ instance.interface }}
        {% if instance.state is defined %}

        state {{ instance.state }}

        {% endif %}
        virtual_router_id {{ instance.vrouter_id }}
        priority {{ instance.priority }}
        {% if instance.notify is defined %}

        notify {{ instance.notify }}

        {% endif %}
        {% if instance.nopreempt is defined and instance.nopreempt %}

        nopreempt

        {% endif %}
        {% if instance.authentication is defined %}

        authentication {
            auth_type {{ instance.authentication }}
            auth_pass {{ instance.authpass }}
        }

        {% endif %}
        virtual_ipaddress {
        {% for addr in instance.v_addr %}
            {{ addr }}
        {% endfor %}
        }
        track_script {
        {% for trk in instance.track_script %}
            {{ trk }}
        {% endfor %}
        }
        {% if instance.track_interface is defined %}

        track_interface {
        {% for if in instance.track_interface %}
            {{ if }}
        {% endfor %}
        }

        {% endif %}
        {% if keepalived_use_unicast %}

        unicast_src_ip {{ instance.keepalived_unicast_src_ip }}
        unicast_peer {

            {% for ipaddr in instance.keepalived_unicast_peer_ip %}
            {{ ipaddr }}
            {% endfor %}

        }

        {% endif %}
}
{% endfor %}