ceph-provider
The ceph-provider contains two implementors of the IronCore VolumeRuntime interface:
ceph-volume-provider: Implements theVolumeRuntimeinterface to manage volumes in a Ceph cluster.ceph-bucket-provider: Implements theBucketRuntimeinterface to manage object storage buckets in a Ceph cluster.
ceph-volume-provider
The ceph-volume-provider implements the IronCore VolumeRuntime interface to manage volumes in a Ceph cluster. A CreateVolume IRI call results in the creation of a ceph image in the cluster, which can be used as a block device for virtual machines.
The following diagram visualizes the connection between the ceph-volume-provider and the volumepoollet:
Once a Volume has been created by the ceph-volume-provider, it returns the access information to the volumepoollet which then propages this as status information to the Volume resource in the IronCore API. On the consumer side, e.g. libvirt-provider, the Volume resource is then used to attach the block device to a virtual machine instance using the credentials provided in the Volume status.
ceph-bucket-provider
The ceph-bucket-provider implements the IronCore BucketRuntime interface to manage object storage buckets in a Ceph cluster. A CreateBucket IRI call results in the creation of a ObjectBucketClaim (OBC) resource. In case of a Rook backed Ceph cluster, the corresponding ObjectBucketClaim is reconciled by Rook, which will internally create a Ceph bucket and provide access credentials.
The following diagram visualizes the interplay of the different components:
The propagation of the access information to the Bucket resource in the IronCore API is similar to the ceph-volume-provider and is done by the bucketpoollet.