When the version of pacemaker inside a container differs from the version running on the host, we can encounter the following error:
"""
Error: unable to get crm_config
cibadmin: Connection to local file '/var/lib/pacemaker/cib/puppet-cib-backup20171212-6-1h3l7tq' failed: Update does not conform to the configured schema
Signon to CIB failed: Update does not conform to the configured schema
"""
This happens in one situation, namely host has a pacemaker version which changed the schema (aka a newer version e.g. 1.1.18) and the containers have an older release in them (e.g. 1.1.16).
Note that the issue is not present when the newer version of pacemaker is in the containers and an older one is on the host.
This is an unfortunate consequence of running stuff partly on the host and partly in containers.
It should also be a "one-time" issue only as no other pcmk rebases are planned for Centos/RHEL 7.
In any case we should explore our options to avoid this issue.
Technically there are two slightly separated problems:
1) The temporary spawn containers that create pcs resources or properties
2) The containers that are managed by pacemaker and do call commandline tools (like cibadmin, crm_attribute, etc) in their normal operation
We did try to disable schema validation and also patched 1.1.16 with a bunch of patches:
0001-Low-implement-common-base-for-lib-xml2-xslt-log-libq.patch 0002-Feature-enable-upgrade-XSLTs-to-use-xsl-message-mean.patch
0001-Refactor-use-common-base-for-lib-xml2-xslt-log-libqb.patch 0003-Low-libcrmcommon-correct-spelling-of-pre-1.0-CIB-tag.patch
0004-Fix-libcrmcommon-handle-schema-versions-properly.patch
but the problem still persists.
It seems the only way out would be to actually bindmount *all* the folders and binaries necessary for pcs and all the pcmk-utils to work inside containers (both for 1) and 2) )
Note:
---
# This is another instance of
https:/ /bugs.launchpad .net/tripleo/ +bug/1770692
potential for pacemaker version mismatch (BM vs.container) is a risk for OC deploy failures in gates
# RFE to identify this class of issue:
https:/ /bugs.launchpad .net/tripleo/ +bug/1771602
RFE: detect and warn when package versions in bare metal vs. container don't match
---