Hi! I'm currently working on a volume storage plugin for cloudstack, but got a bit stuck on a few design things of cloudstack.
So I started with adding a `cloud-plugin-storage-volume-linstor` plugin and implemented the LifeCycle, Provider, Listener and Driver. I'm able to add it as primary storage with my own Provider from the UI, but as I understood you can't directly create a volume within this storage pool, it is rather decided by the allocator/placer. As I still have another Primary storage driver (NFS) new volumes will get created there, but I can migrate storage to Linstor from there. That is when I found out that cloudstack also has a StorageAdaptor on the agent side and it looks like the agent side only has very limited info about the storage pool and only gets the name(uuid). Linstor is a shared storage, so BLOCK volumes can/will be provided on all nodes that are part of the Linstor cluster and for Linstor, it would be enough to control the creation/deletion of volumes from the management server, actions on the agent side would only be needed for migrating volumes to another storage pool or copy volumes within Linstor if the backend storage doesn't support snapshots. So do you have any guidelines on how I should add the Linstor storage? I guess I could create the Linstor pool as `managed` and store the storage pool info in some config file, but it seems to be unnecessary and I wouldn't really want to control the Linstor cluster also from the agents. My idea would be that only the management server talks to Linstor and agents should only be used, for e.g. copying data between volumes or convert image formats. Best regards, Rene