Bug 1916011

Summary: [RFE] Add support for colocation "influence" option
Product: Red Hat Enterprise Linux 8 Reporter: Ken Gaillot <kgaillot>
Component: pcsAssignee: Miroslav Lisik <mlisik>
Status: CLOSED WONTFIX QA Contact: cluster-qe <cluster-qe>
Severity: low Docs Contact:
Priority: medium    
Version: 8.4CC: cfeist, cluster-maint, idevat, mlisik, mpospisi, msmazova, omular, sbradley, tojeline
Target Milestone: rcKeywords: FutureFeature, Triaged
Target Release: 8.6Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-10-14 14:47:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1371576    
Bug Blocks:    

Description Ken Gaillot 2021-01-13 23:22:04 UTC
As of RHEL 8.4 (via Bug 1371576), Pacemaker will support a boolean "influence" option to colocation constraints, indicating whether the dependent resource's location preferences should affect the main resource's placement.

The default of true is the previous behavior. False essentially means that a failed dependent resource should stop rather than cause the main resource to move.

Proposed interface: add influence=true/false to the possible [options] for pcs constraint colocation add/set.

As of the same feature, resources can also take a boolean "critical" meta-attribute to serve as a default for "influence" for all constraints where the resource is the dependent resource. I believe this will not require any changes in pcs.

Comment 1 Ken Gaillot 2021-01-28 19:42:45 UTC
I just realized that pcs appears to pass constraint options along without restricting them to known names, so nothing special needs to be done to support "influence".

However Marketa Smazova in QE raised the question of whether "critical" should change how a colocation constraint is displayed. In other words, if someone configures a colocation with influence=false, then "pcs constraint colocation show" will display "(influence:false)", but if someone sets critical=false on the resource instead, "pcs constraint colocation show" will not give any indication that influence has been disabled.

I don't have a preference on how that should be handled, but it's a good question to think about.

Comment 4 Tomas Jelinek 2021-10-14 14:47:46 UTC
As Ken mentioned in comment 1, setting 'influence' constraint option and 'critical' resource meta-attribute is already possible with pcs. Displaying '(influence:false)' in colocation constraints works as well.

Displaying '(critical:false)' in collocation constraints next to resources is a different story, though. The meta-attribute can be either set in a resource, in its parent (clones, groups) or in resource defaults. Resource defaults support rules, and resource meta-attributes can also use them, even though pcs is not capable of configuring them yet. In these cases, displaying simply '(critical:false)' would be misleading, as it would not be true all the time, and displaying all the details with rules would be confusing. Displaying an applied configuration is currently not possible either: 1) pcs would have to reimplement pacemaker's logic to determine the applied configuration, 2) 'pcs constraint colocation config' displays configuration and not currently applied values (that would have to be another command), so we don't want to mix those two.

Therefore, I'm closing this as wontfix. If this issue becomes serious, feel free to reopen the bz.