Fix pacemaker tagging race condition

Change I81bc48b53068c3a5ed90266a4fd3e62bfb017835 moved image fetching
and tagging for pacemaker-managed services from step 1 to step 2. This
is also a step when the services are started, which probably
introduced a race condition for environments where pacemaker cluster
consists of more than one machine.

During the deployment you can get a lot of pcmk failures like:

failed to pull image 192.168.24.1:8787/tripleomaster/centos-binary-mariadb:pcmklatest

This only happens on non-bootstrap nodes. On bootstrap node the order
is still correct, first download and tag image, and then start the
pcmk resources. However, if non-bootstrap nodes are slower with
downloading and tagging, pacemaker there might start the resources
before the images are tagged (as the starting of resources is
controlled globally from bootstrap node).

Change-Id: Id669cc9a296a8366c7c80a5ee509bdb964b62a04
Closes-Bug: #1805826
This commit is contained in:
Jiri Stransky 2018-11-29 12:02:21 +01:00
parent b6b4201be1
commit 3f57d7380d
10 changed files with 10 additions and 10 deletions

@ -247,7 +247,7 @@ outputs:
state: directory
deploy_steps_tasks:
- name: Cinder Backup tag container image for pacemaker
when: step|int == 2
when: step|int == 1
import_role:
name: tripleo-container-tag
vars:

@ -213,7 +213,7 @@ outputs:
host_prep_tasks: {get_attr: [CinderCommon, cinder_volume_host_prep_tasks]}
deploy_steps_tasks:
- name: Cinder Volume tag container image for pacemaker
when: step|int == 2
when: step|int == 1
import_role:
name: tripleo-container-tag
vars:

@ -307,7 +307,7 @@ outputs:
get_attr: [MysqlPuppetBase, role_data, metadata_settings]
deploy_steps_tasks:
- name: MySQL tag container image for pacemaker
when: step|int == 2
when: step|int == 1
import_role:
name: tripleo-container-tag
vars:

@ -286,7 +286,7 @@ outputs:
ignore_errors: true
deploy_steps_tasks:
- name: Redis tag container image for pacemaker
when: step|int == 2
when: step|int == 1
import_role:
name: tripleo-container-tag
vars:

@ -290,7 +290,7 @@ outputs:
get_attr: [HAProxyBase, role_data, metadata_settings]
deploy_steps_tasks:
- name: HAproxy tag container image for pacemaker
when: step|int == 2
when: step|int == 1
import_role:
name: tripleo-container-tag
vars:

@ -214,7 +214,7 @@ outputs:
state: directory
deploy_steps_tasks:
- name: Manila Share tag container image for pacemaker
when: step|int == 2
when: step|int == 1
import_role:
name: tripleo-container-tag
vars:

@ -260,7 +260,7 @@ outputs:
get_attr: [RabbitmqBase, role_data, metadata_settings]
deploy_steps_tasks:
- name: RabbitMQ tag container image for pacemaker
when: step|int == 2
when: step|int == 1
import_role:
name: tripleo-container-tag
vars:

@ -196,7 +196,7 @@ outputs:
ignore_errors: true
deploy_steps_tasks:
- name: OVN DBS tag container image for pacemaker
when: step|int == 2
when: step|int == 1
import_role:
name: tripleo-container-tag
vars:

@ -259,7 +259,7 @@ outputs:
get_attr: [RabbitmqBase, role_data, metadata_settings]
deploy_steps_tasks:
- name: RabbitMQ tag container image for pacemaker
when: step|int == 2
when: step|int == 1
import_role:
name: tripleo-container-tag
vars:

@ -260,7 +260,7 @@ outputs:
for pid in $(pgrep epmd --ns 1 --nslist pid); do kill $pid; done
deploy_steps_tasks:
- name: RabbitMQ tag container image for pacemaker
when: step|int == 2
when: step|int == 1
import_role:
name: tripleo-container-tag
vars: