---
title: Charmhub | Deploy Ceph CSI using Charmhub - The Open Operator Collection
description: Deploy the latest version of Ceph CSI on any cloud.
url: https://charmhub.io/ceph-csi/configurations
---

# Ceph CSI

[Canonical Kubernetes](https://charmhub.io/publisher/containers "View all packages from Canonical Kubernetes")

* [Canonical Kubernetes](https://charmhub.io/publisher/containers "View all packages from Canonical Kubernetes")

Platform:

24.04

22.04

20.04

stable 1a1e216

```
juju deploy ceph-csi
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

* [ceph-ext4-storage-class-name-formatter](https://charmhub.io/ceph-csi/configurations#ceph-ext4-storage-class-name-formatter)
* [ceph-ext4-storage-class-parameters](https://charmhub.io/ceph-csi/configurations#ceph-ext4-storage-class-parameters)
* [ceph-rbac-name-formatter](https://charmhub.io/ceph-csi/configurations#ceph-rbac-name-formatter)
* [ceph-rbd-enable](https://charmhub.io/ceph-csi/configurations#ceph-rbd-enable)
* [ceph-rbd-tolerations](https://charmhub.io/ceph-csi/configurations#ceph-rbd-tolerations)
* [ceph-xfs-storage-class-name-formatter](https://charmhub.io/ceph-csi/configurations#ceph-xfs-storage-class-name-formatter)
* [ceph-xfs-storage-class-parameters](https://charmhub.io/ceph-csi/configurations#ceph-xfs-storage-class-parameters)
* [cephfs-enable](https://charmhub.io/ceph-csi/configurations#cephfs-enable)
* [cephfs-mounter](https://charmhub.io/ceph-csi/configurations#cephfs-mounter)
* [cephfs-storage-class-name-formatter](https://charmhub.io/ceph-csi/configurations#cephfs-storage-class-name-formatter)
* [cephfs-storage-class-parameters](https://charmhub.io/ceph-csi/configurations#cephfs-storage-class-parameters)
* [cephfs-tolerations](https://charmhub.io/ceph-csi/configurations#cephfs-tolerations)
* [create-namespace](https://charmhub.io/ceph-csi/configurations#create-namespace)
* [csidriver-name-formatter](https://charmhub.io/ceph-csi/configurations#csidriver-name-formatter)
* [default-storage](https://charmhub.io/ceph-csi/configurations#default-storage)
* [enable-host-networking](https://charmhub.io/ceph-csi/configurations#enable-host-networking)
* [image-registry](https://charmhub.io/ceph-csi/configurations#image-registry)
* [metrics-port-cephfsplugin](https://charmhub.io/ceph-csi/configurations#metrics-port-cephfsplugin)
* [metrics-port-cephfsplugin-provisioner](https://charmhub.io/ceph-csi/configurations#metrics-port-cephfsplugin-provisioner)
* [metrics-port-rbdplugin](https://charmhub.io/ceph-csi/configurations#metrics-port-rbdplugin)
* [metrics-port-rbdplugin-provisioner](https://charmhub.io/ceph-csi/configurations#metrics-port-rbdplugin-provisioner)
* [namespace](https://charmhub.io/ceph-csi/configurations#namespace)
* [provisioner-replicas](https://charmhub.io/ceph-csi/configurations#provisioner-replicas)
* [release](https://charmhub.io/ceph-csi/configurations#release)

[Learn about configurations >](https://juju.is/docs/juju/configuration#heading--application-configuration)

* ceph-ext4-storage-class-name-formatter | string

  Default: ceph-ext4

  Formatter for the ceph ext4 storage class name

  The formatter is a string that can contain the following placeholders:

  + {app} - the name of the Juju application
  + {namespace} - the charm configured namespace

  Example:
  juju config ceph-csi ceph-ext4-storage-class-name-formatter="ceph-ext4-{app}"

  The default is to use the storage class name
* ceph-ext4-storage-class-parameters | string

  Default: imageFeatures=layering

  Parameters to be used when creating the the ceph-ext4 storage class.
  Changes are only applied to the storage class if it does not exist.

  Declare additional/replacement parameters in key=value format, separated by spaces.
  Declare removed parameters in the key- format, separated by spaces.

  Optional parameters can be found in the ceph-csi documentation:
  https://github.com/ceph/ceph-csi/blob/devel/examples/rbd/storageclass.yaml
* ceph-rbac-name-formatter | string

  Default: {name}

  Formatter for colliding kubernetes rbac resources

  The formatter is used to create a unique name for the resource
  when the name collides with an existing resource.
  This is useful when deploying multiple ceph-csi charms.

  This is a list of non-namespaced resources affected by this formatter:

  + ClusterRole/cephfs-csi-nodeplugin
  + ClusterRoleBinding/cephfs-csi-nodeplugin
  + ClusterRole/cephfs-external-provisioner-runner
  + ClusterRoleBinding/cephfs-external-provisioner-runner
  + ClusterRole/rbd-csi-nodeplugin
  + ClusterRoleBinding/rbd-csi-nodeplugin
  + ClusterRole/rbd-external-provisioner-runner
  + ClusterRoleBinding/rbd-csi-provisioner-role

  The formatter is a string that can contain the following placeholders:

  + {app} - the name of the Juju application
  + {name} - the name of the kubernetes resource
  + {namespace} - the charm configured namespace

  Example:
  juju config ceph-csi ceph-rbac-name-formatter="{name}-{app}"

  The default is to use the {name} of the resource
* ceph-rbd-enable | boolean

  Default: True

  Whether or not ceph-rbd manifests should be installed.
  This controls both storage classes xfs and ext4
* ceph-rbd-tolerations | string

  Tolerations to be used when creating the rbd pods for Daemonsets and Deployments.

  Declare tolerations in key=value,operator,effect format, separating each by spaces.

  Optional tolerations can be found in the kubernetes documentation:
  https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
* ceph-xfs-storage-class-name-formatter | string

  Default: ceph-xfs

  Formatter for the ceph xfs storage class name

  The formatter is a string that can contain the following placeholders:

  + {app} - the name of the Juju application
  + {namespace} - the charm configured namespace

  Example:
  juju config ceph-csi ceph-xfs-storage-class-name-formatter="ceph-xfs-{app}"

  The default is to use the storage class name
* ceph-xfs-storage-class-parameters | string

  Default: imageFeatures=layering

  Parameters to be used when creating the ceph-xfs storage class.
  Changes are only applied to the storage class if it does not exist.

  Declare additional/replacement parameters in key=value format, separated by spaces.
  Declare removed parameters in the key- format, separated by spaces.

  Optional parameters can be found in the ceph-csi documentation:
  https://github.com/ceph/ceph-csi/blob/devel/examples/rbd/storageclass.yaml
* cephfs-enable | boolean

  Whether or not cephfs manifests should be installed

  Only enable if ceph-fs is deployed and related to ceph-mon
* cephfs-mounter | string

  The driver can use either ceph-fuse (fuse) or ceph kernelclient (kernel).
  If omitted, default volume mounter will be used - this is
  determined by probing for ceph-fuse and mount.ceph
* cephfs-storage-class-name-formatter | string

  Default: cephfs

  Formatter for the cephfs storage class name

  The formatter is a string that can contain the following placeholders:

  + {app} - the name of the Juju application
  + {namespace} - the charm configured namespace
  + {name} - the name of the filesystem
  + {pool} - the name of the data-pool
  + {pool-id} - the id of the data-pool

  Example:
  juju config ceph-csi cephfs-storage-class-name-formatter="cephfs-{namespace}-{pool}"

  The default is to use the storage class name
* cephfs-storage-class-parameters | string

  Parameters to be used when creating the cephfs storage classes.
  Changes are only applied to the storage classes if they do not exist.

  Declare additional/replacement parameters in key=value format, separated by spaces.
  Declare removed parameters in the key- format, separated by spaces.

  Optional parameters can be found in the ceph-csi documentation:
  https://github.com/ceph/ceph-csi/blob/devel/examples/rbd/storageclass.yaml
* cephfs-tolerations | string

  Default: $csi-cephfsplugin-legacy$

  Tolerations to be used when creating the cephfs pods for Daemonsets and Deployments.

  Declare tolerations in key=value,operator,effect format, separating each by spaces.

  Optional tolerations can be found in the kubernetes documentation:
  https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/

  Note: The default value "$csi-cephfsplugin-legacy$" is a special token
  which applies a "=,Exists" toleration only to pods associated with
  csi-cephfsplugin.
* create-namespace | boolean

  Whether or not the charm should create the namespace specified in the
  `namespace` configuration option.

  If set to true, the charm will create the namespace if it does not exist.
  If set to false, the charm will not create the namespace and will expect
  it to be created by the user.

  NOTE: Can only be specified on deployment since some
  attributes of kubernetes resources are non-modifiable.
* csidriver-name-formatter | string

  Default: {name}

  Formatter for the 2 CSIDrivers managed by this charm:

  + rbd.csi.ceph.com
  + cephfs.csi.ceph.com

  The formatter is a string that can contain the following placeholders:

  + {name} - original name from the manifest
  + {app} - the name of the Juju application
  + {namespace} - the charm configured namespace

  Example:
  juju config ceph-csi csidriver-name-formatter="{app}.{name}"

  The default is to use the built-in storage classname

  NOTE: Can only be specified on deployment since some
  attributes of kubernetes resources cannot be modified
  once installed.
* default-storage | string

  Default: ceph-xfs

  Default storage class to use.

  Valid input is any freely-formed string value.
  Set empty so this charm does not annotate StorageClasses.

  If a charm-managed StorageClass matches this default-storage value,
  that StorageClass is annotated as the default StorageClass in the
  Kubernetes cluster.

  Format replacements for StorageClass names may also be included

  + {app} - the name of the Juju application
  + {namespace} - the charm configured namespace
  + {name} - the name of a cephfs filesystem if available
  + {pool} - the name of a cephfs data-pool if available
  + {pool-id} - the id of a cephfs data-pool if available

  Note: a cluster should only annotate one StorageClass as the default.

  If multiple StorageClasses managed by the charm match this value,
  the unit will block with the message:

  + Multiple StorageClasses are marked as default

  If multiple default StorageClasses are discovered in the cluster,
  the unit will warn with the message:

  + Cluster contains multiple default StorageClasses

  If this value matches none of the charm-managed StorageClasses,
  the unit will warn with the message:

  + '<value>' doesn't match any charm managed StorageClasses
* enable-host-networking | boolean

  Whether or not csi-\*plugin-provisioner deployments use host-networking
* image-registry | string

  Default: rocks.canonical.com/cdk

  Image registry for all Ceph CSI container images.

  This value replaces the image registry in image URLs from the release
  manifests. For example, an image URL like
  `quay.io/cephcsi/cephcsi:v3.8.0` becomes
  `rocks.canonical.com/cdk/cephcsi/cephcsi:v3.8.0` if set to
  `rocks.canonical.com/cdk`.

  Example:
  juju config ceph-csi image-registry="rocks.canonical.com/cdk"
* metrics-port-cephfsplugin | int

  Default: -1

  Port for csi-cephfsplugin liveness-prometheus metrics

  If set to -1, the metrics service will not be created
* metrics-port-cephfsplugin-provisioner | int

  Default: -1

  Port for csi-cephfsplugin-provisioner liveness-prometheus metrics

  If set to -1, the metrics service will not be created
* metrics-port-rbdplugin | int

  Default: -1

  Port for csi-rbdplugin liveness-prometheus metrics

  If set to -1, the metrics service will not be created
* metrics-port-rbdplugin-provisioner | int

  Default: -1

  Port for csi-rbdplugin-provisioner liveness-prometheus metrics

  If set to -1, the metrics service will not be created
* namespace | string

  Kubernetes namespace in which to install the rbd and cephfs
  components including deployments, daemonsets, secrets, configmaps.

  if unspecified, "default" is assumed

  NOTE: Can only be specified on deployment since some
  attributes of kubernetes resources are non-modifiable.
  The admin is responsible for creating the namespace.
* provisioner-replicas | int

  Default: 3

  Number of replicas of any csi-\*plugin-provisioner deployment
* release | string

  Default: v3.9.0

  Specify the version of ceph-csi as defined by the `release`
  tags of https://github.com/ceph/ceph-csi

  example)
  juju config ceph-csi release='v3.7.2'

  A list of supported versions is available through the action:
  juju run ceph-csi/leader list-versions

  To reset by to the latest supported by the charm use:
  juju config ceph-csi --reset release

  The current release deployed is available by viewing
  juju status ceph-csi
