diff --git a/specs/ceph-ansible.rst b/specs/ceph-ansible.rst new file mode 100644 index 0000000000..b985799071 --- /dev/null +++ b/specs/ceph-ansible.rst @@ -0,0 +1,115 @@ +.. + This work is licensed under a Creative Commons Attribution 3.0 Unported + License. + + http://creativecommons.org/licenses/by/3.0/legalcode + +================================= +Moving to ceph-ansible for Kolla +================================= + +It has been discussed within the Kolla community that we should look at moving +from our own orchestration and containers for Ceph to those provided by the +'ceph-ansible' project. This spec proposes how this should happen. + +Problem description +=================== + +Ceph is a complex project that exists outside of OpenStack. As new versions of +Ceph are released, the Kolla community have had to spend time and resources +ensuring that our implementation is up to date, upgrade works correctly, etc, +in addition to the multiple OpenStack services we support. Meanwhile, there are +other existing projects that work just on Ceph, and can potentially do this +much better. + +Use cases +--------- + +1. Ceph deployment using dedicated Storage nodes +2. Ceph deployment using HCI nodes (storage nodes on compute nodes) + +Proposed change +=============== + +ceph-ansible is one such project that is part of the official Ceph +project namespace[0]. This gives us a reasonable degree of certainty that it +can provide a more complete and well maintained implementation of Ceph than +Kolla can provide on its own. + +Alternatives +------------ + +Continue to maintain current approach i.e. Ceph deployment in kolla-ansible. + +Other End User impact +--------------------- + +We will need to move to images that ceph-ansible supports, we have two options: + +1. Directly use what is available on docker hub[1]. +2. Build images using ceph-container repo[2]. + +NOTE: Currently ceph-container project does not support Ubuntu container images. + +Security impact +--------------- + +From a high level this should not have any security impact. It is possible +security would be even improved over what we have now, due to the active +community maintaining the ceph-ansible project[3]. + +Performance Impact +------------------ + +We see no potential performance impact. The time for deploying ceph-ansible may +end up being slightly longer or shorter when compared to Kolla's Ceph, but the +difference should not be big. + +Implementation +============== + +Assignee(s) +----------- + +Primary assignee: + mnasiadka + +Milestones +---------- + +Target Milestone for completion: + U + +Work Items +---------- + +1. Mark the current implementation of Ceph in Kolla as deprecated in the Train + cycle. The ceph-ansible implementation should be ready for the release of + U. + +2. Provide concise documentation on how a Kolla operator should go about + deploying ceph-ansible in a way that's consistent with Kolla best practices. + +3. Ensure we have a sensible and easy to follow upgrade path for those + currently running Kolla's implementation of Ceph in production. + +4. The current Kolla gates for Ceph will need to be updated. + +5. (Optional) Create a playbook for ceph-ansible integration - similar to the one OpenStack-Ansible + project has developed[4]. + +Testing +======= +See work item number 4 above. + +Documentation Impact +==================== +See work item number 2 above. + +References +========== +[0] http://docs.ceph.com/ceph-ansible/master/ +[1] https://hub.docker.com/r/ceph/daemon +[2] https://github.com/ceph/ceph-container +[3] https://github.com/ceph/ceph-ansible/graphs/contributors +[4] https://opendev.org/openstack/openstack-ansible/src/branch/master/playbooks/ceph-install.yml