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
This commit is contained in:
Scott Solkhon 2019-08-13 15:27:50 +00:00
parent 41e634e204
commit 03cd7eb356
3 changed files with 20 additions and 0 deletions

View File

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

View File

@ -13,6 +13,8 @@
priv: "*.*:USAGE"
run_once: True
- import_tasks: wait_for_loadbalancer.yml
- name: Creating the Percona XtraBackup database
kolla_toolbox:
module_name: mysql_db

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