Proposed Pacemaker Configuration Changes

'''These are proposed changes for Pacemaker 2.1.0, which is in the early stages of planning. Which changes will be included in the release and their final details remain open to change.'''

The build process

 * Minimum versions of supporting software required to build pacemaker will likely be raised. The versions below were released 6-8 years ago and are available in recent versions of all major Linux distributions:
 * Python 3.2 or later (support for Python 2.7 would be removed)
 * glib 2.32.0 or later
 * libqb 0.17.0 or later
 * pkg-config 0.27 or later
 * configure script:
 * Remove support for the deprecated --pkgname and --pkg-name options, which have no effect, and the --enable-ansi option, which is needed only for very old C compilers.
 * --with-cibsecrets might be enabled by default
 * Remove support for the deprecated and undocumented SUSE_ACL_COMPAT compile-time option.
 * Remove the nonfunctional ocf:pacemaker:pingd resource agent.
 * Make "subtree" the default for RPMDEST in GNUmakefile, which means that the "make rpm" target will put all artifacts in a dedicated "rpm/" subdirectory rather than a mix of the top-level directory and system defaults.

Changes in default values for Configuration Information Base (CIB) options

 * pcmk_host_argument would default to "none" instead of "port" when a fence agent does not advertise support for either "plug" or "port" in its meta-data.
 * concurrent-fencing would default to true (and the option would be deprecated, since there is no reason to change the behavior)
 * interleave option for clone meta-attributes would default to true
 * A negative value specified for the migration-threshold resource meta-attribute might change to be equivalent to 0 (disabled) or INFINITY (no limit) instead of 1
 * fence-reaction cluster property default might change from "stop" to "panic"
 * Pacemaker will stop adding the "last-run" attribute to  entries in the section.

CIB changes that will be transparently converted to new syntax
These changes should need no action by users in order for existing configurations to continue working, but new configurations will be allowed to use only the new syntax.


 * The deprecated and undocumented sub-element of constraints will be dropped, and its contents (rules) added directly to the constraint instead.


 * The current schema for elements allows a much broader syntax than is documented, with extraneous pieces simply ignored when not used. The schema will likely be tightened to allow only useful syntax. For example, the score and score-attribute attributes only have meaning in rules used with location constraints, but are allowed (and ignored) anywhere else a rule is allowed; they would be dropped where they do not apply and no longer allowed to be added there.


 * The deprecated and undocumented score attribute in  constraints would be converted to use the current "kind" attribute instead.


 * The deprecated and undocumented restart-type resource meta-attribute would be dropped.


 * Clones configured with globally-unique set to true currently get a log warning when used with standards other than OCF (the only standard that supports unique clones); this would be dropped from old configurations and disallowed in new configurations.

Other changes in configuration behavior

 * Resource standards (such as "ocf") in the configuration are now always case-sensitive.


 * The undocumented "can_fail" operation meta-attribute (which serves no useful purpose) will be officially deprecated (and removed in a future version).