@@ -170,11 +170,68 @@ defaults
170170 {% - endfor %}
171171 {% - endif %}
172172{% - endif %}
173+
174+ {% - for named_defaults_name , named_defaults in salt ['pillar.get' ]('haproxy:named_defaults' , {}) %}
175+ defaults {{ named_defaults_name }}{% - if 'inherit_defaults' in named_defaults %} from {{ named_defaults.inherit_defaults }}{% - endif }
176+ {%- if 'mode' in named_defaults ) %}
177+ log {{ named_defaults['log'] }}
178+ {% - endif %}
179+ {% - if 'mode' in named_defaults %}
180+ mode {{ named_defaults['mode'] }}
181+ {% - endif %}
182+ {% - if 'retries' in named_defaults %}
183+ retries {{ named_defaults['retries'] }}
184+ {% - endif %}
185+ {% - if 'balance' in named_defaults %}
186+ balance {{ named_defaults['balance'] }}
187+ {% - endif %}
188+ {% - if 'monitoruri' in named_defaults %}
189+ monitor-uri {{ named_defaults['monitoruri'] }}
190+ {% - endif %}
191+ {% - if 'hashtype' in named_defaults %}
192+ hash-type {{ named_defaults['hashtype'] }}
193+ {% - endif %}
194+ {% - if 'options' in named_defaults -%}
195+ {{- render_list_of_dictionaries('option', named_defaults['options'] ) }}
196+ {% - endif %}
197+ {% - if 'logformat' in named_defaults %}
198+ log-format {{ named_defaults['logformat'] }}
199+ {% - endif %}
200+ {% - if 'maxconn' in named_defaults %}
201+ maxconn {{ named_defaults['maxconn'] }}
202+ {% - endif %}
203+ {% - if 'http_reuse' in named_defaults %}
204+ http-reuse {{ named_defaults['http_reuse'] }}
205+ {% - endif %}
206+ {% - if 'timeouts' in named_defaults %}
207+ {% - for timeout_type , timeout_value in named_defaults ['timeouts' ].items () %}
208+ timeout {{ timeout_type }} {{ timeout_value }}
209+ {% - endfor %}
210+ {% - else %}
211+ timeout client 1m
212+ timeout connect 10s
213+ timeout server 1m
214+ {% - endif %}
215+ {% - if 'stats' in named_defaults -%}
216+ {{ render_list_of_dictionaries('stats', named_defaults['stats'] ) }}
217+ {% - endif %}
218+ {% - if 'extra' in named_defaults %}
219+ {% - if named_defaults .get ('extra' , {}) is string %}
220+ {{ named_defaults['extra'] }}
221+ {% - else %}
222+ {% - for line in named_defaults ['extra' ] %}
223+ {{ line }}
224+ {% - endfor %}
225+ {% - endif %}
226+ {% - endif %}
227+ {% - endfor %}
228+
173229{% - if 'errorfiles' in salt ['pillar.get' ]('haproxy:defaults' , {}) %}
174230 {% - for errorfile_name , errorfile in salt ['pillar.get' ]('haproxy:defaults:errorfiles' )|dictsort %}
175231 errorfile {{ errorfile_name }} {{ errorfile }}
176232 {% - endfor %}
177233{% endif %}
234+
178235{% - if salt ['pillar.get' ]('haproxy:resolvers' ) %}
179236
180237
@@ -196,7 +253,7 @@ resolvers {{ resolver_name }}
196253# listen instances
197254#------------------
198255 {% - for listener_name , listener in salt ['pillar.get' ]('haproxy:listens' , {})|dictsort %}
199- listen {{ listener.get('name', listener_name) }}
256+ listen {{ listener.get('name', listener_name) }}{% - if 'inherit_defaults' in listener %} from {{ listener.inherit_defaults }} {% - endif }
200257 {%- if 'bind' in listener %}
201258 {% - if listener .bind is string %}
202259 bind {{ listener.bind }}
@@ -429,7 +486,7 @@ listen {{ listener.get('name', listener_name) }}
429486# frontend instances
430487#------------------
431488 {% - for frontend_name , frontend in salt ['pillar.get' ]('haproxy:frontends' , {})|dictsort %}
432- frontend {{ frontend.get('name', frontend_name) }}
489+ frontend {{ frontend.get('name', frontend_name) }}{% - if 'inherit_defaults' in frontend %} from {{ frontend.inherit_defaults }} {% - endif }
433490 {%- if 'bind' in frontend %}
434491 {{- render_list_of_dictionaries('bind', frontend.bind) }}
435492 {% - endif %}
@@ -530,7 +587,7 @@ frontend {{ frontend.get('name', frontend_name) }}
530587# backend instances
531588#------------------
532589 {% - for backend_name , backend in salt ['pillar.get' ]('haproxy:backends' , {})|dictsort %}
533- backend {{ backend.get('name', backend_name) }}
590+ backend {{ backend.get('name', backend_name) }}{% - if 'inherit_defaults' in backend %} from {{ backend.inherit_defaults }} {% - endif }
534591 {%- if 'mode' in backend %}
535592 mode {{ backend.mode }}
536593 {% - endif %}
0 commit comments