Re: Proposal: ceph-iscsi branch/release concept

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 6/25/19 7:02 AM, Jason Dillaman wrote:
On Tue, Jun 25, 2019 at 7:55 AM Lenz Grimmer <lgrimmer@xxxxxxxx> 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, ...).


Very much agreed!  The ceph repo is already far bigger than I'd prefer.  My current ceph working directory is 34GB! (granted most of that is build).  Compile times have ballooned over the years too.  Personally I'd rather go the other way and start removing things that aren't explicitly required.



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@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx


--
Jason
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx




[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux