Description
I believe there is room for clarification in the spec to ensure CO implementations align regarding the operational modes.
In the case of a centralized deployment, it is clear that a single controller would run satisfying the controller publish calls.
In a headless operation there are multiple ways of implementing that may cause incompatibility for plugins/COs. At what place should a headless plugin implement the logic for attaching volumes? Would this be as the Controller
whereas the controller is deployed to every node? Or is this Controller
a noop with the logic residing in the Node
where a publish both attaches and mounts?
For consistency I think no matter whether its headless/centralized, plugins should be implemented consistently where methods should not be overloaded based on operational mode. For headless this would mean every node would include Controllers+Node+Identity and attach operations would be invoked from the Controller.