Open jnpkrn opened 6 years ago
I have to say that for me personally I would prefer not to complicate things in this manner. I have seen specs before that enable modules and pluggable behavior, and the effect has always been two things:
I'm a strong proponent of simplicity over functionality. To the point of wishing that the OCF spec 2.0 could be smaller than the first iteration and remove features that have proven themselves to be less useful than first thought. One example is the lang="en..."
attribute which as far as I know has never been used or supported by any tool or implementation.
See for example how Wayland leverages this simple core (simplicity!) + modular extensions, moreover split between stable and unstable subsets: https://cgit.freedesktop.org/wayland/wayland-protocols/tree/
Sadly some graphical toolkits with vested interest in Wayland already started to roll their own proprietary protocol extensions (doesn't this resemble pacemaker's privatization of OCF?) so hopefully the common sense and the convergence on the common functionality will prevail eventually, meaning less fragmentation and more overall benefit.
Yeah, there’s a difficult balance to strike between preserving a simple and stable specification and allowing changes to the spec to avoid fragmentation and implementations departing from the spec.. On the other hand, the spec is powerless to prevent an implementation from making incompatible changes that simply aren’t any good and shouldn’t go into the spec anyway.
Another "profile" that might useful, say restart-optimizing-1
:
https://lists.clusterlabs.org/pipermail/users/2019-December/026681.html
In fact, for this very use case, one might argue that adding an
extra argument after stop
(e.g. stop start-pending=1
) would
fil the bill in a compatible manner, however:
stacking any additional arguments after the initial action is basically undefined, and it'd be fair and legitimate if agents casually treated that as error
profound, system-level modifiers shall be visible (previous point fulfills that, however yet another environment variable that is basically hidden across the execution audit would not make a cut)
any avoidance from the actual "profile" or similar infrastructure would just shift the problem around -- it appears this infrastructure would be a systemic solution to many open loops we currently have on an OCF-integration front (not facing the challenge directly so as to open new opportunities, but playing it all around)
I touched this topic recently [1]:
or
ocfao_na_set
for a shorter prefixSuggested profiles to legitimize current beyond-standard inverse dependencies on CRM:
node-annotations
attrd_updater
(per the initial idea above)multicluster-tickets
crm_ticket
(and perhaps more)Note that as mentioned, the mentioned delegation to particular executables would be abstraced per particular CRM, allowing interoperability with any CRM opting to deliver such addon functionality and also easier testing (extensions to
ocft
?).Also current clones and multistate agents could be fully legitimized when turned into OCF + addon profile(s) requirement on the interface with CRM. This would require more robust coverage of the use cases, as, e.g. IPaddr2 can optionally become clone, but it doesn't need to be run like that.
[1] https://oss.clusterlabs.org/pipermail/users/2018-April/014815.html