Allow custom per-service listen_options for haproxy
There are situations where it would be advantageous to let
an operator specify custom per-service options.
One such use case seen in the wild is to extend the timeout of the cinder
because due to the specific storage backend these cinder operations
sometimes take a bit longer. Letting the user tweak the
haproxy_default_timeout is likely not what we want as for the case
above we only want to tweak a single service.
We explored another approach to fix this by adding a bunch of
<service>_options class parameters in the tripleo::haproxy class but it
made it extremely bloated and confusing, so we opted for this approach
which is much less invasive both code-wise and complexity-wise
And observing the following cinder haproxy stanza:
listen cinder
bind 10.0.0.4:8776 transparent
bind 172.16.2.9:8776 transparent
mode http
http-request set-header X-Forwarded-Proto https if { ssl_fc }
http-request set-header X-Forwarded-Proto http if !{ ssl_fc }
option httpchk
option httplog
timeout client 90m
timeout server 90m
server overcloud-controller-0.internalapi.localdomain 172.16.2.7:8776 check fall 5 inter 2000 rise 2
server overcloud-controller-1.internalapi.localdomain 172.16.2.16:8776 check fall 5 inter 2000 rise 2
server overcloud-controller-2.internalapi.localdomain 172.16.2.13:8776 check fall 5 inter 2000 rise 2
Closes-Bug: #1755711
Change-Id: Icb7f026190b310d34c47dc059e2fdb22031b0963
(cherry picked from commit ce4576375df1e49442e87ce26b8be436bd00b899)
Reviewed: https:/ /review. openstack. org/554153 /git.openstack. org/cgit/ openstack/ puppet- tripleo/ commit/ ?id=ea2ce7da21e 57124129e1f60ac 0cff0d0f6ed9f9
Committed: https:/
Submitter: Zuul
Branch: stable/queens
commit ea2ce7da21e5712 4129e1f60ac0cff 0d0f6ed9f9
Author: Michele Baldessari <email address hidden>
Date: Wed Mar 14 08:31:40 2018 +0100
Allow custom per-service listen_options for haproxy
There are situations where it would be advantageous to let default_ timeout is likely not what we want as for the case
an operator specify custom per-service options.
One such use case seen in the wild is to extend the timeout of the cinder
because due to the specific storage backend these cinder operations
sometimes take a bit longer. Letting the user tweak the
haproxy_
above we only want to tweak a single service.
We explored another approach to fix this by adding a bunch of _options class parameters in the tripleo::haproxy class but it
<service>
made it extremely bloated and confusing, so we opted for this approach
which is much less invasive both code-wise and complexity-wise
Tested by deploying with: :haproxy: :cinder: :options:
ExtraConfig:
tripleo:
"timeout client": '90m'
'timeout server': '90m'
And observing the following cinder haproxy stanza: controller- 0.internalapi. localdomain 172.16.2.7:8776 check fall 5 inter 2000 rise 2 controller- 1.internalapi. localdomain 172.16.2.16:8776 check fall 5 inter 2000 rise 2 controller- 2.internalapi. localdomain 172.16.2.13:8776 check fall 5 inter 2000 rise 2
listen cinder
bind 10.0.0.4:8776 transparent
bind 172.16.2.9:8776 transparent
mode http
http-request set-header X-Forwarded-Proto https if { ssl_fc }
http-request set-header X-Forwarded-Proto http if !{ ssl_fc }
option httpchk
option httplog
timeout client 90m
timeout server 90m
server overcloud-
server overcloud-
server overcloud-
Closes-Bug: #1755711
Change-Id: Icb7f026190b310 d34c47dc059e2fd b22031b0963 442e87ce26b8be4 36bd00b899)
(cherry picked from commit ce4576375df1e49