Bug 1289315 - [RFE] haproxy timeouts should be configurable
Summary: [RFE] haproxy timeouts should be configurable
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tripleo-heat-templates
Version: 7.0 (Kilo)
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: ---
Assignee: Chris Jones
QA Contact: Udi Shkalim
URL:
Whiteboard:
: 1391375 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-12-07 20:48 UTC by James Slagle
Modified: 2018-05-21 22:08 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-05-21 22:08:15 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description James Slagle 2015-12-07 20:48:22 UTC
The following haproxy timeout options should be configurable:

timeout  queue 1m
timeout  client 1m
timeout  server 1m
timeout  check 10s 

There are global and per server options for each of the above. The global ones could probably be configured via parameters, the servers via hieradata override. Just as a first step, it'd be good to be able to do either via a hieradata override.

This will likely require a change to puppet-tripleo as well to make these configurable.

Comment 2 Mike Burns 2016-04-07 21:00:12 UTC
This bug did not make the OSP 8.0 release.  It is being deferred to OSP 10.

Comment 4 Fabio Massimo Di Nitto 2016-11-23 12:28:18 UTC
*** Bug 1391375 has been marked as a duplicate of this bug. ***

Comment 6 Red Hat Bugzilla Rules Engine 2017-06-04 02:03:46 UTC
This bugzilla has been removed from the release and needs to be reviewed and Triaged for another Target Release.

Comment 7 Andrew Beekhof 2018-05-21 05:57:55 UTC
Michele: thoughts on feasibility?

Comment 8 Michele Baldessari 2018-05-21 18:41:48 UTC
I fixed this one in OSP13 via the following two changes:
1) 
Author: Michele Baldessari <michele>
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
    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
    
    Tested by deploying with:
    ExtraConfig:
      tripleo::haproxy::cinder::options:
        "timeout client": '90m'
        'timeout server': '90m'
    
    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)


2) 
Author: Michele Baldessari <michele>
Date:   Tue Jan 9 10:59:29 2018 +0100

    Let haproxy_defaults be overridable
    
    Add the haproxy_defaults_override parameter so the defaults_options
    in haproxy are overridable. Tested by adding the following yaml to
    the deployment:
    parameter_defaults:
      ExtraConfig:
        tripleo::haproxy::haproxy_defaults_override:
          retries: 7
    
    Observed that haproxy.conf contained the following (retries defaults
    to 3):
    defaults
      retries  7
    
    Change-Id: I52b8f528e334e4d243ac7f506b9f293dab9f478d
    Closes-Bug: #1732176

Should we go ahead and close it?


Note You need to log in before you can comment on or make changes to this bug.