With the depreceation of ceph-ansible, the SCS reference implementation now supports Ceph deployment with Rook, a graduated-level cloud-native project.
In OSISM, Rook is can be deployed using the officially recommended Helm Charts. Ansible is used to deploy the Helm charts for both the Rook Operator and the Rook Custom Resoruce Definitions.
Rook deployment has also been integrated into the OSISM testbed. If you have a running testbed, you can login with make login
and view the various OSISM commands related to rook by simply typing osism apply
and grepping for ‘rook’:
dragon@testbed-manager:/opt/configuration/scripts/deploy$ osism apply | grep rook
| rook | rook |
| rook-cleanup | rook |
| rook-crd | rook |
| rook-fetch-keys | rook |
| rook-helm | rook |
| rook-operator | rook |
To install a minimal working rook you can use the helper script located in /opt/configuration/scripts/deploy/100-rook-services.sh
, which automates the installation of k3s and then runs the following commands:
osism apply rook-operator
osism apply rook
osism apply rook-fetch-keys
# the role for the cephclient is informed which type of client should be installed.
echo "cephclient_install_type: rook" >> /opt/configuration/environments/infrastructure/configuration.yml
osism apply cephclient
Note: the cephclient for OSISM is configured specifically for rook. It is a small role that ensures only the Rook client is setup.
Rook can be configured by editing the variables for the Helm chart in the file environments/rook/configuration.yml
. For more information on the various configuration options, see the SCS configration guide.
The OSISM testbed provides the following default configuration at /opt/configuration/environments/rook/config.yml
on the manager node:
---
rook_network_public: "192.168.16.0/20"
rook_storage_devicefilter: "^sd[b-c]"
rook_storage_nodes:
- name: "testbed-node-0"
- name: "testbed-node-1"
- name: "testbed-node-2"
## reduce resources to fit into testbed
rook_resources_cephfilesystem:
limits:
memory: "4Gi"
requests:
cpu: "500m"
memory: "4Gi"
rook_resources_cephobjecstore:
limits:
memory: "2Gi"
requests:
cpu: "500m"
memory: "1Gi"
## set to true to enable monitoring
# rook_monitoring_enabled: true
## set to true to enable cleanup
# rook_cleanup: true