In the context of the IDRC infrastructure, the shared storage layer is to be provided by GlusterFS initially (with a possible "upgrade" to Ceph if/when we hit workloads that justify the maintenance overhead).
GlusterFS can be deployed separately and export NFS or local FUSE mounts. However, the most flexibility comes from deploying it with Heketi so volumes can be created automatically as a result of Volume claims in Kubernetes.
We should investigate all steps to deploy GlusterFS and Heketi as Kubernetes-managed components in an already provisioned Kubernetes cluster. This should use libvirt_vm role's ability to provision a second data disk specifically for GlusterFS/Heketi.