From e47341eaf7449212b0c8beb0c1754af93a348863 Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Thu, 22 Aug 2024 13:04:43 +0200 Subject: [PATCH 01/16] readme update: add tipps to troubleshoot Signed-off-by: Boekhorst --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index e2cbe8c..cf6f63f 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,12 @@ __TODO__ Type `make` to get a list of available development specific commands. +## Troubleshooting + +### OSISM Testbed + +- ssh-issues: make sure the id-rsa keys are "clean" and do not contain unexpected strings like "\<\ Date: Thu, 22 Aug 2024 13:25:49 +0200 Subject: [PATCH 02/16] update readme: add usage docs Signed-off-by: Boekhorst --- README.md | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cf6f63f..93b3db3 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,43 @@ docker run -ti --mount type=bind,source="$(pwd)",target=/app/rookify/src/,readon ``` ## Usage -__TODO__ + +### Copy and adapt configuration files + +Choose one of the config-examples found in the root of the workingdirectory and copy it to `config.yml`: + +``` +ls config.example.* +# there is a specific example config for osism: config.example.yaml +cp config.example.yml config.yaml +``` + +_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!). +Note: + - 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/get_configs_from_testbed.sh` for an example). + - the helper scripts are merely there to help for testing with the OSISM testbed and might not suit your purposes. + +### Provide needed configuration files from target servers + +Copy the needed configuration-files from the servers that need to be migrated from ceph to rook. + +_Provide needed configuration files as written in the configuration file._ At least required are: +- ./ceph/ceph.conf (typically found in `/etc/ceph/` on a testbednode) +- ./ceph/ceph.admin.keyring (typically found in `/etc/ceph/` on a testbednode) +- kubernetes config of user (e.g. found in `~/.kube/config`) +- ssh key of testbed (typically found in `./terraform/.id.rsa` folder of the testbed repository) + +### Run Rookify + +Now decide on how to run rookify. Either run it from within a container or locally: + +``` +run-local-rookify +# or +run-rookify +``` + +### Check the other options Type `make` to get a list of available development specific commands. From 1e999e1a3b273e5e53e951bed87d714e58d26bd5 Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Thu, 22 Aug 2024 13:34:06 +0200 Subject: [PATCH 03/16] docs: update information that users should check for radoslib installation Signed-off-by: Boekhorst --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 93b3db3..e4fc49c 100644 --- a/README.md +++ b/README.md @@ -29,13 +29,18 @@ git clone https://github.com/SovereignCloudStack/rookify cd rookify ``` -3. To install the local development environment +3. Check if your host has the correct "radoslib" library installed (if not: then install radoslib version 2.0.0): +```bash +make check-radoslib +``` + +4. To install the local development environment (_Note: This will install pre-commit in your local user context_): ```bash make setup ``` -4. To install the container-based environment +5. To install the container-based environment ```bash make build-container docker run -ti --mount type=bind,source="$(pwd)",target=/app/rookify/src/,readonly --workdir=/app/rookify/src rookify:latest From cb171b34786c8480c789419c18a0a1a8472391de Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Thu, 22 Aug 2024 13:44:27 +0200 Subject: [PATCH 04/16] readme: add links and some more infos concerning testbed setup Signed-off-by: Boekhorst --- README.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e4fc49c..0edc042 100644 --- a/README.md +++ b/README.md @@ -48,20 +48,22 @@ docker run -ti --mount type=bind,source="$(pwd)",target=/app/rookify/src/,readon ## Usage +**NOTE**: for testing purposes the [OSISM Testbed](https://github.com/osism/testbed) is used. The `Makefile` and example configuratino (`config.example.osism.yaml`) have built in helper functions and examples for this test-setup. + ### Copy and adapt configuration files -Choose one of the config-examples found in the root of the workingdirectory and copy it to `config.yml`: +Choose one of the configuration-examples found in the root of the working-directory and copy it to `config.yml`: ``` ls config.example.* -# there is a specific example config for osism: config.example.yaml +# there is a specific example config for the osism testbed: config.example.osism.yaml cp config.example.yml config.yaml ``` _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!). Note: - - 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/get_configs_from_testbed.sh` for an example). - - the helper scripts are merely there to help for testing with the OSISM testbed and might not suit your purposes. + - 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/get_configs_from_testbed](scripts/get_configs_from_testbed.sh) for an example). + - 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. ### Provide needed configuration files from target servers @@ -91,7 +93,12 @@ Type `make` to get a list of available development specific commands. ### OSISM Testbed -- ssh-issues: make sure the id-rsa keys are "clean" and do not contain unexpected strings like "\<\ Date: Mon, 26 Aug 2024 10:04:21 +0200 Subject: [PATCH 05/16] README update: move specifics under more generic sections, clean format, remove spelling mistakes Signed-off-by: Boekhorst --- README.md | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 0edc042..f0c7b8a 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ docker run -ti --mount type=bind,source="$(pwd)",target=/app/rookify/src/,readon ## Usage -**NOTE**: for testing purposes the [OSISM Testbed](https://github.com/osism/testbed) is used. The `Makefile` and example configuratino (`config.example.osism.yaml`) have built in helper functions and examples for this test-setup. +**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. ### Copy and adapt configuration files @@ -61,19 +61,20 @@ cp config.example.yml config.yaml ``` _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!). -Note: - - 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/get_configs_from_testbed](scripts/get_configs_from_testbed.sh) for an example). - - 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. ### Provide needed configuration files from target servers Copy the needed configuration-files from the servers that need to be migrated from ceph to rook. -_Provide needed configuration files as written in the configuration file._ At least required are: +_Provide needed configuration files as written in the config.yml._ At least required are: - ./ceph/ceph.conf (typically found in `/etc/ceph/` on a testbednode) - ./ceph/ceph.admin.keyring (typically found in `/etc/ceph/` on a testbednode) - kubernetes config of user (e.g. found in `~/.kube/config`) -- ssh key of testbed (typically found in `./terraform/.id.rsa` folder of the testbed repository) +- ssh key of the server (for the testbed they are typically found in `./terraform/.id.rsa` folder of the testbed-repository) + +Note: +- 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 [osism/get_configs_from_testbed](osism/get_configs_from_testbed.sh) for an example). +- 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. ### Run Rookify @@ -85,23 +86,23 @@ run-local-rookify run-rookify ``` -### Check the other options +Then sitback and wait. Check the [troubleshooting](#troubleshooting) and [support](#support) sections if any issues occure. -Type `make` to get a list of available development specific commands. +For other options you can also check the makefile: Type `make` to get a list of available commands. -## Troubleshooting - -### OSISM Testbed +#### Troubleshooting **ssh-issues:** - - make sure the id-rsa keys are "clean" and do not contain unexpected strings like "\<\ Date: Mon, 23 Sep 2024 08:16:47 +0000 Subject: [PATCH 06/16] fix: add info about show-states option and fix some small spelling issues Signed-off-by: Boekhorst --- README.md | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f0c7b8a..5820260 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ Rookify is designed to facilitate a smooth and efficient transition for existing - _local development enivornment_ requires radoslib version 2.0.0 installed ## Installation + 1. Clone the repository: ```bash git clone https://github.com/SovereignCloudStack/rookify @@ -43,20 +44,19 @@ make setup 5. To install the container-based environment ```bash make build-container -docker run -ti --mount type=bind,source="$(pwd)",target=/app/rookify/src/,readonly --workdir=/app/rookify/src rookify:latest ``` ## Usage -**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. +**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. ### Copy and adapt configuration files -Choose one of the configuration-examples found in the root of the working-directory and copy it to `config.yml`: +Choose one of the configuration-examples found in the root of the working directory and copy it to `config.yml`: ``` ls config.example.* -# there is a specific example config for the osism testbed: config.example.osism.yaml +# there is a specific example config for the OSISM testbed: config.example.osism.yaml cp config.example.yml config.yaml ``` @@ -73,7 +73,7 @@ _Provide needed configuration files as written in the config.yml._ At least requ - ssh key of the server (for the testbed they are typically found in `./terraform/.id.rsa` folder of the testbed-repository) Note: -- 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 [osism/get_configs_from_testbed](osism/get_configs_from_testbed.sh) for an example). +- 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). - 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. ### Run Rookify @@ -86,10 +86,21 @@ run-local-rookify run-rookify ``` -Then sitback and wait. Check the [troubleshooting](#troubleshooting) and [support](#support) sections if any issues occure. +Then sit back and wait. Check the [troubleshooting](#troubleshooting) and [support](#support) sections if any issues occur. For other options you can also check the makefile: Type `make` to get a list of available commands. +### Check status of migration + +Use `rookify --show-states` argument to let each module check for its state in the migration + +```bash +.venv/bin/rookify --show-states +ceph mon dump: Not analyzed yet +ceph osd dump: Not analyzed yet +OSD devices: Not analyzed yet +``` + #### Troubleshooting **ssh-issues:** @@ -97,7 +108,7 @@ For other options you can also check the makefile: Type `make` to get a list of - 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 **frozen state:** -- if the rookify process freezes, check your connections. In the OSISM testbed especially check the vpn-connection (in testbedrepoisitory try `make vpn-*`) +- if the rookify process freezes, check your connections. In the OSISM testbed especially check the vpn-connection (in testbed repository try `make vpn-*`) ## Support From 796bc62422fe12f5f23ed74835f8c3f23a1aae36 Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Wed, 25 Sep 2024 09:53:48 +0200 Subject: [PATCH 07/16] feat: add docs for osism and scs websites Signed-off-by: Boekhorst --- docs/configuration-guide/rookify.md | 46 +++++++++++++++++++++++++++++ docs/deploy-guide/rookify.md | 17 +++++++++++ docs/operations-guide/rookify.md | 15 ++++++++++ 3 files changed, 78 insertions(+) create mode 100644 docs/configuration-guide/rookify.md create mode 100644 docs/deploy-guide/rookify.md create mode 100644 docs/operations-guide/rookify.md diff --git a/docs/configuration-guide/rookify.md b/docs/configuration-guide/rookify.md new file mode 100644 index 0000000..9a38219 --- /dev/null +++ b/docs/configuration-guide/rookify.md @@ -0,0 +1,46 @@ +--- +sidebar_label: Configure Rookify: Migrate to Rook from Ceph Ansible (technical preview) +sidebar_position: 31 +--- + +# Configure Rookify: Migrate from Ceph Ansible to Rook (Technical Preview) + +The [Rookify GitHub repository](https://github.com/SovereignCloudStack/rookify) includes a README.md that provides a condensed summary of the information covered here. + +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 beforehand, such as the [OSISM testbed](https://github.com/osism/testbed). Additionally, ensure that all precautionary backups are taken, and any other necessary safety measures are in place. + +## Config.yaml + +The primary configuration file for Rookify is `config.yaml`. The repository contains an example file for general use, as well as one specifically tailored to the OSISM testbed setup: + +- [config.example.yaml](https://github.com/SovereignCloudStack/rookify/blob/main/config.example.yaml) +- [config.example.osism.yaml](https://github.com/SovereignCloudStack/rookify/blob/main/config.example.osism.yaml) + +### Parameters + +```yaml +general: + machine_pickle_file: data.pickle +``` + +The general section allows for optional definition of a pickle file, which allows for saving the state of the migration as serialized objects on disk. The pickle filed can be named as pleased. + +```yaml +logging: + level: INFO # level at which logging should start + format: + time: "%Y-%m-%d %H:%M.%S" # other example: "iso" + renderer: console # or: json +``` + +The `logging` section allows for specification of `structlog`. The `level` parameter can be set to all python [log-levels](https://docs.python.org/3/library/logging.html#logging-levels), i.e. `NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAl`, but it is recommended to use `INFO`. + +```yaml +ceph: + config: ./.ceph/ceph.conf + keyring: ./.ceph/ceph.client.admin.keyring +``` + +The `ceph` section specifies the `ceph.conf` and `ceph.client.admin.keyring` of the target systems (i.e. the system where Ceph-Ansible needs to be migrated to Rook). diff --git a/docs/deploy-guide/rookify.md b/docs/deploy-guide/rookify.md new file mode 100644 index 0000000..b67efbc --- /dev/null +++ b/docs/deploy-guide/rookify.md @@ -0,0 +1,17 @@ +--- +sidebar_label: Migrate Ceph-Ansible via Rookify (technical preview) +sidebar_position: 51 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Migrate Ceph-Ansible via Rookify (technical preview) + +:::warning + +This is a technical preview and not recommended for production use yet. + +::: + +Rookify is now also available in OSISM. diff --git a/docs/operations-guide/rookify.md b/docs/operations-guide/rookify.md new file mode 100644 index 0000000..746972d --- /dev/null +++ b/docs/operations-guide/rookify.md @@ -0,0 +1,15 @@ +--- +sidebar_label: Ceph via Rook (technical preview) +--- + +# Ceph via Rook (technical preview) + +:::warning + +This is a technical preview and not recommended for production use yet. This whole +document has to be reworkded with more rook like handling. Do not take it for +granted yet. + +::: + +## Where to find docs From 748cb910c4f2865ee73ef8d6df147c3e2728e2ee Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Wed, 25 Sep 2024 11:24:29 +0200 Subject: [PATCH 08/16] fix: finish config description for general config.example.yaml Signed-off-by: Boekhorst --- docs/configuration-guide/rookify.md | 64 +++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 3 deletions(-) diff --git a/docs/configuration-guide/rookify.md b/docs/configuration-guide/rookify.md index 9a38219..50420c5 100644 --- a/docs/configuration-guide/rookify.md +++ b/docs/configuration-guide/rookify.md @@ -20,14 +20,14 @@ The primary configuration file for Rookify is `config.yaml`. The repository cont ### Parameters -```yaml +```yaml title="config.example.yaml" general: machine_pickle_file: data.pickle ``` The general section allows for optional definition of a pickle file, which allows for saving the state of the migration as serialized objects on disk. The pickle filed can be named as pleased. -```yaml +```yaml title="config.example.yaml" logging: level: INFO # level at which logging should start format: @@ -37,10 +37,68 @@ logging: The `logging` section allows for specification of `structlog`. The `level` parameter can be set to all python [log-levels](https://docs.python.org/3/library/logging.html#logging-levels), i.e. `NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAl`, but it is recommended to use `INFO`. -```yaml +```yaml title="config.example.yaml" + ceph: config: ./.ceph/ceph.conf keyring: ./.ceph/ceph.client.admin.keyring ``` The `ceph` section specifies the `ceph.conf` and `ceph.client.admin.keyring` of the target systems (i.e. the system where Ceph-Ansible needs to be migrated to Rook). + +```yaml title="config.example.yaml" +# fill in correct path to private key +ssh: + private_key: /home/USER/.ssh/cloud.private + hosts: + testbed-node-0: + address: 192.168.16.10 + user: dragon + testbed-node-1: + address: 192.168.16.11 + user: dragon + testbed-node-2: + address: 192.168.16.12 + user: dragon +``` + +The `ssh` section requires specification of the `private_key` and `hosts`. The `hosts` section specifies the hostnames or aliases (e.g. keys like `testbed-node-0`), their ip-addresses (e.g. if rookify connects to the target systems per VPN add ips starting with `192.186...`) and user for login. If you are using the OSISM testbed, make sure that the private key does not contain any `EOF` or other strings, i.e. make sure the keys are 'clean' to avoid connection errors. + +```yaml title="config.example.yaml" + +kubernetes: + config: ./k8s/config +``` + +The `kubernetes` section specifies the kubernetes configuration (e.g. if you use kubectl it is located in `~/.kube/config`) for rookifies kubernetes library. Rookify needs to connect to the kubernetes cluster on the target systems in order to use Rook. + +```yaml title="config.example.yaml" +rook: + cluster: + name: osism-ceph + namespace: rook-ceph + ceph: + image: quay.io/ceph/ceph:v18.2.1 +``` + +The `rook` sections requires some information about the Rook installation on the target system. Concerning the `cluster` Rookify needs to know the cluster-name and cluster-namespace. Rookify also needs to know the ceph version used by Rookify, i.e. the image version of the ceph container. + +_Note_: Rookify does not install Rook for you. You need to provide a running Rook, i.e. a Rook Operator, on you target system. + +```yaml title="config.example.yaml" +migration_modules: +- analyze_ceph +- create_rook_cluster +- migrate_mons +- migrate_osds +- migrate_osd_pools +- migrate_mds +- migrate_mds_pools +- migrate_mgrs +- migrate_rgws +- migrate_rgw_pools +``` + +Rookify is designed to use a modular structure. It has contains various modules to migrate parts of Ceph-Ansible to Rook. The `migration_modules` section specifies which modules need to be run for the migration. Rookify contains more modules, take a look at the [`src/rookify/module`](https://github.com/SovereignCloudStack/rookify/tree/main/src/rookify/modules) directory to see the ones that are currently implemented. + +_NOTE_: Many modules are dependent of each other. This means that some models will implicitly run other modules. For example: the `analyze_ceph` module specified above, will be run by all the modules. This means, that one does not need to specify it. It was added here only for reasons of clearity. From f633a654d02720172fb4ecd05cd8e6a22cad8743 Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Wed, 25 Sep 2024 11:35:43 +0200 Subject: [PATCH 09/16] fix: add headers, add osism specific configuration Signed-off-by: Boekhorst --- docs/configuration-guide/rookify.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/docs/configuration-guide/rookify.md b/docs/configuration-guide/rookify.md index 50420c5..3adce70 100644 --- a/docs/configuration-guide/rookify.md +++ b/docs/configuration-guide/rookify.md @@ -20,6 +20,8 @@ The primary configuration file for Rookify is `config.yaml`. The repository cont ### Parameters +#### General + ```yaml title="config.example.yaml" general: machine_pickle_file: data.pickle @@ -27,6 +29,8 @@ general: The general section allows for optional definition of a pickle file, which allows for saving the state of the migration as serialized objects on disk. The pickle filed can be named as pleased. +#### Logging + ```yaml title="config.example.yaml" logging: level: INFO # level at which logging should start @@ -37,6 +41,8 @@ logging: The `logging` section allows for specification of `structlog`. The `level` parameter can be set to all python [log-levels](https://docs.python.org/3/library/logging.html#logging-levels), i.e. `NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAl`, but it is recommended to use `INFO`. +#### Ceph + ```yaml title="config.example.yaml" ceph: @@ -46,6 +52,8 @@ ceph: The `ceph` section specifies the `ceph.conf` and `ceph.client.admin.keyring` of the target systems (i.e. the system where Ceph-Ansible needs to be migrated to Rook). +#### SSH + ```yaml title="config.example.yaml" # fill in correct path to private key ssh: @@ -64,6 +72,8 @@ ssh: The `ssh` section requires specification of the `private_key` and `hosts`. The `hosts` section specifies the hostnames or aliases (e.g. keys like `testbed-node-0`), their ip-addresses (e.g. if rookify connects to the target systems per VPN add ips starting with `192.186...`) and user for login. If you are using the OSISM testbed, make sure that the private key does not contain any `EOF` or other strings, i.e. make sure the keys are 'clean' to avoid connection errors. +#### Kubernetes + ```yaml title="config.example.yaml" kubernetes: @@ -85,6 +95,25 @@ The `rook` sections requires some information about the Rook installation on the _Note_: Rookify does not install Rook for you. You need to provide a running Rook, i.e. a Rook Operator, on you target system. +_Note_: For OSISM specific migrations, Rookify needs to have some additional information, i.e. the respective labels for the rook resources: + +```yaml title="config.example.osism.yaml" +rook: + cluster: + name: osism-ceph + namespace: rook-ceph + mds_placement_label: node-role.osism.tech/rook-mds + mgr_placement_label: node-role.osism.tech/rook-mgr + mon_placement_label: node-role.osism.tech/rook-mon + osd_placement_label: node-role.osism.tech/rook-osd + rgw_placement_label: node-role.osism.tech/rook-rgw + ceph: + image: quay.io/ceph/ceph:v18.2.1 +``` + + +#### Migration_modules + ```yaml title="config.example.yaml" migration_modules: - analyze_ceph From c7e9caa1af44bfa745f16a19ba718ec8bc59abbc Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Wed, 25 Sep 2024 12:03:21 +0200 Subject: [PATCH 10/16] feat: deployment docs on installing and running rookify manually Signed-off-by: Boekhorst --- docs/deploy-guide/rookify.md | 59 ++++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/docs/deploy-guide/rookify.md b/docs/deploy-guide/rookify.md index b67efbc..9a78ec7 100644 --- a/docs/deploy-guide/rookify.md +++ b/docs/deploy-guide/rookify.md @@ -1,12 +1,12 @@ --- -sidebar_label: Migrate Ceph-Ansible via Rookify (technical preview) +sidebar_label: Deploy Rookify: Migrate to Rook from Ceph Ansible (technical preview) sidebar_position: 51 --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -# Migrate Ceph-Ansible via Rookify (technical preview) +# Deploy Rookify: Migrate to Rook from Ceph Ansible (technical preview) :::warning @@ -14,4 +14,57 @@ This is a technical preview and not recommended for production use yet. ::: -Rookify is now also available in OSISM. +Rookify is now available in the SCS Reference Implementation (OSISM) and can be deployed as shown in the [paragraph below](## Using the SCS Reference Implementation). + +In order to manually deploy Rookify you can take a look at the `README.md` file in the [rookify repository](https://github.com/SovereignCloudStack/rookify) or follow the [instructions here](## Manual Installation). + +## Using the SCS Reference Implementation (OSISM) + +Rookify is now also available in OSISM and can be deployed with the following osism-commands based on the following ansible scripts. + + +## Manual Installation + +### Download or Clone the Repository + +Clone or download Rookify from the [repository](https://github.com/SovereignCloudStack/rookify), then checkout the included options of the added `Makefile` by simply typing `make`. + +## Install and Run Locally + +1. Navigate to the tool directory: + +```bash +cd rookify +``` + +2. To install Rookify locally, pythons virtualenv will be used (Note: This will install pre-commit in your local user context): + +``` +make setup +``` + +This command also checks if you have the required python library for `radoslib` installed. Make sure to have it installed on your linux distribution. + +To run rookify you can either run it directly from within the virtualenv or with help of the make file: + +```bash +# directly +./.venv/bin/rookify --help +# using make +make run-local-rookify +``` + +## Install and Run from within a Container + +1. Navigate to the tool directory: + +2. To install Rookify into a container, podman or docker can be used (Note: in both cases pythons library for `radoslib` needs to be installed locally): + +``` +make check-radoslib +make up +``` + +This command uses `docker compose`, so make sure you have that installed as well. + +To run rookify you can either enter the container and run rookify from there or use `make run-rookify`. From a41ebd47ee981382cf25bdbd249e865c4c8061cf Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Wed, 25 Sep 2024 12:12:38 +0200 Subject: [PATCH 11/16] feat: add first structure for operations guide on rookify Signed-off-by: Boekhorst --- docs/operations-guide/rookify.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/operations-guide/rookify.md b/docs/operations-guide/rookify.md index 746972d..8cef406 100644 --- a/docs/operations-guide/rookify.md +++ b/docs/operations-guide/rookify.md @@ -1,15 +1,19 @@ --- -sidebar_label: Ceph via Rook (technical preview) +sidebar_label: Use Rookify: Migrate to Rook from Ceph Ansible (technical preview) --- -# Ceph via Rook (technical preview) +# Rookify: Migrate to Rook from Ceph Ansible (technical preview) :::warning -This is a technical preview and not recommended for production use yet. This whole -document has to be reworkded with more rook like handling. Do not take it for -granted yet. +This is a technical preview and not recommended for production use yet. ::: -## Where to find docs + + +## Where to find other docs and information + +For deployment see: + +For configuration see: From b48b7307c73ace59459db9ab9c987158f7d14567 Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Wed, 25 Sep 2024 13:19:56 +0200 Subject: [PATCH 12/16] fix: link to headers Signed-off-by: Boekhorst --- docs/deploy-guide/rookify.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/deploy-guide/rookify.md b/docs/deploy-guide/rookify.md index 9a78ec7..ecc7af7 100644 --- a/docs/deploy-guide/rookify.md +++ b/docs/deploy-guide/rookify.md @@ -14,9 +14,9 @@ This is a technical preview and not recommended for production use yet. ::: -Rookify is now available in the SCS Reference Implementation (OSISM) and can be deployed as shown in the [paragraph below](## Using the SCS Reference Implementation). +Rookify is now available in the SCS Reference Implementation (OSISM) and can be deployed as shown in the [paragraph below](#using-the-scs-reference-implementation-osism). -In order to manually deploy Rookify you can take a look at the `README.md` file in the [rookify repository](https://github.com/SovereignCloudStack/rookify) or follow the [instructions here](## Manual Installation). +In order to manually deploy Rookify you can take a look at the `README.md` file in the [rookify repository](https://github.com/SovereignCloudStack/rookify) or follow the [instructions here](#manual-installation). ## Using the SCS Reference Implementation (OSISM) From 254f587629cf7f6d849bf7e0687fc2c91e90066b Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Wed, 25 Sep 2024 14:23:17 +0200 Subject: [PATCH 13/16] feat: add operations guide, fix: add admonitions from docusaurus Signed-off-by: Boekhorst --- docs/configuration-guide/rookify.md | 7 ++- docs/deploy-guide/rookify.md | 36 +++++++++++--- docs/operations-guide/rookify.md | 76 ++++++++++++++++++++++++++--- 3 files changed, 105 insertions(+), 14 deletions(-) diff --git a/docs/configuration-guide/rookify.md b/docs/configuration-guide/rookify.md index 3adce70..c6eddf9 100644 --- a/docs/configuration-guide/rookify.md +++ b/docs/configuration-guide/rookify.md @@ -5,12 +5,15 @@ sidebar_position: 31 # Configure Rookify: Migrate from Ceph Ansible to Rook (Technical Preview) -The [Rookify GitHub repository](https://github.com/SovereignCloudStack/rookify) includes a README.md that provides a condensed summary of the information covered here. +:::warning 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 beforehand, such as the [OSISM testbed](https://github.com/osism/testbed). Additionally, ensure that all precautionary backups are taken, and any other necessary safety measures are in place. +::: + +The [Rookify GitHub repository](https://github.com/SovereignCloudStack/rookify) includes a README.md that provides a condensed summary of the information covered here. + ## Config.yaml The primary configuration file for Rookify is `config.yaml`. The repository contains an example file for general use, as well as one specifically tailored to the OSISM testbed setup: diff --git a/docs/deploy-guide/rookify.md b/docs/deploy-guide/rookify.md index ecc7af7..6884923 100644 --- a/docs/deploy-guide/rookify.md +++ b/docs/deploy-guide/rookify.md @@ -10,24 +10,36 @@ import TabItem from '@theme/TabItem'; :::warning -This is a technical preview and not recommended for production use yet. +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 beforehand, such as the [OSISM testbed](https://github.com/osism/testbed). Additionally, ensure that all precautionary backups are taken, and any other necessary safety measures are in place. ::: Rookify is now available in the SCS Reference Implementation (OSISM) and can be deployed as shown in the [paragraph below](#using-the-scs-reference-implementation-osism). -In order to manually deploy Rookify you can take a look at the `README.md` file in the [rookify repository](https://github.com/SovereignCloudStack/rookify) or follow the [instructions here](#manual-installation). +The [Rookify GitHub repository](https://github.com/SovereignCloudStack/rookify) includes a README.md that provides a condensed summary of the information covered here. ## Using the SCS Reference Implementation (OSISM) -Rookify is now also available in OSISM and can be deployed with the following osism-commands based on the following ansible scripts. - +:::info + +Rookify will be available in OSISM and will be deployable usin osism-commands based on ansible configurations. + +::: + +But is is not available yet ;) ## Manual Installation ### Download or Clone the Repository -Clone or download Rookify from the [repository](https://github.com/SovereignCloudStack/rookify), then checkout the included options of the added `Makefile` by simply typing `make`. +Clone or download Rookify from the [repository](https://github.com/SovereignCloudStack/rookify). + +:::tip + +Checkout the included options of the added `Makefile` by simply typing `make`. + +::: ## Install and Run Locally @@ -45,7 +57,13 @@ make setup This command also checks if you have the required python library for `radoslib` installed. Make sure to have it installed on your linux distribution. -To run rookify you can either run it directly from within the virtualenv or with help of the make file: +:::tip + +Before running rookify, first check all options by using `rookify --help` + +::: + +To run rookify you can either run it directly from within pythons virtualenv or with help of the make file: ```bash # directly @@ -68,3 +86,9 @@ make up This command uses `docker compose`, so make sure you have that installed as well. To run rookify you can either enter the container and run rookify from there or use `make run-rookify`. + +:::note + +Before running rookify, it can be usefull to check all options by using `rookify --help` + +::: diff --git a/docs/operations-guide/rookify.md b/docs/operations-guide/rookify.md index 8cef406..cc05c48 100644 --- a/docs/operations-guide/rookify.md +++ b/docs/operations-guide/rookify.md @@ -1,19 +1,83 @@ --- -sidebar_label: Use Rookify: Migrate to Rook from Ceph Ansible (technical preview) +sidebar_label: Rookify Operation: Migrate to Rook from Ceph Ansible (technical preview) --- -# Rookify: Migrate to Rook from Ceph Ansible (technical preview) +# Use Rookify: Migrate to Rook from Ceph Ansible (technical preview) :::warning -This is a technical preview and not recommended for production use yet. +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 beforehand, such as the [OSISM testbed](https://github.com/osism/testbed). Additionally, ensure that all precautionary backups are taken, and any other necessary safety measures are in place. ::: +The [Rookify GitHub repository](https://github.com/SovereignCloudStack/rookify) includes a README.md that provides a condensed summary of the information covered here. +## Consider using a pickle file -## Where to find other docs and information +In order to have a trackable state of process you can add a pickle file. Specify this option in the `config.yaml`: -For deployment see: +```yaml title="config.example.yaml" +general: + machine_pickle_file: data.pickle +``` -For configuration see: +Now you will be able to to view the state of progress by running `rookify --show-state`. + +:::warning + Rookify will take data.pickle as a source of truth for its operations. If you want to start a clean migration, be sure to delete the file. +::: + +## Rookify CLI + +### Run + +:::warning + Currenlty rookify executes per default +::: + +Currenlty rookify executes per default. This means: if you run rookify like so `.venv/bin/rookify`, it will start the migration as configured in `config.yaml`. + +### --dry-run + +:::tip + Run preflight-mode to check if Rookify can connect to your target systems +::: + +Rookify has a `preflight-mode` to check if basic commands and the connection to the target systems are working. +You can always run `--dry-run` mode, without any danger that migration processes will be executed. + +### --help + +Run `--help` to see the various options the CLI provides. + +### --show + +Run `--show` if you used a pickel-file (see the configuration-guide concerning the general section). This will show the status of your migration process. + +## Debugging and Testing + +If you suspect that something is not working in Rookify itself, you can start setting logging to `DEBUG`. + +If you suspect that something is not working in Rookify itself, you could start by running the tests. For this you need to have access to rookifies code. + +### Set logging to debug level + +Edit the `config.yaml` and set level to "DEBUG": + +```yaml title="config.example.yaml" +logging: + level: DEBUG + format: + time: "%Y-%m-%d %H:%M.%S" # other example: "iso" + renderer: console # or: json +``` + +You can also set the other formatting options, as indicated by the comments, for further options take a look a the documentation of [structlog](https://www.structlog.org/en/stable/standard-library.html). + +### Run tests + +Make sure you can reach Rookifies code on you system. Then you can either: + +1. run `make run-tests-locally` from the working directory of the rookify repository. If you prefer to use a containerized setup, use `make run-tests`. +2. run `.venv/bin/python -m pytest` from the virtual environment of you installation From 61e91372c4339e9332a3436c6488bb1ba984d475 Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Wed, 25 Sep 2024 14:27:42 +0200 Subject: [PATCH 14/16] fix: add guides dir Signed-off-by: Boekhorst --- docs/{ => guides}/configuration-guide/rookify.md | 0 docs/{ => guides}/deploy-guide/rookify.md | 0 docs/{ => guides}/operations-guide/rookify.md | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename docs/{ => guides}/configuration-guide/rookify.md (100%) rename docs/{ => guides}/deploy-guide/rookify.md (100%) rename docs/{ => guides}/operations-guide/rookify.md (100%) diff --git a/docs/configuration-guide/rookify.md b/docs/guides/configuration-guide/rookify.md similarity index 100% rename from docs/configuration-guide/rookify.md rename to docs/guides/configuration-guide/rookify.md diff --git a/docs/deploy-guide/rookify.md b/docs/guides/deploy-guide/rookify.md similarity index 100% rename from docs/deploy-guide/rookify.md rename to docs/guides/deploy-guide/rookify.md diff --git a/docs/operations-guide/rookify.md b/docs/guides/operations-guide/rookify.md similarity index 100% rename from docs/operations-guide/rookify.md rename to docs/guides/operations-guide/rookify.md From 230aea15520d0db337ea3a1468bb4043c206d009 Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Wed, 25 Sep 2024 14:38:38 +0200 Subject: [PATCH 15/16] fix: remove docs and add them directly to osism/osism.github.io Signed-off-by: Boekhorst --- docs/guides/configuration-guide/rookify.md | 136 --------------------- docs/guides/deploy-guide/rookify.md | 94 -------------- docs/guides/operations-guide/rookify.md | 83 ------------- 3 files changed, 313 deletions(-) delete mode 100644 docs/guides/configuration-guide/rookify.md delete mode 100644 docs/guides/deploy-guide/rookify.md delete mode 100644 docs/guides/operations-guide/rookify.md diff --git a/docs/guides/configuration-guide/rookify.md b/docs/guides/configuration-guide/rookify.md deleted file mode 100644 index c6eddf9..0000000 --- a/docs/guides/configuration-guide/rookify.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -sidebar_label: Configure Rookify: Migrate to Rook from Ceph Ansible (technical preview) -sidebar_position: 31 ---- - -# Configure Rookify: Migrate from Ceph Ansible to Rook (Technical Preview) - -:::warning - -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 beforehand, such as the [OSISM testbed](https://github.com/osism/testbed). Additionally, ensure that all precautionary backups are taken, and any other necessary safety measures are in place. - -::: - -The [Rookify GitHub repository](https://github.com/SovereignCloudStack/rookify) includes a README.md that provides a condensed summary of the information covered here. - -## Config.yaml - -The primary configuration file for Rookify is `config.yaml`. The repository contains an example file for general use, as well as one specifically tailored to the OSISM testbed setup: - -- [config.example.yaml](https://github.com/SovereignCloudStack/rookify/blob/main/config.example.yaml) -- [config.example.osism.yaml](https://github.com/SovereignCloudStack/rookify/blob/main/config.example.osism.yaml) - -### Parameters - -#### General - -```yaml title="config.example.yaml" -general: - machine_pickle_file: data.pickle -``` - -The general section allows for optional definition of a pickle file, which allows for saving the state of the migration as serialized objects on disk. The pickle filed can be named as pleased. - -#### Logging - -```yaml title="config.example.yaml" -logging: - level: INFO # level at which logging should start - format: - time: "%Y-%m-%d %H:%M.%S" # other example: "iso" - renderer: console # or: json -``` - -The `logging` section allows for specification of `structlog`. The `level` parameter can be set to all python [log-levels](https://docs.python.org/3/library/logging.html#logging-levels), i.e. `NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAl`, but it is recommended to use `INFO`. - -#### Ceph - -```yaml title="config.example.yaml" - -ceph: - config: ./.ceph/ceph.conf - keyring: ./.ceph/ceph.client.admin.keyring -``` - -The `ceph` section specifies the `ceph.conf` and `ceph.client.admin.keyring` of the target systems (i.e. the system where Ceph-Ansible needs to be migrated to Rook). - -#### SSH - -```yaml title="config.example.yaml" -# fill in correct path to private key -ssh: - private_key: /home/USER/.ssh/cloud.private - hosts: - testbed-node-0: - address: 192.168.16.10 - user: dragon - testbed-node-1: - address: 192.168.16.11 - user: dragon - testbed-node-2: - address: 192.168.16.12 - user: dragon -``` - -The `ssh` section requires specification of the `private_key` and `hosts`. The `hosts` section specifies the hostnames or aliases (e.g. keys like `testbed-node-0`), their ip-addresses (e.g. if rookify connects to the target systems per VPN add ips starting with `192.186...`) and user for login. If you are using the OSISM testbed, make sure that the private key does not contain any `EOF` or other strings, i.e. make sure the keys are 'clean' to avoid connection errors. - -#### Kubernetes - -```yaml title="config.example.yaml" - -kubernetes: - config: ./k8s/config -``` - -The `kubernetes` section specifies the kubernetes configuration (e.g. if you use kubectl it is located in `~/.kube/config`) for rookifies kubernetes library. Rookify needs to connect to the kubernetes cluster on the target systems in order to use Rook. - -```yaml title="config.example.yaml" -rook: - cluster: - name: osism-ceph - namespace: rook-ceph - ceph: - image: quay.io/ceph/ceph:v18.2.1 -``` - -The `rook` sections requires some information about the Rook installation on the target system. Concerning the `cluster` Rookify needs to know the cluster-name and cluster-namespace. Rookify also needs to know the ceph version used by Rookify, i.e. the image version of the ceph container. - -_Note_: Rookify does not install Rook for you. You need to provide a running Rook, i.e. a Rook Operator, on you target system. - -_Note_: For OSISM specific migrations, Rookify needs to have some additional information, i.e. the respective labels for the rook resources: - -```yaml title="config.example.osism.yaml" -rook: - cluster: - name: osism-ceph - namespace: rook-ceph - mds_placement_label: node-role.osism.tech/rook-mds - mgr_placement_label: node-role.osism.tech/rook-mgr - mon_placement_label: node-role.osism.tech/rook-mon - osd_placement_label: node-role.osism.tech/rook-osd - rgw_placement_label: node-role.osism.tech/rook-rgw - ceph: - image: quay.io/ceph/ceph:v18.2.1 -``` - - -#### Migration_modules - -```yaml title="config.example.yaml" -migration_modules: -- analyze_ceph -- create_rook_cluster -- migrate_mons -- migrate_osds -- migrate_osd_pools -- migrate_mds -- migrate_mds_pools -- migrate_mgrs -- migrate_rgws -- migrate_rgw_pools -``` - -Rookify is designed to use a modular structure. It has contains various modules to migrate parts of Ceph-Ansible to Rook. The `migration_modules` section specifies which modules need to be run for the migration. Rookify contains more modules, take a look at the [`src/rookify/module`](https://github.com/SovereignCloudStack/rookify/tree/main/src/rookify/modules) directory to see the ones that are currently implemented. - -_NOTE_: Many modules are dependent of each other. This means that some models will implicitly run other modules. For example: the `analyze_ceph` module specified above, will be run by all the modules. This means, that one does not need to specify it. It was added here only for reasons of clearity. diff --git a/docs/guides/deploy-guide/rookify.md b/docs/guides/deploy-guide/rookify.md deleted file mode 100644 index 6884923..0000000 --- a/docs/guides/deploy-guide/rookify.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -sidebar_label: Deploy Rookify: Migrate to Rook from Ceph Ansible (technical preview) -sidebar_position: 51 ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -# Deploy Rookify: Migrate to Rook from Ceph Ansible (technical preview) - -:::warning - -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 beforehand, such as the [OSISM testbed](https://github.com/osism/testbed). Additionally, ensure that all precautionary backups are taken, and any other necessary safety measures are in place. - -::: - -Rookify is now available in the SCS Reference Implementation (OSISM) and can be deployed as shown in the [paragraph below](#using-the-scs-reference-implementation-osism). - -The [Rookify GitHub repository](https://github.com/SovereignCloudStack/rookify) includes a README.md that provides a condensed summary of the information covered here. - -## Using the SCS Reference Implementation (OSISM) - -:::info - -Rookify will be available in OSISM and will be deployable usin osism-commands based on ansible configurations. - -::: - -But is is not available yet ;) - -## Manual Installation - -### Download or Clone the Repository - -Clone or download Rookify from the [repository](https://github.com/SovereignCloudStack/rookify). - -:::tip - -Checkout the included options of the added `Makefile` by simply typing `make`. - -::: - -## Install and Run Locally - -1. Navigate to the tool directory: - -```bash -cd rookify -``` - -2. To install Rookify locally, pythons virtualenv will be used (Note: This will install pre-commit in your local user context): - -``` -make setup -``` - -This command also checks if you have the required python library for `radoslib` installed. Make sure to have it installed on your linux distribution. - -:::tip - -Before running rookify, first check all options by using `rookify --help` - -::: - -To run rookify you can either run it directly from within pythons virtualenv or with help of the make file: - -```bash -# directly -./.venv/bin/rookify --help -# using make -make run-local-rookify -``` - -## Install and Run from within a Container - -1. Navigate to the tool directory: - -2. To install Rookify into a container, podman or docker can be used (Note: in both cases pythons library for `radoslib` needs to be installed locally): - -``` -make check-radoslib -make up -``` - -This command uses `docker compose`, so make sure you have that installed as well. - -To run rookify you can either enter the container and run rookify from there or use `make run-rookify`. - -:::note - -Before running rookify, it can be usefull to check all options by using `rookify --help` - -::: diff --git a/docs/guides/operations-guide/rookify.md b/docs/guides/operations-guide/rookify.md deleted file mode 100644 index cc05c48..0000000 --- a/docs/guides/operations-guide/rookify.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -sidebar_label: Rookify Operation: Migrate to Rook from Ceph Ansible (technical preview) ---- - -# Use Rookify: Migrate to Rook from Ceph Ansible (technical preview) - -:::warning - -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 beforehand, such as the [OSISM testbed](https://github.com/osism/testbed). Additionally, ensure that all precautionary backups are taken, and any other necessary safety measures are in place. - -::: - -The [Rookify GitHub repository](https://github.com/SovereignCloudStack/rookify) includes a README.md that provides a condensed summary of the information covered here. - -## Consider using a pickle file - -In order to have a trackable state of process you can add a pickle file. Specify this option in the `config.yaml`: - -```yaml title="config.example.yaml" -general: - machine_pickle_file: data.pickle -``` - -Now you will be able to to view the state of progress by running `rookify --show-state`. - -:::warning - Rookify will take data.pickle as a source of truth for its operations. If you want to start a clean migration, be sure to delete the file. -::: - -## Rookify CLI - -### Run - -:::warning - Currenlty rookify executes per default -::: - -Currenlty rookify executes per default. This means: if you run rookify like so `.venv/bin/rookify`, it will start the migration as configured in `config.yaml`. - -### --dry-run - -:::tip - Run preflight-mode to check if Rookify can connect to your target systems -::: - -Rookify has a `preflight-mode` to check if basic commands and the connection to the target systems are working. -You can always run `--dry-run` mode, without any danger that migration processes will be executed. - -### --help - -Run `--help` to see the various options the CLI provides. - -### --show - -Run `--show` if you used a pickel-file (see the configuration-guide concerning the general section). This will show the status of your migration process. - -## Debugging and Testing - -If you suspect that something is not working in Rookify itself, you can start setting logging to `DEBUG`. - -If you suspect that something is not working in Rookify itself, you could start by running the tests. For this you need to have access to rookifies code. - -### Set logging to debug level - -Edit the `config.yaml` and set level to "DEBUG": - -```yaml title="config.example.yaml" -logging: - level: DEBUG - format: - time: "%Y-%m-%d %H:%M.%S" # other example: "iso" - renderer: console # or: json -``` - -You can also set the other formatting options, as indicated by the comments, for further options take a look a the documentation of [structlog](https://www.structlog.org/en/stable/standard-library.html). - -### Run tests - -Make sure you can reach Rookifies code on you system. Then you can either: - -1. run `make run-tests-locally` from the working directory of the rookify repository. If you prefer to use a containerized setup, use `make run-tests`. -2. run `.venv/bin/python -m pytest` from the virtual environment of you installation From 8f6910df0006883144d030a6c8916441bcb4c658 Mon Sep 17 00:00:00 2001 From: Boekhorst Date: Mon, 7 Oct 2024 11:33:36 +0200 Subject: [PATCH 16/16] fix: spelling Signed-off-by: Boekhorst --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5820260..99656ec 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Rookify is designed to facilitate a smooth and efficient transition for existing - A functioning Ceph cluster deployed via traditional methods. - __TODO:__ List supported methods - Access to a Kubernetes cluster with sufficient resources to host the migrated Ceph cluster. - - Kubernetes nodes should be rolled out at least on the OSD nodes + - Kubernetes nodes should be rolled out at least on the monitor nodes - Rook operator version 1.13 or higher installed in the Kubernetes cluster. - _local development enivornment_ requires radoslib version 2.0.0 installed @@ -70,7 +70,7 @@ _Provide needed configuration files as written in the config.yml._ At least requ - ./ceph/ceph.conf (typically found in `/etc/ceph/` on a testbednode) - ./ceph/ceph.admin.keyring (typically found in `/etc/ceph/` on a testbednode) - kubernetes config of user (e.g. found in `~/.kube/config`) -- ssh key of the server (for the testbed they are typically found in `./terraform/.id.rsa` folder of the testbed-repository) +- ssh key of the server (found at `./terraform/.id.rsa` in the `testbed` directory) Note: - 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).