OpenStack and Ceph controllers integration¶
The integration between Ceph and OpenStack controllers is implemented
through the shared Kubernetes
Both controllers have access to this namespace to read and write
kind: Secret objects.
As Ceph is required and only supported back end for several OpenStack
services, all necessary Ceph pools must be specified in the configuration
kind: MiraCeph custom resource as part of the deployment.
Once the Ceph cluster is deployed, the Ceph controller posts the
information required by the OpenStack services to be properly configured
kind: Secret object into the
The OpenStack controller watches this namespace. Once the corresponding
secret is created, the OpenStack controller transforms this secret to the
data structures expected by the OpenStack-Helm charts. Even if an OpenStack
installation is triggered at the same time as a Ceph cluster deployment, the
OpenStack controller halts the deployment of the OpenStack services that
depend on Ceph availability until the secret in the shared namespace is
created by the Ceph controller.
For the configuration of Ceph RADOS Gateway as an OpenStack Object
Storage, the reverse process takes place. The OpenStack controller waits
for the OpenStack-Helm to create a secret with OpenStack Identity
(Keystone) credentials that RADOS Gateway must use to validate the
OpenStack Identity tokens, and posts it back to the same
openstack-ceph-shared namespace in the format suitable for
consumption by the Ceph controller. The Ceph controller then reads this
secret and reconfigures RADOS Gateway accordingly.