Skip to content

Latest commit

 

History

History
253 lines (227 loc) · 21.4 KB

File metadata and controls

253 lines (227 loc) · 21.4 KB
title Ceph-CSI Driver Helm Chart

Creates ceph-csi-operator resources to configure a ceph-csi drivers using the Helm package manager. This chart is a simple packaging of templates that will optionally create ceph-csi-operator resources such as:

  • Driver CRs (RBD,cephFS,NFS)
  • CephConnection that contains the ceph details
  • ClientProfile for the RBD/CephFS/NFS clusterID and corresponding configurations
  • ClientProfileMapping for disaster recovery

Prerequisites

  • Kubernetes 1.32+
  • Helm 3.x

See the Helm support matrix for more details.

Installing

The Ceph-CSI Drivers helm chart will install the basic components necessary to install ceph-csi on Kubernetes cluster.

  1. Install the Helm chart

The helm install command deploys ceph-csi-drivers on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.

ceph-csi-drivers currently publishes artifacts of the ceph-csi drivers to tagged versions.

Released version

helm repo add ceph-csi-operator https://ceph.github.io/ceph-csi-operator-charts
helm install ceph-csi-drivers --create-namespace --namespace ceph-csi-driver ceph-csi-operator/ceph-csi-drivers

For example settings, see the next section or values.yaml

Configuration

The following table lists the configurable parameters of the ceph-csi-drivers chart and their default values.

