Ceph CSI Module - Ceph File System (shturval-ceph-cephfs)
About the service
| Parameter | Description |
|---|---|
| GUI name | Ceph CSI Module - Ceph File System |
| System name (identifier) | shturval-ceph-cephfs |
| Cluster Assignment | Dynamic provisioning of Ceph File System (CephFS) volumes; connecting file shared volumes from a Ceph cluster. |
| Critical | No |
| Public repository | Ceph CSI |
| Dependencies | shturval-networking |
| Namespace | ceph-fs |
Purpose
shturval-ceph-cephfs is a Ceph CSI module for Ceph File System. Allows you to mount CephFS volumes as PersistentVolume upon request via StorageClass. Suitable for Ceph-based shared storage.
Where to configure
Services and repositories → Installed services → shturval-ceph-cephfs → Manage.
Setting up storage classes: StorageClasses. Ceph parameters (clusterID, monitors, secrets with keys) are set in customvalues. The required Ceph user rights (capabilities) for CephFS are described in the Ceph CSI documentation.
Installation and configuration
To work, shturval-networking must be running in the cluster. During installation, it is recommended to create a separate namespace for the chart.
If the Ceph CSI module was installed when creating the cluster, manual configuration is usually not required. To enable it in an already created cluster, use Services and Repositories → Installed Services or install the shturval-ceph-cephfs chart from Available Charts.
If you need to redefine chart parameters, apply the changes via ShturvalServicePatch.
In Service Specifications specify customvalues:
Customvalues example (CephFS)
csiConfig:
- clusterID: <your value>
monitors:
- <your value>
secret:
create: true
name: <your value>
adminID: <your value>
adminKey: <your value>
cephconf: |
<your Ceph cluster configuration>
# Workaround for http://tracker.ceph.com/issues/23446
fuse_set_user_groups = false
# Increases the size of the ceph-fuse write buffer.
fuse_big_writes = true
storageClass:
create: true
name: <your value>
clusterID: <your value>
fsName: <your value>
volumeNamePrefix: <your value>
provisionerSecret: <yourmeaning>
controllerExpandSecret: <your value>
nodeStageSecret: <your value>
reclaimPolicy: <your value>
allowVolumeExpansion: true
| Parameter | Description | Example |
|---|---|---|
csiConfig[].clusterID | Unique Ceph cluster identifier | my-cluster-id |
csiConfig[].monitors | List of IP addresses of Ceph monitors | 192.168.1.1 |
secret.name | Name of the Secret being created | ceph-secret |
secret.adminID | Ceph service account ID | client.admin |
secret.adminKey | Ceph Service Account Key | sdfdff |
cephconf | Ceph configuration in text format | [global] auth cluster required = cephx |
storageClass.name | Name of the created StorageClass | csi-cephfs-sc |
storageClass.clusterID | Ceph Cluster ID | cluster-id |
storageClass.fsName | CephFS file system name | myfs |
storageClass.volumeNamePrefix | Prefix for volume names | shturval- |
storageClass.provisionerSecret | Secret with Ceph credentials for provisioning | cephfs-secret |
storageClass.controllerExpandSecret | Secret for expanding volumes | ceph-expand-secret |
storageClass.nodeStageSecret | Secret for mounting a volume on a host | csi-cephfs-secret |
storageClass.reclaimPolicy | Volume deletion policy (Retain, Delete, Recycle) | Delete |
Service account access rights
Minimum rights for Ceph user (client.kubecephfs):
mon 'allow r'
mgr 'allow rw'
mds 'allow rws'
osd 'allow rw pool=cephfs_data, allow rw pool=cephfs_metadata'
Configuration notes
The cephconf block in customvalues specifies the text configuration of the Ceph client (sections [global] and, if necessary, parameters for ceph-fuse / mount). For typical additions (FUSE buffers, fuse_big_writes, etc.) see Ceph CSI documentation and example values for your driver version; When migrating from old documentation, check that the keys are up to date for the selected mount mode (FUSE vs kernel).
If you need to connect several CephFS instances in one cluster:
- Install each instance in a separate namespace.
- Specify a unique value for the
driverNameparameter for each instance. - Set the
nodePlugin.httpMetrics.ContainerPortparameter to a unique port for each instance.
How to deploy this service - How to deploy a new service.