8df2e01421
A new 'deep_compare' parameter gets added to resources and bundles (defaulting to false). The rationale is the following: By default pacemaker does not update resources and will keep doing so. This happens for a number of mostly historical reasons (old non HA-NG OSP releases had way too many relationships between pacemaker resources and puppet-triggered restart would cause havoc on the overcloud, also lack of the code for doing this in puppet-pacemaker was a factor). When set to true additional code comparison logic will be triggered and we will actually update pacemaker resources. We do so by modifying an offline CIB with the manifests resources and then running crm_simulate on it in order to determine if pacemaker would trigger a restart of the resource if the CIB was to be pushed for real on to the cluster. We currently cannot use crm_diff due to a bug where it would trigger too many false positives. Using crm_simulate has one small limitation. Namely, changes in resource operation timeouts normally do not trigger a resource restart and hence they won't update a resource. Also note that this is currently only supported for resources and bundles (not constraints nor stonith resources). Some thought has been put into whether we should be having the 'deep_compare' parameter a global pacemaker::corosync one or a per-resource parameter. I chose the latter for the following reasons: - It might be useful to let the operator decide for which resources the deep comparison is enabled (think tripleo upgrades where we want to make sure only certain resources are upgraded) - It makes it much clearer which resources support this deeper comparison feature. Change-Id: I11b5f9097694b88431f21e1e806bc1823386528f |
||
---|---|---|
.. | ||
notes | ||
source |