Here is the example I had promised:<div id="yMail_cursorElementTracker_1620730068266"><br></div><div id="yMail_cursorElementTracker_1620730068385">pcs node attribute server1 city=LA</div><div id="yMail_cursorElementTracker_1620730092714">pcs node attribute server2 city=NY</div><div id="yMail_cursorElementTracker_1620730107633"><br></div><div id="yMail_cursorElementTracker_1620730217312"># Don't run on any node that is not in LA</div><div id="yMail_cursorElementTracker_1620730162714">pcs constraint location DummyRes1 rule score=-INFINITY city ne LA<br> <br>#Don't run on any node that is not in NY</div><div id="yMail_cursorElementTracker_1620730245634">pcs constraint location DummyRes2 rule score=-INFINITY city ne NY</div><div id="yMail_cursorElementTracker_1620730289159"><br></div><div id="yMail_cursorElementTracker_1620730289332">The idea is that if you add a node and you forget to specify the attribute with the name 'city' , DummyRes1 & DummyRes2 won't be started on it.</div><div id="yMail_cursorElementTracker_1620730361321"><br></div><div id="yMail_cursorElementTracker_1620730361483"><br></div><div id="yMail_cursorElementTracker_1620730361667">For resources that do not have a constraint based on the city -> they will run everywhere unless you specify a colocation constraint between the resources.</div><div id="yMail_cursorElementTracker_1620730410065"><br></div><div id="yMail_cursorElementTracker_1620730410257">Best Regards,</div><div id="yMail_cursorElementTracker_1620730413472">Strahil Nikolov</div><div id="yMail_cursorElementTracker_1620730400659"><br></div><div id="yMail_cursorElementTracker_1620730400886"><br></div><div id="yMail_cursorElementTracker_1620730401077"><br> <blockquote style="margin: 0 0 20px 0;"> <div style="font-family:Roboto, sans-serif; color:#6D00F6;"> <div>On Tue, May 11, 2021 at 9:15, Klaus Wenninger</div><div><kwenning@redhat.com> wrote:</div> </div> <div style="padding: 10px 0 0 20px; margin: 10px 0 0 0; border-left: 1px solid #6D00F6;"> <div dir="ltr">On 5/10/21 7:16 PM, lejeczek wrote:<br></div><div dir="ltr">><br></div><div dir="ltr">><br></div><div dir="ltr">> On 10/05/2021 17:04, Andrei Borzenkov wrote:<br></div><div dir="ltr">>> On 10.05.2021 16:48, lejeczek wrote:<br></div><div dir="ltr">>>> Hi guys<br></div><div dir="ltr">>>><br></div><div dir="ltr">>>> Before I begin my adventure with this I though I would ask experts if<br></div><div dir="ltr">>>> something like below is possible.<br></div><div dir="ltr">>>><br></div><div dir="ltr">>>> resourceA if started on nodeA, then nodes B & C start resourceB (or<br></div><div dir="ltr">>>> recourceC)<br></div><div dir="ltr">>>><br></div><div dir="ltr">>> Configure colocation with negative score between resourceB and<br></div><div dir="ltr">>> resourceA, so resourceB will be started on different node.<br></div><div dir="ltr">>><br></div><div dir="ltr">>>> whether to start resource B or C on two nodes (might thing of it as<br></div><div dir="ltr">>>> master node + two slaves) depend on which node resourceA got started.<br></div><div dir="ltr">>>><br></div><div dir="ltr">>>> eg.<br></div><div dir="ltr">>>> if nodeA runs rMaster -> nodeB, nodeC run rToA<br></div><div dir="ltr">>>> if nodeB runs rMaster -> nodeA, nodeC run rToB<br></div><div dir="ltr">>>> if nodeC runs rMaster -> nodeA, nodeB run rToC<br></div><div dir="ltr">>>><br></div><div dir="ltr">>>> any light shedding or idea sharing are much welcomed.<br></div><div dir="ltr">>>> many thanks, L.<br></div><div dir="ltr">>>> _______________________________________________<br></div><div dir="ltr">>>> Manage your subscription:<br></div><div dir="ltr">>>> <a href="https://lists.clusterlabs.org/mailman/listinfo/users" target="_blank">https://lists.clusterlabs.org/mailman/listinfo/users</a><br></div><div dir="ltr">>>><br></div><div dir="ltr">>>> ClusterLabs home: <a href="https://www.clusterlabs.org/" target="_blank">https://www.clusterlabs.org/</a><br></div><div dir="ltr">>> _______________________________________________<br></div><div dir="ltr">>> Manage your subscription:<br></div><div dir="ltr">>> <a href="https://lists.clusterlabs.org/mailman/listinfo/users" target="_blank">https://lists.clusterlabs.org/mailman/listinfo/users</a><br></div><div dir="ltr">>><br></div><div dir="ltr">>> ClusterLabs home: <a href="https://www.clusterlabs.org/" target="_blank">https://www.clusterlabs.org/</a><br></div><div dir="ltr">> perhaps I did not do best explaining, I'll try again<br></div><div dir="ltr">><br></div><div dir="ltr">> if nodeA runs rMaster -> nodeB, nodeC run rToA (meaning..<br></div><div dir="ltr">> a) no r{ToA,ToB,ToC} allowed on the node if "rMaster" runs on that <br></div><div dir="ltr">> node, this case nodeA,<br></div><div dir="ltr">> b) if it's nodeA cluster chose to run "rMaster" on, then only "rToA" <br></div><div dir="ltr">> is allowed to run on nodeB & nodeC<br></div><div dir="ltr">> c) a&b applies across to nodeB,C respectively<br></div><div dir="ltr">><br></div><div dir="ltr">> I'm starting with "rMaster" and other three resources as clones but I <br></div><div dir="ltr">> fail to see how to make it work.<br></div><div dir="ltr">Not sure if there is an easy way to get that working directly.<br></div><div dir="ltr">An anti-colocation as already suggested is probably a good idea.<br></div><div dir="ltr">A resource that sets an attribute to select which clone to start<br></div><div dir="ltr">could do the rest - with location-constraints using that attribute.<br></div><div dir="ltr"><br></div><div dir="ltr">Without knowing more about your resources it is hard to<br></div><div dir="ltr">tell if there would be a more elegant way to solve your<br></div><div dir="ltr">problem.<br></div><div dir="ltr"><br></div><div dir="ltr">If it is mainly about IP communication of the slaves with the<br></div><div dir="ltr">master (we btw. removed that wording from pacemaker as<br></div><div dir="ltr">considered offensive) you could have a floating IP-address that is<br></div><div dir="ltr">moved with the master (or more precisely rather the other<br></div><div dir="ltr">way round) and your slaves would connect with that IP without<br></div><div dir="ltr">really having to know who the master is.<br></div><div dir="ltr"><br></div><div dir="ltr">If the logic is more complex and you anyway already have<br></div><div dir="ltr">a custom resource agent it might be worth thinking of a<br></div><div dir="ltr">promotable clone that runs the master<br></div><div dir="ltr">in it's promoted state and the slave in it's demoted state<br></div><div dir="ltr">with the logic moved into a resource agent.<br></div><div dir="ltr"><br></div><div dir="ltr">Klaus<br></div><div dir="ltr">><br></div><div dir="ltr">> _______________________________________________<br></div><div dir="ltr">> Manage your subscription:<br></div><div dir="ltr">> <a href="https://lists.clusterlabs.org/mailman/listinfo/users" target="_blank">https://lists.clusterlabs.org/mailman/listinfo/users</a><br></div><div dir="ltr">><br></div><div dir="ltr">> ClusterLabs home: <a href="https://www.clusterlabs.org/" target="_blank">https://www.clusterlabs.org/</a><br></div><div dir="ltr">><br></div><div dir="ltr"><br></div><div dir="ltr">_______________________________________________<br></div><div dir="ltr">Manage your subscription:<br></div><div dir="ltr"><a href="https://lists.clusterlabs.org/mailman/listinfo/users" target="_blank">https://lists.clusterlabs.org/mailman/listinfo/users</a><br></div><div dir="ltr"><br></div><div dir="ltr">ClusterLabs home: <a href="https://www.clusterlabs.org/" target="_blank">https://www.clusterlabs.org/</a><br></div> </div> </blockquote></div>