{% for frontend, config in haproxy_frontends.items() %}
frontend {{ frontend }}
{% for key, value in config.items()|sort if key != 'acl' and key != 'use_backend' %}
{% if key == "bind" %}
bind {{ value["ip"] }}:{{ value["port"] }}{% if value["ssl"] is defined %} ssl{% if value["ssl"]["ciphers"] is defined %} ciphers {{ value["ssl"]["ciphers"]|join(':') }}{% endif %}{% if value["ssl"]["crt"]%} crt {{ value["ssl"]["crt"] }}{% endif %}
{% endif %}
{% elif value is iterable and value is not string %}
{% for option in value %}
{{ key }} {{ option }}
{% endfor %}
{% else %}
{{ key }} {{ value }}
{% endif %}
{% endfor %}
{% if 'acl' in config %}
{% for option in config['acl'] %}
acl {{ option }}
{% endfor %}
{% endif %}
{% if 'use_backend' in config %}
{% for option in config['use_backend'] %}
use_backend {{ option }}
{% endfor %}
{% endif %}
{% endfor %}
{% for backend, config in haproxy_backends.items() %}
backend {{ backend }}
{% for key, value in config.items() %}
{% if value is sameas true %}
{{ key }}
{% elif value is iterable and value is not string %}