Parameter Description Default
cephConnections[0].crushLocationLabels Labels to be used for CRUSH location selection (default: {}) {}
cephConnections[0].monitors Ceph monitors (key-value pairs, typically IP addresses of the Ceph monitors) (default: {}) {}
cephConnections[0].name Name for the Ceph connection (default: "") ""
cephConnections[0].rbdMirrorDaemonCount Number of RBD mirror daemons (default: 1) 1
clientProfiles[0].cephConnection.name Reference to the Ceph connection for this profile (default: "") ""
clientProfiles[0].cephFs.fuseMountOptions Mount options for CephFS with FUSE (default: {}) {}
clientProfiles[0].cephFs.kernelMountOptions Mount options for CephFS with the kernel (default: {}) {}
clientProfiles[0].cephFs.subVolumeGroup Sub-volume group for the CephFS client (default: "") ""
clientProfiles[0].name Name of the client profile (default: "") ""
clientProfiles[0].nvmeof.radosNamespace Namespace for RADOS block devices (default: "") ""
clientProfiles[0].rbd.radosNamespace Namespace for RADOS block devices (default: "") ""
drivers.cephfs.attachRequired Flag indicating whether attachment is required (default: true) true
drivers.cephfs.cephFsClientType CephFS client type (options: autodetect, kernel) (default: "kernel") "kernel"
drivers.cephfs.clusterName Cluster name identifier (default: "") ""
drivers.cephfs.controllerPlugin.deploymentStrategy Deployment strategy for the controller plugin (default: {}) {}
drivers.cephfs.controllerPlugin.hostNetwork Flag to use host network for the controller plugin (default: false) false
drivers.cephfs.controllerPlugin.privileged Flag to indicate if the container should be privileged (default: false) false
drivers.cephfs.controllerPlugin.replicas Number of replicas for the controller plugin (default: 1) 1
drivers.cephfs.controllerPlugin.resources Resource requirements for controller plugin containers (default: {}) {}
drivers.cephfs.controllerPlugin.tolerations List of tolerations for the controller plugin (default: []) []
drivers.cephfs.deployCsiAddons Flag to deploy CSI Addons (default: false) false
drivers.cephfs.enabled Enable the CephFS driver (default: true) true
drivers.cephfs.encryption.configMapRef.name Name of the ConfigMap for encryption settings (default: "") ""
drivers.cephfs.fsGroupPolicy File system group policy (e.g., "None", "ReadWriteOnceWithFSType") (default: "None") "None"
drivers.cephfs.fuseMountOptions FUSE mount options (default: {}) {}
drivers.cephfs.generateOMapInfo Flag to generate OMap info (default: false) false
drivers.cephfs.grpcTimeout gRPC timeout in seconds (default: 30) 30
drivers.cephfs.imageSet.name ConfigMap reference to the image set for the driver (default: "") ""
drivers.cephfs.kernelMountOptions Kernel mount options (default: {}) {}
drivers.cephfs.log.rotation.logHostPath Default log directory path (default: "") ""
drivers.cephfs.log.rotation.maxFiles Maximum number of log files to keep (default: 7) 7
drivers.cephfs.log.rotation.maxLogSize Maximum size of each log file (default: "10Gi") "10Gi"
drivers.cephfs.log.rotation.periodicity Periodicity for log rotation (options: hourly, daily, weekly, monthly) (default: "daily") "daily"
drivers.cephfs.log.verbosity Log verbosity level (0-5) (default: 0) 0
drivers.cephfs.name CSI driver name for CephFS (default: "cephfs.csi.ceph.com") "cephfs.csi.ceph.com"
drivers.cephfs.nodePlugin.affinity Affinity settings for the pod (default: {}) {}
drivers.cephfs.nodePlugin.annotations Custom annotations for the pod (default: {}) {}
drivers.cephfs.nodePlugin.imagePullPolicy Image pull policy (default: "IfNotPresent") "IfNotPresent"
drivers.cephfs.nodePlugin.labels Custom labels for the pod (default: {}) {}
drivers.cephfs.nodePlugin.priorityClassName Pod's priority class name (default: "") ""
drivers.cephfs.nodePlugin.tolerations List of tolerations for the pod (default: []) []
drivers.cephfs.nodePlugin.volumes List of volumes attached to the pod (default: []) []
drivers.cephfs.snapshotPolicy Snapshot policy (options: none, volumeGroupSnapshot, volumeSnapshot) (default: "volumeSnapshot") "volumeSnapshot"
drivers.nfs.attachRequired Flag indicating whether attachment is required (default: true) true
drivers.nfs.cephFsClientType CephFS client type (options: autodetect, kernel) (default: "kernel") "kernel"
drivers.nfs.clusterName Cluster name identifier (default: "") ""
drivers.nfs.controllerPlugin.deploymentStrategy Deployment strategy for the controller plugin (default: {}) {}
drivers.nfs.controllerPlugin.hostNetwork Flag to use host network for the controller plugin (default: false) false
drivers.nfs.controllerPlugin.privileged Flag to indicate if the container should be privileged (default: false) false
drivers.nfs.controllerPlugin.replicas Number of replicas for the controller plugin (default: 1) 1
drivers.nfs.controllerPlugin.resources Resource requirements for controller plugin containers (default: {}) {}
drivers.nfs.controllerPlugin.tolerations List of tolerations for the controller plugin (default: []) []
drivers.nfs.deployCsiAddons Flag to deploy CSI Addons (default: false) false
drivers.nfs.enabled Enable the NFS driver (default: true) true
drivers.nfs.encryption.configMapRef.name Name of the ConfigMap for encryption settings (default: "") ""
drivers.nfs.fsGroupPolicy File system group policy (e.g., "None", "ReadWriteOnceWithFSType") (default: "None") "None"
drivers.nfs.fuseMountOptions FUSE mount options (default: {}) {}
drivers.nfs.generateOMapInfo Flag to generate OMap info (default: false) false
drivers.nfs.grpcTimeout gRPC timeout in seconds (default: 30) 30
drivers.nfs.imageSet.name ConfigMap reference to the image set for the driver (default: "") ""
drivers.nfs.kernelMountOptions Kernel mount options (default: {}) {}
drivers.nfs.log.rotation.logHostPath Default log directory path (default: "") ""
drivers.nfs.log.rotation.maxFiles Maximum number of log files to keep (default: 7) 7
drivers.nfs.log.rotation.maxLogSize Maximum size of each log file (default: "10Gi") "10Gi"
drivers.nfs.log.rotation.periodicity Periodicity for log rotation (options: hourly, daily, weekly, monthly) (default: "daily") "daily"
drivers.nfs.log.verbosity Log verbosity level (0-5) (default: 0) 0
drivers.nfs.name CSI driver name for NFS (default: "nfs.csi.ceph.com") "nfs.csi.ceph.com"
drivers.nfs.nodePlugin.affinity Affinity settings for the pod (default: {}) {}
drivers.nfs.nodePlugin.annotations Custom annotations for the pod (default: {}) {}
drivers.nfs.nodePlugin.imagePullPolicy Image pull policy (default: "IfNotPresent") "IfNotPresent"
drivers.nfs.nodePlugin.labels Custom labels for the pod (default: {}) {}
drivers.nfs.nodePlugin.priorityClassName Pod's priority class name (default: "") ""
drivers.nfs.nodePlugin.serviceAccountName Service account name for the pod (default: "") ""
drivers.nfs.nodePlugin.tolerations List of tolerations for the pod (default: []) []
drivers.nfs.nodePlugin.volumes List of volumes attached to the pod (default: []) []
drivers.nfs.snapshotPolicy Snapshot policy (options: none, volumeGroupSnapshot, volumeSnapshot) (default: "volumeSnapshot") "volumeSnapshot"
drivers.nvmeof.attachRequired Flag indicating whether attachment is required (default: true) true
drivers.nvmeof.cephFsClientType CephFS client type (options: autodetect, kernel) (default: "kernel") "kernel"
drivers.nvmeof.clusterName Cluster name identifier (default: "") ""
drivers.nvmeof.controllerPlugin.deploymentStrategy Deployment strategy for the controller plugin (default: {}) {}
drivers.nvmeof.controllerPlugin.hostNetwork Flag to use host network for the controller plugin (default: false) false
drivers.nvmeof.controllerPlugin.privileged Flag to indicate if the container should be privileged (default: false) false
drivers.nvmeof.controllerPlugin.replicas Number of replicas for the controller plugin (default: 1) 1
drivers.nvmeof.controllerPlugin.resources Resource requirements for controller plugin containers (default: {}) {}
drivers.nvmeof.controllerPlugin.tolerations List of tolerations for the controller plugin (default: []) []
drivers.nvmeof.deployCsiAddons Flag to deploy CSI Addons (default: false) false
drivers.nvmeof.enabled Enable the NVMe-oF driver (default: true) true
drivers.nvmeof.encryption.configMapRef.name Name of the ConfigMap for encryption settings (default: "") ""
drivers.nvmeof.fsGroupPolicy File system group policy (e.g., "None", "ReadWriteOnceWithFSType") (default: "File") "File"
drivers.nvmeof.fuseMountOptions FUSE mount options (default: {}) {}
drivers.nvmeof.generateOMapInfo Flag to generate OMap info (default: false) false
drivers.nvmeof.grpcTimeout gRPC timeout in seconds (default: 30) 30
drivers.nvmeof.imageSet.name ConfigMap reference to the image set for the driver (default: "") ""
drivers.nvmeof.kernelMountOptions Kernel mount options (default: {}) {}
drivers.nvmeof.log.rotation.logHostPath Default log directory path (default: "") ""
drivers.nvmeof.log.rotation.maxFiles Maximum number of log files to keep (default: 7) 7
drivers.nvmeof.log.rotation.maxLogSize Maximum size of each log file (default: "10Gi") "10Gi"
drivers.nvmeof.log.rotation.periodicity Periodicity for log rotation (options: hourly, daily, weekly, monthly) (default: "daily") "daily"
drivers.nvmeof.log.verbosity Log verbosity level (0-5) (default: 0) 0
drivers.nvmeof.name CSI driver name for NVMe-oF (default: "nvmeof.csi.ceph.com") "nvmeof.csi.ceph.com"
drivers.nvmeof.nodePlugin.affinity Affinity settings for the pod (default: {}) {}
drivers.nvmeof.nodePlugin.annotations Custom annotations for the pod (default: {}) {}
drivers.nvmeof.nodePlugin.imagePullPolicy Image pull policy (default: "IfNotPresent") "IfNotPresent"
drivers.nvmeof.nodePlugin.labels Custom labels for the pod (default: {}) {}
drivers.nvmeof.nodePlugin.priorityClassName Pod's priority class name (default: "") ""
drivers.nvmeof.nodePlugin.tolerations List of tolerations for the pod (default: []) []
drivers.nvmeof.nodePlugin.volumes List of volumes attached to the pod (default: []) []
drivers.nvmeof.snapshotPolicy Snapshot policy (options: none, volumeGroupSnapshot, volumeSnapshot) (default: "none") "none"
drivers.rbd.attachRequired Flag indicating whether attachment is required (default: true) true
drivers.rbd.cephFsClientType CephFS client type (options: autodetect, kernel) (default: "kernel") "kernel"
drivers.rbd.clusterName Cluster name identifier (default: "") ""
drivers.rbd.controllerPlugin.deploymentStrategy Deployment strategy for the controller plugin (default: {}) {}
drivers.rbd.controllerPlugin.hostNetwork Flag to use host network for the controller plugin (default: false) false
drivers.rbd.controllerPlugin.privileged Flag to indicate if the container should be privileged (default: false) false
drivers.rbd.controllerPlugin.replicas Number of replicas for the controller plugin (default: 1) 1
drivers.rbd.controllerPlugin.resources Resource requirements for controller plugin containers (default: {}) {}
drivers.rbd.controllerPlugin.tolerations List of tolerations for the controller plugin (default: []) []
drivers.rbd.deployCsiAddons Flag to deploy CSI Addons (default: false) false
drivers.rbd.enabled Enable the RBD driver (default: true) true
drivers.rbd.encryption.configMapRef.name Name of the ConfigMap for encryption settings (default: "") ""
drivers.rbd.fsGroupPolicy File system group policy (e.g., "None", "ReadWriteOnceWithFSType") (default: "File") "File"
drivers.rbd.fuseMountOptions FUSE mount options (default: {}) {}
drivers.rbd.generateOMapInfo Flag to generate OMap info (default: false) false
drivers.rbd.grpcTimeout gRPC timeout in seconds (default: 30) 30
drivers.rbd.imageSet.name ConfigMap reference to the image set for the driver (default: "") ""
drivers.rbd.kernelMountOptions Kernel mount options (default: {}) {}
drivers.rbd.log.rotation.logHostPath Default log directory path (default: "") ""
drivers.rbd.log.rotation.maxFiles Maximum number of log files to keep (default: 7) 7
drivers.rbd.log.rotation.maxLogSize Maximum size of each log file (default: "10Gi") "10Gi"
drivers.rbd.log.rotation.periodicity Periodicity for log rotation (options: hourly, daily, weekly, monthly) (default: "daily") "daily"
drivers.rbd.log.verbosity Log verbosity level (0-5) (default: 0) 0
drivers.rbd.name CSI driver name for RBD (default: "rbd.csi.ceph.com") "rbd.csi.ceph.com"
drivers.rbd.nodePlugin.affinity Affinity settings for the pod (default: {}) {}
drivers.rbd.nodePlugin.annotations Custom annotations for the pod (default: {}) {}
drivers.rbd.nodePlugin.imagePullPolicy Image pull policy (default: "IfNotPresent") "IfNotPresent"
drivers.rbd.nodePlugin.labels Custom labels for the pod (default: {}) {}
drivers.rbd.nodePlugin.priorityClassName Pod's priority class name (default: "") ""
drivers.rbd.nodePlugin.tolerations List of tolerations for the pod (default: []) []
drivers.rbd.nodePlugin.volumes List of volumes attached to the pod (default: []) []
drivers.rbd.snapshotPolicy Snapshot policy (options: none, volumeGroupSnapshot, volumeSnapshot) (default: "none") "none"
imagePullSecrets List of pull secret names that will be added to all serviceaccounts (default: []) []
operatorConfig.create Flag to indicate if the config should be created (default: true) true
operatorConfig.driverSpecDefaults.attachRequired Flag indicating whether attachment is required (default: true) true
operatorConfig.driverSpecDefaults.cephFsClientType CephFS client type (options: autodetect, kernel) (default: "kernel") "kernel"
operatorConfig.driverSpecDefaults.clusterName Cluster name identifier (default: "") ""
operatorConfig.driverSpecDefaults.controllerPlugin.affinity Affinity settings for the pod (default: {}) {}
operatorConfig.driverSpecDefaults.controllerPlugin.deploymentStrategy Deployment strategy for the controller plugin (default: {}) {}
operatorConfig.driverSpecDefaults.controllerPlugin.hostNetwork Flag to use host network for the controller plugin (default: false) false
operatorConfig.driverSpecDefaults.controllerPlugin.imagePullPolicy Image pull policy (default: "IfNotPresent") "IfNotPresent"
operatorConfig.driverSpecDefaults.controllerPlugin.privileged Flag to indicate if the container should be privileged (default: false) false
operatorConfig.driverSpecDefaults.controllerPlugin.replicas Number of replicas for the controller plugin (default: 1) 1
operatorConfig.driverSpecDefaults.controllerPlugin.resources Resource requirements for controller plugin containers (default: {}) {}
operatorConfig.driverSpecDefaults.controllerPlugin.tolerations List of tolerations for the controller plugin (default: []) []
operatorConfig.driverSpecDefaults.deployCsiAddons Flag to deploy CSI Addons (default: false) false
operatorConfig.driverSpecDefaults.encryption.configMapRef.name Name of the ConfigMap for encryption settings (default: "") ""
operatorConfig.driverSpecDefaults.fsGroupPolicy File system group policy (e.g., "None", "ReadWriteOnceWithFSType") (default: "File") "File"
operatorConfig.driverSpecDefaults.fuseMountOptions FUSE mount options (default: {}) {}
operatorConfig.driverSpecDefaults.generateOMapInfo Flag to generate OMap info (default: false) false
operatorConfig.driverSpecDefaults.grpcTimeout gRPC timeout in seconds (default: 30) 30
operatorConfig.driverSpecDefaults.imageSet.name ConfigMap reference to the image set for the driver (default: "") ""
operatorConfig.driverSpecDefaults.kernelMountOptions Kernel mount options (default: {}) {}
operatorConfig.driverSpecDefaults.log.rotation.logHostPath Default log directory path (default: "") ""
operatorConfig.driverSpecDefaults.log.rotation.maxFiles Maximum number of log files to keep (default: 7) 7
operatorConfig.driverSpecDefaults.log.rotation.maxLogSize Maximum size of each log file (default: "10Gi") "10Gi"
operatorConfig.driverSpecDefaults.log.rotation.periodicity Periodicity for log rotation (options: hourly, daily, weekly, monthly) (default: "daily") "daily"
operatorConfig.driverSpecDefaults.log.verbosity Log verbosity level (0-5) (default: 0) 0
operatorConfig.driverSpecDefaults.nodePlugin.affinity Affinity settings for the pod (default: {}) {}
operatorConfig.driverSpecDefaults.nodePlugin.annotations Custom annotations for the pod (default: {}) {}
operatorConfig.driverSpecDefaults.nodePlugin.imagePullPolicy Image pull policy (default: "IfNotPresent") "IfNotPresent"
operatorConfig.driverSpecDefaults.nodePlugin.kubeletDirPath kubelet directory path (default: "/var/lib/kubelet") "/var/lib/kubelet"
operatorConfig.driverSpecDefaults.nodePlugin.labels Custom labels for the pod (default: {}) {}
operatorConfig.driverSpecDefaults.nodePlugin.priorityClassName Pod's priority class name (default: "") ""
operatorConfig.driverSpecDefaults.nodePlugin.tolerations List of tolerations for the pod (default: []) []
operatorConfig.driverSpecDefaults.nodePlugin.updateStrategy Daemonset update strategy (default: {}) {}
operatorConfig.driverSpecDefaults.nodePlugin.volumes List of volumes attached to the pod (default: []) []
operatorConfig.driverSpecDefaults.snapshotPolicy Snapshot policy (options: none, volumeGroupSnapshot, volumeSnapshot) (default: "none") "none"
operatorConfig.name Name of the operator config (default: "ceph-csi-operator-config") "ceph-csi-operator-config"
operatorConfig.namespace Namespace for the operator configuration (default: "") ""

Development Build

To deploy from a local build from your development environment:

  1. Install the helm chart:
cd deploy/charts/ceph-csi-drivers
helm install ceph-csi-drivers --create-namespace --namespace ceph-csi-driver .

Uninstalling the Chart

To see the currently installed ceph-csi-drivers chart:

helm ls --namespace ceph-csi-driver

To uninstall/delete the ceph-csi-drivers deployment:

helm delete --namespace ceph-csi-driver ceph-csi-drivers

The command removes all the Kubernetes components associated with the chart and deletes the release.