Skip to content
This repository was archived by the owner on Dec 16, 2025. It is now read-only.

Commit 2cc2047

Browse files
docs: update README.md (#72)
* readme update: add info about troubleshoot, radoslib specifics, testbed setup, remove spelling mistakes, add new clearer headers, links to scs and osism docs, usage of config.example.yaml Signed-off-by: Boekhorst <[email protected]> Co-authored-by: Tobias Wolf <[email protected]>
1 parent 7d464bc commit 2cc2047

File tree

1 file changed

+72
-6
lines changed

1 file changed

+72
-6
lines changed

README.md

Lines changed: 72 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ Rookify is designed to facilitate a smooth and efficient transition for existing
1414
- A functioning Ceph cluster deployed via traditional methods.
1515
- __TODO:__ List supported methods
1616
- Access to a Kubernetes cluster with sufficient resources to host the migrated Ceph cluster.
17-
- Kubernetes nodes should be rolled out at least on the OSD nodes
17+
- Kubernetes nodes should be rolled out at least on the monitor nodes
1818
- Rook operator version 1.13 or higher installed in the Kubernetes cluster.
1919
- _local development enivornment_ requires radoslib version 2.0.0 installed
2020

2121
## Installation
22+
2223
1. Clone the repository:
2324
```bash
2425
git clone https://github.com/SovereignCloudStack/rookify
@@ -29,25 +30,90 @@ git clone https://github.com/SovereignCloudStack/rookify
2930
cd rookify
3031
```
3132

32-
3. To install the local development environment
33+
3. Check if your host has the correct "radoslib" library installed (if not: then install radoslib version 2.0.0):
34+
```bash
35+
make check-radoslib
36+
```
37+
38+
4. To install the local development environment
3339
(_Note: This will install pre-commit in your local user context_):
3440
```bash
3541
make setup
3642
```
3743

38-
4. To install the container-based environment
44+
5. To install the container-based environment
3945
```bash
4046
make build-container
41-
docker run -ti --mount type=bind,source="$(pwd)",target=/app/rookify/src/,readonly --workdir=/app/rookify/src rookify:latest
4247
```
4348

4449
## Usage
45-
__TODO__
4650

47-
Type `make` to get a list of available development specific commands.
51+
**NOTE**: for testing purposes the [OSISM Testbed](https://github.com/osism/testbed) is used. The `Makefile` and example configuration (`config.example.osism.yaml`) have built in helper functions and examples for this test setup.
52+
53+
### Copy and adapt configuration files
54+
55+
Choose one of the configuration-examples found in the root of the working directory and copy it to `config.yml`:
56+
57+
```
58+
ls config.example.*
59+
# there is a specific example config for the OSISM testbed: config.example.osism.yaml
60+
cp config.example.yml config.yaml
61+
```
62+
63+
_Adapt the config.yml to your need_: especially enter the correct paths for ssh-keys, kubernetes configuration and ceph configuration (all these configuration files need to be provided!).
64+
65+
### Provide needed configuration files from target servers
66+
67+
Copy the needed configuration-files from the servers that need to be migrated from ceph to rook.
68+
69+
_Provide needed configuration files as written in the config.yml._ At least required are:
70+
- ./ceph/ceph.conf (typically found in `/etc/ceph/` on a testbednode)
71+
- ./ceph/ceph.admin.keyring (typically found in `/etc/ceph/` on a testbednode)
72+
- kubernetes config of user (e.g. found in `~/.kube/config`)
73+
- ssh key of the server (found at `./terraform/.id.rsa` in the `testbed` directory)
74+
75+
Note:
76+
- for the testbed there is a helper script to download the configs from the testbed. These helperscripts need correct `.ssh/config` entries to work (take a look at [scripts/osism/get_configs_from_testbed](osism/get_configs_from_testbed.sh) for an example).
77+
- the helper scripts are merely there to help for testing with the [OSISM testbed](https://github.com/osism/testbed) and might not suit your purposes.
78+
79+
### Run Rookify
80+
81+
Now decide on how to run rookify. Either run it from within a container or locally:
82+
83+
```
84+
run-local-rookify
85+
# or
86+
run-rookify
87+
```
88+
89+
Then sit back and wait. Check the [troubleshooting](#troubleshooting) and [support](#support) sections if any issues occur.
90+
91+
For other options you can also check the makefile: Type `make` to get a list of available commands.
92+
93+
### Check status of migration
94+
95+
Use `rookify --show-states` argument to let each module check for its state in the migration
96+
97+
```bash
98+
.venv/bin/rookify --show-states
99+
ceph mon dump: Not analyzed yet
100+
ceph osd dump: Not analyzed yet
101+
OSD devices: Not analyzed yet
102+
```
103+
104+
#### Troubleshooting
105+
106+
**ssh-issues:**
107+
- make sure the id-rsa keys are "clean" and do not contain unexpected strings like "\<\<EOF". E.g. call `ssh-keygen -p -N "" -f ssh.key` to convert and reformat the keyfile to the expected format.
108+
- allow direnv (`direnv allow`) to use `.envrc` or copy and execute the command from the file: this switches off the ssh-agent, which sometimes has too many keys loaded
109+
110+
**frozen state:**
111+
- if the rookify process freezes, check your connections. In the OSISM testbed especially check the vpn-connection (in testbed repository try `make vpn-*`)
48112

49113
## Support
114+
50115
For issues, questions, or contributions, please open an issue or pull request in the GitHub repository. We welcome community feedback and contributions to enhance rookify.
51116

117+
52118
## License
53119
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

0 commit comments

Comments
 (0)