On Tue, Jun 25, 2019 at 7:55 AM Lenz Grimmer <lgrimmer@suse.com> wrote:
Hi,
The ceph-iscsi project [1] has gained a lot of new features and functionality along with the iSCSI management features that were added to Ceph Dashboard in Nautilus. The Dashboard is tightly coupled to the ceph-iscsi config version and needs to be updated in parallel, e.g. when new functionality is added or existing behavior changes (e.g. here [2], [3]).
Currently, all ceph-iscsi development is done in the "master" branch of ceph-iscsi, while the dashboard is developed in the Ceph git repo and thus is developed and maintained in multiple branches (e.g. "master" and "nautilus").
This makes it challenging to keep these two components in sync and to facilitate both maintaining a "stable" version while allowing new features to be merged. To reduce this complexity and to better interlock the testing and development of the dashboard and ceph-iscsi, I would like to propose two possible solutions:
1) merge the ceph-iscsi code base into the ceph git repository. This way, the development of new features and maintenance would take place in distinct branches, and in close synchronization between the dashboard and the ceph-iscsi component. This might also be beneficial for creating unit tests that test both components without having to assemble the pieces from various places beforehand. It would also ensure that a matching ceph-iscsi package is always built and released along with the corresponding Ceph version, thus offloading the ceph-iscsi devs from the build and release work. From a version numbering perspective, this should not be a problem - the current ceph-iscsi packages are of version "3.0", so they could easily be upgraded to the Ceph versioning scheme. It would also help with keeping the documentation [4] in sync with the functionality (the ceph-iscsi docs are actually part of the main Ceph documentation in the git repo already). This approach is more work, as it requires finding a way to merge the ceph-iscsi git repo into the ceph git repo (ideally by preserving the history), and because the packaging and build scripts need to be updated to build the respective DEB and RPM packages.
As we have talked about before, I don't like the idea of merging everything and the kitchen sink into the "ceph" repo. We would need to ensure backwards compatibility regardless (be it ceph-iscsi upgrades one node at a time or the ceph-mgr/dashboard being upgraded first before ceph-iscsi). Those issues can be addressed by creating a decent set of unit test cases that simulate the REST interactions expected from the XYZ version of the dashboard to ceph-iscsi. This isn't the only sub-project that is tied to the core Ceph project repo (e.g. ceph-ansible, rook, ceph-csi, go-ceph, ...).
2) As an alternative that requires lesser effort (but also has fewer benefits), we should at least start using branches within the ceph-iscsi git repo, so we can do bug fixing on a stable version separate from new feature development that may introduce incompatible changes. I'd propose to name the branches according to the Ceph release they support, e.g. by creating a "nautilus" branch. But the packaging and releasing would still be disconnected from the Ceph releases (and the work would increase along with the branches we need to build and support).
As part of that same discussion, I also agreed that we should create a "3.x" stable branch along with a new 3.1 release once the last few known issues are merged. As of today, I believe it's only a single PR that just needs to get tested and merged.
I clearly would be in favor of the first proposal, but would need help in getting this implemented.
Thoughts, concerns, objections? Would anybody be willing and interested in making this happen?
Thanks!
Lenz
[1] https://github.com/ceph/ceph-iscsi/ [2] https://github.com/ceph/ceph-iscsi/pull/84/ [3] https://github.com/ceph/ceph/pull/28720 [4] http://docs.ceph.com/docs/master/rbd/iscsi-overview/ -- SUSE Linux GmbH - Maxfeldstr. 5 - 90409 Nuernberg (Germany) GF: Felix Imendörffer, Mary Higgins, Sri Rasiah HRB 21284 (AG Nürnberg)
_______________________________________________ Dev mailing list -- dev@ceph.io To unsubscribe send an email to dev-leave@ceph.io
-- Jason