Deploy Rookify: Migrate to Rook from Ceph-Ansible (Technical Preview)
Rookify is developed to migrate from Ceph-Ansible to Rook in place and without downtime. Nevertheless, it is strongly advised to test Rookify in a controlled environment first, such as the OSISM testbed. Additionally ensure that precautionary backups are made and all other necessary safety measures are in place.
It is currently recommended to install Rookify on your local machine and connect through VPNs to the target system (the one where Ceph-Ansible needs to be "rookified" π).
Rookify operates in place
, meaning no parallel nodes are required. As noted earlier, Rookify is developed to migrate from Ceph-Ansible to Rook in place and without downtime, but given the complexity of infrastructure, precautionary backups and safety measures are highly recommended.
For a condensed summary of the information covered here, refer to the Rookify GitHub repository.
Prerequisites & Requirementsβ
- A functioning Ceph cluster deployed using traditional methods.
- Access to a Kubernetes cluster with sufficient resources to host the migrated Ceph cluster.
- Kubernetes nodes must be deployed on at least the OSD nodes.
- Monitor and OSD daemons should stay in place. Former to ensure that the Ceph endpoints do not change during migration, the later ones to have access to the underlying hardware.
- Rook operator version 1.13 or higher installed on the Kubernetes cluster.
radoslib
version 2.0.0 installed.- For a dockerized setup,
docker
anddocker compose
are required. - In order to use the Makefile,
GNU make
is required.
Manual Installationβ
Download or Clone the Repositoryβ
Clone or download Rookify from the repository.
Install and Run Locally (without Docker)β
- Navigate to the tool directory:
cd rookify
- To install Rookify locally, Python's
virtualenv
will be used (Note: This will installpre-commit
in your local user user context):
Checkout the included options in the Makefile
by typing make
.
make setup
This command also verifies if the required Python library radoslib
is installed. Ensure it is available on your Linux distribution.
Before running Rookify, check all available options by using rookify --help
.
To run Rookify you can either run it directly from within Python's virtualenv
or with help of the Makefile:
# directly
./.venv/bin/rookify --help
# using make
make run-local-rookify
Install and Run from within a Containerβ
-
Navigate to the tool directory:
-
To install Rookify in a container, you can use either Podman or Docker (Note: In both cases, Pythonβs
radoslib
library must be installed locally):
make check-radoslib
make up
This command uses docker compose
, so ensure it is installed as well.
To run Rookify, you can either enter the container and run it from there or use make run-rookify
.
Before running rookify, it's useful to check all options by using rookify --help
.