11{% set haproxy = salt ["pillar.get" ]("haproxy" , {}) -%}
22{% set psf_internal = salt ["pillar.get" ]("psf_internal_network" ) -%}
33
4+ resolvers consul
5+ nameserver consul 127.0.0.1:8600
6+ accepted_payload_size 8192
7+ hold valid 5s
8+
49global
510 log /dev/log local0
611 log /dev/log local1 notice
@@ -215,7 +220,25 @@ backend redirect
215220{% for service , config in haproxy .services .items () %}
216221backend {{ service }}
217222 {% if config .get ("check" ) -%}
223+ {% if grains ["oscodename" ] != "noble" -%}
218224 option httpchk {{ config.check }}
225+ {% - else -%}
226+ # Noble Config using the newer http-check syntax
227+ # We need to split the check into parts to handle the extra things
228+ # ...maybe there is a better way to do this?
229+ {% set check_parts = config .check .split (' ' , 2) -%}
230+ {% set method = check_parts [0] -%}
231+ {% set path = check_parts [1] -%}
232+ {% if check_parts |length > 2 -%}
233+ {% set extra = check_parts [2].split ('\r\n' ) -%}
234+ {% set version = extra [0] -%}
235+ {% set headers = extra [1:] -%}
236+ {% endif -%}
237+ http-check send meth {{ method }} uri {{ path }} ver {{ version }}
238+ {% - for header in headers %}
239+ http-check send hdr {{ header.replace(':\\ ', ': ') }}
240+ {% - endfor %}
241+ {% - endif %}
219242 {% - endif %}
220243
221244 # http://gnuterrypratchett.com/
@@ -230,8 +253,7 @@ backend {{ service }}
230253 {{ item }}
231254 {% endfor -%}
232255
233- {{ "{{" }}range service "{{ service }}@{{ pillar.dc }}" "any"}}
234- {% raw %} server {{.Node}} {{.Address}}:{{.Port}}{% endraw %}{% if config .get ("check" , True ) %} check{% if config .get ("sni" , False )%} check-sni {{ config.get("sni") }}{% endif %}{% if config .get ("sni" , False )%} sni str({{ config.get("sni") }}){% endif %}{% endif %}{% if config .get ("tls" , True ) %} ssl force-tlsv12 verifyhost {{ config.get("verify_host", service + ".psf.io") }} ca-file {{ config.get("ca-file", "PSF_CA.pem") }}{% endif %} {{ "{{end}}" }}
256+ server-template backend {{ config.get("backends", 2) }} _{{ service }}._tcp.service.{{ pillar.dc }}.consul resolvers consul resolve-opts allow-dup-ip resolve-prefer ipv4 {% if config .get ("check" , True ) %} check{% if config .get ("sni" , False )%} check-sni {{ config.get("sni") }}{% endif %}{% if config .get ("sni" , False )%} sni str({{ config.get("sni") }}){% endif %}{% endif %}{% if config .get ("tls" , True ) %} ssl force-tlsv12 verifyhost {{ config.get("verify_host", service + ".psf.io") }} ca-file {{ config.get("ca-file", "PSF_CA.pem") }}{% endif %}
235257
236258{% endfor %}
237259
@@ -248,8 +270,7 @@ listen {{ name }}
248270 {{ line }}
249271 {% endfor %}
250272
251- {{ "{{" }}range service "{{ config.service }}@{{ pillar.dc }}"}}
252- {% raw %} server {{.Node}} {{.Address}}:{{.Port}} check{{end}}{% endraw %}{% if config .get ("send_proxy" , False ) %} send-proxy{% endif %}
273+ server-template backend {{ config.get("backends", 2) }} _{{ config.service }}._tcp.service.{{ pillar.dc }}.consul resolvers consul resolve-opts allow-dup-ip resolve-prefer ipv4 check {% if config .get ("send_proxy" , False ) %} send-proxy{% endif %}
253274
254275{% endfor %}
255276
0 commit comments