Add server specific backend options

Ability to add per server backend options to backend nodes.
For example if adding cookies for persistance:
haproxy_service_configs:
  ...
  - service:
      haproxy_service_name: serviceX
      ...
      haproxy_backend_nodes:
        - name: serverA
          ip_addr: 192.168.1.1
          backend_server_options:
            - "check cookie serverA"
        - name: serverB
          ip_addr: 192.168.1.2
          backend_server_options:
            - "check cookie serverB"
      haproxy_backend_arguments:
        - "cookie SERVERID insert indirect nocache"
      haproxy_backend_server_options:
        - "inter 3000"
   ...
Then the templated out server lines would look like:
server serverA 192.168.1.1 ... inter 3000 check cookie serverA
server serverB 192.168.1.2 ... inter 3000 check cookie serverB

Change-Id: Ief39bd50549c64f5f8d34e143acccf25dbbce299
This commit is contained in:
Georgina Shippey 2020-03-12 11:37:44 +00:00
parent 4a22e7683b
commit 04857cad3d
1 changed files with 8 additions and 0 deletions

View File

@ -127,6 +127,10 @@ backend {{ item.service.haproxy_service_name }}-back
{% set backend_server_options = item.service.haproxy_backend_server_options|default([]) %}
{% for option in backend_server_options %}
{% set _ = entry.append(option) %}
{% endfor %}
{% set backend_per_server_options = host_name.backend_server_options|default([]) %}
{% for option in backend_per_server_options %}
{% set _ = entry.append(option) %}
{% endfor %}
{{ entry | join(' ') }}
{% endfor %}
@ -161,6 +165,10 @@ backend {{ item.service.haproxy_service_name }}-back
{% set backend_server_options = item.service.haproxy_backend_server_options|default([]) %}
{% for option in backend_server_options %}
{% set _ = entry.append(option) %}
{% endfor %}
{% set backend_per_server_options = host_name.backend_server_options|default([]) %}
{% for option in backend_per_server_options %}
{% set _ = entry.append(option) %}
{% endfor %}
{{ entry | join(' ') }}
{% endfor %}