Do not depend on bootstrap_nodeid for any pacemaker profile
authorMichele Baldessari <michele@acksyn.org>
Tue, 17 Jan 2017 17:17:38 +0000 (18:17 +0100)
committerMichele Baldessari <michele@acksyn.org>
Wed, 18 Jan 2017 10:53:16 +0000 (11:53 +0100)
commitbf68fa9683ee30cc2ebdf624f47e82a4fcceb746
treeca2690f895cf3ab53db5eb428816bfb8995006a2
parent7c4e17059bf44c01a7b7023fdd93ed9d17c730ac
Do not depend on bootstrap_nodeid for any pacemaker profile

When we create a pacemaker resource it must happen from a single node.
If it happens from multiple nodes an immediate error will be returned by
pcs.

For the pacemaker roles we enforce this by leveraging the recently
introduced <SERVICE_NAME_bootstrap_short_node_name> which gives us
the first hostname per-service, regardless of the role.
(introduced via I03e8685f939e8ae1fcd8b16883b559615042505d)

With this approach if a pacemaker service belongs to two different
roles (say role Controller on node A and role galera on node B), it
will only create the resource from one of the two and not both (which
would return an error).

Only setting Partial-Bug for this one, because it addresses the issue
from the pacemaker resource creation POV (which is always affected). But
the issue itself is a race that we're theoretically affected by since
the composable roles work landed. While I have tried to fix the more
general case in previous attempts, I think it is best if we start a
discussion on how to fix it, because each approach has a bunch of
potential drawbacks and is quite invasive on how we do things. A
discussion slot for this has been proposed for the Atlanta PTG.

Change-Id: I662398cab60d523d204b57a5674ca8f5c0f2e68a
Partial-Bug: #1615983
manifests/profile/base/pacemaker.pp
manifests/profile/pacemaker/cinder/backup.pp
manifests/profile/pacemaker/cinder/volume.pp
manifests/profile/pacemaker/database/mysql.pp
manifests/profile/pacemaker/database/redis.pp
manifests/profile/pacemaker/haproxy.pp
manifests/profile/pacemaker/manila.pp
manifests/profile/pacemaker/rabbitmq.pp