Wait for MariaDB to be accessible via HAProxy

Explicitly wait for the database to be accessible via the load balancer.
Sometimes it can reject connections even when all database services are up,
possibly due to the health check polling in HAProxy.

Closes-Bug: #1840145
Change-Id: I7601bb710097a78f6b29bc4018c71f2c6283eef2
(cherry picked from commit 03cd7eb356)
This commit is contained in:
Scott Solkhon 2019-08-13 15:27:50 +00:00 committed by Mark Goddard
parent f0f590abb5
commit 0d03d2e28f
3 changed files with 20 additions and 0 deletions

View File

@ -227,3 +227,5 @@
when:
- bootstrap_host is defined
- bootstrap_host != inventory_hostname
- import_tasks: wait_for_loadbalancer.yml

View File

@ -14,6 +14,8 @@
priv: "*.*:USAGE"
run_once: True
- import_tasks: wait_for_loadbalancer.yml
- name: Creating the Mariabackup database
become: true
kolla_toolbox:

View File

@ -0,0 +1,16 @@
---
# Explicitly wait for the database to be accessible via the load balancer.
# Sometimes it can reject connections even when all database services are up,
# due to the health check polling in HAProxy.
- name: wait for MariaDB to be available via HAProxy
wait_for:
host: "{{ database_address }}"
port: "{{ database_port }}"
connect_timeout: 1
timeout: 60
search_regex: "MariaDB"
register: check_mariadb_port
until: check_mariadb_port is success
retries: 10
delay: 6
run_once: True