diff --git a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/main.xml b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/main.xml index 04a05134c..3f2cb6d37 100644 --- a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/main.xml +++ b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/main.xml @@ -20,6 +20,58 @@ + + + haproxy.general.peers.enabled + + checkbox + + + + + header + + + haproxy.general.peers.name1 + + text + + + + haproxy.general.peers.listen1 + + text + + + + haproxy.general.peers.port1 + + text + + + + + header + + + haproxy.general.peers.name2 + + text + + + + haproxy.general.peers.listen2 + + text + + + + haproxy.general.peers.port2 + + text + + + diff --git a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml index 798cc4467..50435b9c8 100644 --- a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml +++ b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml @@ -17,6 +17,38 @@ 1 + + + 0 + Y + + + N + + + N + + + 1024 + 1 + 65535 + Please specify a value between 1 and 65535. + N + + + N + + + N + + + 1024 + 1 + 65535 + Please specify a value between 1 and 65535. + N + + 0 diff --git a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/Menu/Menu.xml b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/Menu/Menu.xml index d91b7c8ed..b49bddb1f 100644 --- a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/Menu/Menu.xml +++ b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/Menu/Menu.xml @@ -3,6 +3,7 @@ + diff --git a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf index bd0954a1d..a4b193405 100644 --- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf +++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf @@ -3,6 +3,15 @@ # Do not edit this file manually. {% if helpers.exists('OPNsense.HAProxy') %} +{# ############################### #} +{# GLOBAL VARIABLES #} +{# ############################### #} + +{%- if helpers.exists('OPNsense.HAProxy.general.peers') and OPNsense.HAProxy.general.peers.enabled|default("") == "1" -%} +{% set peers_enabled = True %} +{% set peers_name = 'opnsense-haproxy-peers' %} +{%- endif -%} + {# ############################### #} {# MACROS #} {# ############################### #} @@ -540,7 +549,8 @@ {% endif %} {# # add stick-table #} {% if table_type is defined %} - stick-table type {{table_type}} {%if add_length is defined %}len {{data_length}} {% endif %}size {{proxy.stickiness_size}} expire {{proxy.stickiness_expire}} {{stickiness_store}} + stick-table type {{table_type}} {%if add_length is defined %}len {{data_length}} {% endif %}size {{proxy.stickiness_size}} expire {{proxy.stickiness_expire}} {{stickiness_store}} {% if peers_enabled is defined %}{{'peers ' ~ peers_name}}{% endif %} + {% endif %} {# # sticky counters (frontends only) #} {%- if backend == False -%} @@ -558,7 +568,7 @@ {%- elif proxy.stickiness_pattern != '' %} stick on src {%- endif -%} -{%- endif -%} +{%- endif -%} {% endif %} {% else %} # ERROR: StickTableConfig called with empty data @@ -1058,6 +1068,24 @@ backend {{backend.name}} {% endfor %} {% endif %} +{# ############################### #} +{# PEERS #} +{# ############################### #} + +{% if helpers.exists('OPNsense.HAProxy.general.peers') and OPNsense.HAProxy.general.peers.enabled|default("") == "1" %} +{# # ensure that no value is missing #} +{% if OPNsense.HAProxy.general.peers.name1|default("") != '' and + OPNsense.HAProxy.general.peers.listen1|default("") != '' and + OPNsense.HAProxy.general.peers.port1|default("") != '' and + OPNsense.HAProxy.general.peers.name2|default("") != '' and + OPNsense.HAProxy.general.peers.listen2|default("") != '' and + OPNsense.HAProxy.general.peers.port2|default("") != '' %} +peers {{peers_name}} + peer {{OPNsense.HAProxy.general.peers.name1}} {{OPNsense.HAProxy.general.peers.listen1}}:{{OPNsense.HAProxy.general.peers.port1}} + peer {{OPNsense.HAProxy.general.peers.name2}} {{OPNsense.HAProxy.general.peers.listen2}}:{{OPNsense.HAProxy.general.peers.port2}} +{% endif %} +{% endif %} + {# ############################### #} {# STATISTICS #} {# ############################### #}