From b3be108d382b33138518f48ac0b2cdc86b342a73 Mon Sep 17 00:00:00 2001 From: Manus Freedom Date: Tue, 7 Jun 2016 09:44:14 +0200 Subject: [PATCH 01/13] Fix General Settings/Custom options not applied --- .../service/templates/OPNsense/HAProxy/haproxy.conf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 81b5a454e..c1fb7f6f7 100644 --- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf +++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf @@ -491,7 +491,12 @@ global {% endif %} {% endfor %} {% endif %} - +{% if OPNsense.HAProxy.general.tuning.customOptions|default("") != "" %} + # WARNING: pass through options below this line +{% for customOpt in OPNsense.HAProxy.general.tuning.customOptions.split("\n") %} + {{customOpt}} +{% endfor %} +{% endif %} {# ############################### #} {# DEFAULTS #} From d5bc5f6cb92a5b812306f8d65a4907385bbc473e Mon Sep 17 00:00:00 2001 From: Manus Freedom Date: Tue, 7 Jun 2016 09:50:36 +0200 Subject: [PATCH 02/13] Fix frontend without SSL&certificate after one with SSL&certificate Fix SSL enable with SSL check-box unchecked --- .../templates/OPNsense/HAProxy/haproxy.conf | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) 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 c1fb7f6f7..129bd6906 100644 --- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf +++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf @@ -531,25 +531,27 @@ defaults {% if helpers.exists('OPNsense.HAProxy.frontends') %} {% for frontend in helpers.toList('OPNsense.HAProxy.frontends.frontend') %} -{% if frontend.enabled=='1' %} +{% if frontend.enabled == '1' %} # Frontend: {{frontend.name}} ({{frontend.description}}) frontend {{frontend.name}} -{# # collect ssl certs (if configured) #} -{% if frontend.ssl_certificates|default("") != "" %} -{% set ssl_certs = [] %} -{% for cert in frontend.ssl_certificates.split(",") %} -{% do ssl_certs.append('crt /var/etc/haproxy/ssl/' ~ cert ~ '.pem') %} -{% endfor %} -{% endif %} -{# # advanced ssl options #} -{% if frontend.ssl_customOptions|default("") != "" %} -{# # add a space to separate it from other ssl params #} -{% set ssl_options = frontend.ssl_customOptions ~ ' ' %} +{% if frontend.ssl_enabled == '1' %} +{# # collect ssl certs (if configured) #} +{% if frontend.ssl_certificates|default("") != "" %} +{% set ssl_certs = [] %} +{% for cert in frontend.ssl_certificates.split(",") %} +{% do ssl_certs.append('crt /var/etc/haproxy/ssl/' ~ cert ~ '.pem') %} +{% endfor %} +{% endif %} +{# # advanced ssl options #} +{% if frontend.ssl_customOptions|default("") != "" %} +{# # add a space to separate it from other ssl params #} +{% set ssl_options = frontend.ssl_customOptions ~ ' ' %} +{% endif %} {% endif %} {# # bind/listen configuration #} {% if frontend.bind|default("") != "" %} {% for bind in frontend.bind.split(",") %} - bind {{bind}} name {{bind}} {% if ssl_certs|default("") != "" %}ssl {{ ssl_options }}{{ssl_certs|join(' ')}}{% endif %} + bind {{bind}} name {{bind}} {% if frontend.ssl_enabled == '1' and ssl_certs|default("") != "" %}ssl {{ ssl_options }}{{ssl_certs|join(' ')}} {% endif %} {% endfor %} {% endif %} From 991b85651500c9a69f6975027ffb175c1def5395 Mon Sep 17 00:00:00 2001 From: Manus Freedom Date: Tue, 7 Jun 2016 09:55:28 +0200 Subject: [PATCH 03/13] Put server at end of backend --- .../templates/OPNsense/HAProxy/haproxy.conf | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) 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 129bd6906..c5da82330 100644 --- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf +++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf @@ -695,23 +695,6 @@ backend {{backend.name}} # health checking is DISABLED {% set healthcheck_enabled = '0' %} {% endif %} -{% for server in backend.linkedServers.split(",") %} -{% set server_data = helpers.getUUID(server) %} -{# # collect optional server parameters #} -{% set server_options = [] %} -{# # check if health check is enabled #} -{% if healthcheck_enabled == '1' %} -{% do server_options.append('check') %} -{% do server_options.append('inter ' ~ server_data.checkInterval) %} -{# # add all additions from healthchecks here #} -{% do server_options.append(healthcheck_additions|join(' ')) if healthcheck_additions.length != '0' %} -{% endif %} -{# # server weight #} -{% do server_options.append('weight ' ~ server_data.weight) if server_data.weight|default("") != "" %} -{# # server role/mode #} -{% do server_options.append(server_data.mode) if server_data.mode|default("") != "active" %} - server {{server_data.name}} {{server_data.address}}:{{server_data.port}} {{server_options|join(' ')}} -{% endfor %} {# # XXX: Usually the frontend and the backend are in the same mode, #} {# # but we have no way to know what frontend uses this backend. #} {# # Hence we can't automatically set the mode and thus need a #} @@ -767,6 +750,24 @@ backend {{backend.name}} {% endfor %} {% endif %} +{% for server in backend.linkedServers.split(",") %} +{% set server_data = helpers.getUUID(server) %} +{# # collect optional server parameters #} +{% set server_options = [] %} +{# if# check if health check is enabled #}("") != "" %} +{% if healthcheck_enabled == '1' %} +{% do server_options.append('check') %} +{% do server_options.append('inter ' ~ server_data.checkInterval) %} +{# # add all additions from healthchecks here #} +{% do server_options.append(healthcheck_additions|join(' ')) if healthcheck_additions.length != '0' %} +{% endif %} +{# # server weight #} +{% do server_options.append('weight ' ~ server_data.weight) if server_data.weight|default("") != "" %} +{# # server role/mode #} +{% do server_options.append(server_data.mode) if server_data.mode|default("") != "active" %} + server {{server_data.name}} {{server_data.address}}:{{server_data.port}} {{server_options|join(' ')}} +{% endfor %} + {% else %} # Backend (DISABLED): {{backend.description}} From a8d75892593dfe7802e4c1bab3eecf51b1af36b2 Mon Sep 17 00:00:00 2001 From: Manus Freedom Date: Tue, 7 Jun 2016 09:59:32 +0200 Subject: [PATCH 04/13] Add default-server parameter in backend --- .../controllers/OPNsense/HAProxy/forms/dialogBackend.xml | 6 ++++++ .../opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml | 3 +++ .../service/templates/OPNsense/HAProxy/haproxy.conf | 3 +++ 3 files changed, 12 insertions(+) diff --git a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml index d812696fb..35fe42dac 100644 --- a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml +++ b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml @@ -130,6 +130,12 @@
NOTE: The syntax will not be checked, use at your own risk!
]]>
true + + backend.tuning_defaultserver + + text + + header 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 bbb01f0ca..6e4cb1843 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 @@ -476,6 +476,9 @@ N + + N +