diff --git a/haproxy/templates/haproxy.jinja b/haproxy/templates/haproxy.jinja index 9ad1544..bed02bc 100644 --- a/haproxy/templates/haproxy.jinja +++ b/haproxy/templates/haproxy.jinja @@ -160,6 +160,14 @@ defaults errorfile {{ errorfile_name }} {{ errorfile }} {%- endfor %} {% endif %} + +{%- for error_name, error_files in salt['pillar.get']('haproxy:httperrors', {}) | dictsort %} +http-errors {{ error_name }} + {%- for code, file in error_files | dictsort %} + errorfile {{ code }} {{ file }} + {%- endfor %} +{%- endfor %} + {%- if salt['pillar.get']('haproxy:resolvers') %} @@ -312,6 +320,9 @@ listen {{ listener.get('name', listener_name) }} {%- endfor %} {%- endif %} {%- endif %} + {%- if 'errorfiles' in listener %} + errorfiles {{ listener.errorfiles }} + {%- endif %} {%- if 'default_backend' in listener %} default_backend {{ listener.default_backend }} {%- endif %} @@ -472,6 +483,9 @@ frontend {{ frontend.get('name', frontend_name) }} {%- endfor %} {%- endif %} {%- endif %} + {%- if 'errorfiles' in frontend %} + errorfiles {{ frontend.errorfiles }} + {%- endif %} {%- if 'default_backend' in frontend %} default_backend {{ frontend.default_backend }} {%- endif %} @@ -487,6 +501,9 @@ frontend {{ frontend.get('name', frontend_name) }} #------------------ {%- for backend_name, backend in salt['pillar.get']('haproxy:backends', {})|dictsort %} backend {{ backend.get('name', backend_name) }} + {%- if 'errorfiles' in backend %} + errorfiles {{ backend.errorfiles }} + {%- endif %} {%- if 'mode' in backend %} mode {{ backend.mode }} {%- endif %} diff --git a/pillar.example b/pillar.example index 3a05a85..76e24f1 100644 --- a/pillar.example +++ b/pillar.example @@ -90,6 +90,10 @@ haproxy: 503: /etc/haproxy/errors/503.http 504: /etc/haproxy/errors/504.http + httperrors: + corp: + 503: /etc/haproxy/errors/corp/503.http + resolvers: local_dns: options: @@ -171,6 +175,10 @@ haproxy: - scheme https if !{ ssl_fc } reqadds: - "X-Forwarded-Proto:\\ http" + errorfiles: corp + httpresponses: + - return: + - status 503 errorfiles corp if { status 503 } default_backend: www-backend # www-https: