Create /etc/my.cnf.d/tripleo.cnf with proper bind-address
authorMichele Baldessari <michele@acksyn.org>
Thu, 9 Feb 2017 09:53:06 +0000 (10:53 +0100)
committerMichele Baldessari <michele@acksyn.org>
Mon, 20 Feb 2017 18:54:26 +0000 (19:54 +0100)
commit28853dba9d3d1f5f7fcbca58963489789641ae04
treec985aed8232dd775f28dce0da575e32ef5daa4bd
parent83d8153666f1e6502240651dc5d63633603fb5b4
Create /etc/my.cnf.d/tripleo.cnf with proper bind-address

When fixing LP#1643487 we added ?bind_address to all DB URIs.
Since this clashes with Cellsv2 due to the URIs becoming host
dependent, we need a new approach to pass bind_address to pymysql
that leaves the DB URIs host-independent.

We first create a /etc/my.cnf.d/tripleo.cnf file with a [tripleo]
section and in this section we add the correct bind-address option.
Note that we use the puppet augeas lens and not the mysql one
because the mysql one does not support custom sections *and* there
are older versions around which do not like the /etc/my.cnf.d/* path.

The reason for not reusing an existing mariadb file (my.cnf or
galera.cnf) is that pymysql's ini file support is not robust
enough at the moment: https://github.com/PyMySQL/PyMySQL/issues/548

The reason for putting this file creation code only on the controller
nodes the following: The slow VIP failover only happens if a
service runs where the VIPs exist. The VIPs get created in the
haproxy profile and that is why in order to have fast VIP failovers
the MySQLClient profile must live where the Haproxy service is running.

Co-Authored-By: Damien Ciabrini <dciabrin@redhat.com>
Partial-Bug: #1663181
Change-Id: Iff8bd2d9ee85f7bb1445aa2e1b3cfbff1f397b18
(cherry picked from commit f6116ff0f350aeecdaa346e4e49d208be49ce6b9)
manifests/profile/base/database/mysql/client.pp [new file with mode: 0644]