Allow mysql haproxy stanza do be customized

We introduce a new tripleo::haproxy parameter called mysql_custom_listen_options
which can be used to customize mysql listen options in haproxy's config.

Tested as follows:
parameter_defaults:
  ExtraConfig:
    tripleo::haproxy::haproxy_default_timeout:
      - 'http-request 10s'
      - 'queue 2m'
      - 'connect 10s'
      - 'client 5m'
      - 'server 5m'
      - 'check 10s'
    tripleo::haproxy::cinder::options:
      bind-process: 2
    tripleo::haproxy::glance_api::options:
      bind-process: 2
    tripleo::haproxy::mysql_custom_listen_options:
      bind-process: 2

Observed that haproxy's mysql stanza had:
listen mysql
  bind 172.17.1.91:3306 transparent
  bind-process 2
  option tcpka
  option httpchk

Before this patch this was not the case and the tripleo::haproxy::<mysql>::options just got ignored.

Closes-Bug: #1858775

Change-Id: Ia0ecca5b54c1ca51898035e641665150dbdac9f7
(cherry picked from commit c42c5aa678)
(cherry picked from commit 64951b5c12)
(cherry picked from commit 48ff6171b5)
This commit is contained in:
Michele Baldessari 2020-01-07 17:36:37 +01:00
parent 72e62ba266
commit 7c96510dc4
1 changed files with 6 additions and 1 deletions

View File

@ -310,6 +310,10 @@
# and if mysql cluster checking is disabled, the member options will be: "union($haproxy_member_options, ['backup'])" # and if mysql cluster checking is disabled, the member options will be: "union($haproxy_member_options, ['backup'])"
# Defaults to undef # Defaults to undef
# #
# [*mysql_custom_listen_options*]
# Hash to pass to the mysql haproxy listen stanza to be deepmerged with the other options
# Defaults to {}
#
# [*rabbitmq*] # [*rabbitmq*]
# (optional) Enable or not RabbitMQ binding # (optional) Enable or not RabbitMQ binding
# Defaults to false # Defaults to false
@ -646,6 +650,7 @@ class tripleo::haproxy (
$mysql_clustercheck = false, $mysql_clustercheck = false,
$mysql_max_conn = undef, $mysql_max_conn = undef,
$mysql_member_options = undef, $mysql_member_options = undef,
$mysql_custom_listen_options = {},
$rabbitmq = false, $rabbitmq = false,
$etcd = hiera('etcd_enabled', false), $etcd = hiera('etcd_enabled', false),
$docker_registry = hiera('enable_docker_registry', false), $docker_registry = hiera('enable_docker_registry', false),
@ -1330,7 +1335,7 @@ class tripleo::haproxy (
if $mysql { if $mysql {
haproxy::listen { 'mysql': haproxy::listen { 'mysql':
bind => $mysql_bind_opts, bind => $mysql_bind_opts,
options => $mysql_listen_options, options => deep_merge($mysql_listen_options, $mysql_custom_listen_options),
collect_exported => false, collect_exported => false,
} }
haproxy::balancermember { 'mysql-backup': haproxy::balancermember { 'mysql-backup':