forked from rook/rook
This commit introduces the necessary changes to support the new messenger feature coming with Ceph Nautilus (currently in development). What changes? Now the monitor listens on two port: * old 6789 for messenger v1, which will help us support older client (e,g: krbd) * new 3300 for messengers v2, which brings new improvement in the messaging layer. This new transport layer brings numerous advantages such as encryption improvement, speed improvement, pluggable nature to support different network stack than TCP and many more. We still have one Service IP, however it has 2 ports, see: ``` NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE rook-ceph-mon-a ClusterIP 10.106.217.160 <none> 3300/TCP,6789/TCP 4h rook-ceph-mon-b ClusterIP 10.99.36.175 <none> 3300/TCP,6789/TCP 4h rook-ceph-mon-c ClusterIP 10.108.220.74 <none> 3300/TCP,6789/TCP 4h ```` The `ceph.conf` has changed and we don't force the port when using an IP address (public addr etc). Ceph, depending on its version will naturally start the monitors on their right port, 6789. A new --ceph-version-name CLI argument has been added to the Rook binary so that when the pod starts it passes the ceph version name and the configuration of the ceph.conf, as well as daemon startup flags, happen properly. Given that the Rook Operator remembers the port of all the monitors it deployed (through Pod definition), this change is not an issue and will maintain backward compatibility. Note that to test this you must build rook with dev container image, which contains the dev Nautilus version. So you should do something like: `make -j4 BASEIMAGE='ceph/daemon-base:latest-master' IMAGES='ceph' build` Resolves: #2525 Signed-off-by: Sébastien Han <seb@redhat.com>