Allow to setup redirect for backend

  haproxy:
    proxy:
      listen:
        keystone_public_api:
          redirects:
          - code: 301
            location: keystone.it.just.works

Related-Prod: PROD-35804
Change-Id: I75100dda15f41e39615031dfd4ab8ee9a50772c2
diff --git a/haproxy/files/haproxy.cfg b/haproxy/files/haproxy.cfg
index 96228dd..4600c4a 100644
--- a/haproxy/files/haproxy.cfg
+++ b/haproxy/files/haproxy.cfg
@@ -278,6 +278,11 @@
   {%- if listen.rate_limit is defined and listen.rate_limit.get('enabled', False) %}
   {%- include "haproxy/files/_rate_limit.cfg" %}
   {%- endif %}
+  {%- if listen.redirects is defined %}
+  {%- for redirect in listen.redirects %}
+  http-request redirect {% if redirect.code is defined %} code {{ redirect.code }} {% endif %} location {{ redirect.location }} {%- if redirect.condition_raw is defined %} {{ redirect.condition_raw }} {%- endif %}
+  {%- endfor %}
+  {%- else %}
   {%- for server in listen.get('servers', []) %}
     {%- set port_range_length=server.get('port_range_length', 1) %}
     {%- set port_range_start_offset=server.get('port_range_start_offset', 0) %}
@@ -285,6 +290,7 @@
   server {{ server.name }}{% if worker_port > 0 %}p{{ worker_port }}{% endif %} {{ server.host }}:{{ server.port + worker_port }} {{ server.get('params', '') }}
     {%- endfor %}
   {%- endfor %}
+  {%- endif %}
   {%- if listen.rate_limit is defined and listen.rate_limit.get('enabled', False) %}
 backend {{ listen_name }}-rate_limit
   {%- set stick_table_found = { 'val': false } %}