Fix restart policy after MariaDB recovery

After performing a recovery of MariaDB, the mariadb containers are left
without a restart policy. This leaves them unable to recover from the
crash of a single galera node. There is another issue, in that the
'master' node is left in a bootstrap configuration, with the
--wsrep-new-cluster argument configured as BOOTSTRAP_ARGS.

This change fixes these issues by removing the restart policy of 'no'
from the 'slave' containers, and recreating the master container without
the restart policy or bootstrap arguments.

Change-Id: I36c875611931163ca2c29ae93b71d3af64cb197c
Closes-Bug: #1851594
(cherry picked from commit f979ae1f8e)
This commit is contained in:
Mark Goddard 2019-11-07 10:01:14 +00:00
parent cb994fa73b
commit a4e1074fb2
1 changed files with 30 additions and 7 deletions

View File

@ -182,15 +182,10 @@
kolla_docker:
action: "start_container"
common_options: "{{ docker_common_options }}"
environment:
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
BOOTSTRAP_ARGS: " "
image: "{{ mariadb_service.image }}"
labels:
BOOTSTRAP:
name: "{{ mariadb_service.container_name }}"
restart_policy: "never"
image: "{{ mariadb_service.image }}"
volumes: "{{ mariadb_service.volumes }}"
dimensions: "{{ mariadb_service.dimensions }}"
when:
- bootstrap_host is defined
- bootstrap_host != inventory_hostname
@ -209,3 +204,31 @@
when:
- bootstrap_host is defined
- bootstrap_host != inventory_hostname
- name: Restart master MariaDB container
become: true
kolla_docker:
action: "recreate_or_restart_container"
common_options: "{{ docker_common_options }}"
name: "{{ mariadb_service.container_name }}"
image: "{{ mariadb_service.image }}"
volumes: "{{ mariadb_service.volumes }}"
dimensions: "{{ mariadb_service.dimensions }}"
when:
- bootstrap_host is defined
- bootstrap_host == inventory_hostname
- name: Wait for master mariadb
wait_for:
host: "{{ api_interface_address }}"
port: "{{ mariadb_port }}"
connect_timeout: 1
timeout: 60
search_regex: "MariaDB"
register: check_mariadb_port
until: check_mariadb_port is success
retries: 10
delay: 6
when:
- bootstrap_host is defined
- bootstrap_host == inventory_hostname