Installing Rook Operator Helm chart

The Rook Ceph Operator Helm chart installs the basic components that are required to create, configure, and manage Rook Ceph clusters on Kubernetes.

Before you install Rook Operator Helm chart, specify the placement configuration and toleration for the cluster so that pods are scheduled on the dedicated Rook nodes. You can specify the placement configuration for the operator and discover pods.

You must install version v1.2.7 of Rook Operator Helm chart. Following is a sample operator-values.yaml with placement configuration and toleration:

image:
  prefix: rook
  repository: rook/ceph
  tag: v1.2.7
  pullPolicy: IfNotPresent

resources:
  limits:
    cpu: 500m
    memory: 256Mi
  requests:
    cpu: 100m
    memory: 256Mi

nodeSelector:
# Constraint rook-ceph-operator Deployment to nodes with label `disktype: ssd`.
# For more info, see https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
#  disktype: ssd
  cephnode: "true"

# Tolerations for the rook-ceph-operator to allow it to run on nodes with particular taints
tolerations: 
  - key: rookceph
    operator: Exists
    effect: NoSchedule

# Delay to use in node.kubernetes.io/unreachable toleration
unreachableNodeTolerationSeconds: 5

# Whether rook watches its current namespace for CRDs or the entire cluster, defaults to false
currentNamespaceOnly: false

# Interval at which to get the ceph status and update the cluster custom resource status
cephStatusCheckInterval: "60s"

mon:
  healthCheckInterval: "45s"
  monOutTimeout: "600s"

## Annotations to be added to pod
annotations: {}

## LogLevel can be set to: TRACE, DEBUG, INFO, NOTICE, WARNING, ERROR or CRITICAL
logLevel: INFO

## If true, create & use RBAC resources
##
rbacEnable: true

## If true, create & use PSP resources
##
pspEnable: true

## Settings for whether to disable the drivers or other daemons if they are not
## needed
csi:
  enableRbdDriver: true
  enableCephfsDriver: true
  enableGrpcMetrics: true
  enableSnapshotter: true
  # Set logging level for csi containers.
  # Supported values from 0 to 5. 0 for general useful logs, 5 for trace level verbosity.
  #logLevel: 0
  # CSI CephFS plugin daemonset update strategy, supported values are OnDelete and RollingUpdate.
  # Default value is RollingUpdate.
  #rbdPluginUpdateStrategy: OnDelete
  # CSI Rbd plugin daemonset update strategy, supported values are OnDelete and RollingUpdate.
  # Default value is RollingUpdate.
  #cephFSPluginUpdateStrategy: OnDelete
  # Allow starting unsupported ceph-csi image
  allowUnsupportedVersion: false

  # Set provisonerTolerations and provisionerNodeAffinity for provisioner pod.
  # The CSI provisioner would be best to start on the same nodes as other ceph daemons.
  provisionerTolerations:
    - key: rookceph
      operator: Exists
      effect: NoSchedule
  provisionerNodeAffinity: cephnode=true
  # Set pluginTolerations and pluginNodeAffinity for plugin daemonset pods.
  # The CSI plugins need to be started on all the nodes where the clients need to mount the storage.
  pluginTolerations:
    - key: rookceph
      operator: Exists
      effect: NoSchedule
  # pluginNodeAffinity: key1=value1,value2; key2=value3
  cephfsGrpcMetricsPort: 9095
  #cephfsLivenessMetricsPort: 9081
  #rbdGrpcMetricsPort: 9090
  # Enable Ceph Kernel clients on kernel < 4.17. If your kernel does not support quotas for CephFS
  # you may want to disable this setting. However, this will cause an issue during upgrades
  # with the FUSE client. See the upgrade guide: https://rook.io/docs/rook/v1.2/ceph-upgrade.html
  forceCephFSKernelClient: true
  #rbdLivenessMetricsPort: 9080
  #kubeletDirPath: /var/lib/kubelet
  #cephcsi:
    #image: quay.io/cephcsi/cephcsi:v2.0.1
  #registrar:
    #image: quay.io/k8scsi/csi-node-driver-registrar:v1.2.0
  #provisioner:
    #image: quay.io/k8scsi/csi-provisioner:v1.4.0
  #snapshotter:
    #image: quay.io/k8scsi/csi-snapshotter:v1.2.2
  #attacher:
    #image: quay.io/k8scsi/csi-attacher:v2.1.0
  #resizer:
    #image: quay.io/k8scsi/csi-resizer:v0.4.0

enableFlexDriver: false
enableDiscoveryDaemon: true

## if true, run rook operator on the host network
# useOperatorHostNetwork: true

## Rook Agent configuration
## toleration: NoSchedule, PreferNoSchedule or NoExecute
## tolerationKey: Set this to the specific key of the taint to tolerate
## tolerations: Array of tolerations in YAML format which will be added to agent deployment
## nodeAffinity: Set to labels of the node to match
## flexVolumeDirPath: The path where the Rook agent discovers the flex volume plugins
## libModulesDirPath: The path where the Rook agent can find kernel modules
agent:
  toleration: NoSchedule
  tolerationKey: rookceph
  tolerations:
    - key: rookceph
      operator: Exists
      effect: NoSchedule
  nodeAffinity: cephnode=true
#   mountSecurityMode: Any
## For information on FlexVolume path, please refer to https://rook.io/docs/rook/master/flexvolume.html
#   flexVolumeDirPath: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/
#   libModulesDirPath: /lib/modules
#   mounts: mount1=/host/path:/container/path,/host/path2:/container/path2

## Rook Discover configuration
## toleration: NoSchedule, PreferNoSchedule or NoExecute
## tolerationKey: Set this to the specific key of the taint to tolerate
## tolerations: Array of tolerations in YAML format which will be added to agent deployment
## nodeAffinity: Set to labels of the node to match
discover:
  toleration: NoSchedule
  tolerationKey: rookceph
  tolerations:
    - key: rookceph
      operator: Exists
      effect: NoSchedule
  nodeAffinity: cephnode=true

# In some situations SELinux relabelling breaks (times out) on large filesystems, and doesn't work with cephfs ReadWriteMany volumes (last relabel wins).
# Disable it here if you have similar issues.
# For more details see https://github.com/rook/rook/issues/2417
enableSelinuxRelabeling: true

# Writing to the hostPath is required for the Ceph mon and osd pods. Given the restricted permissions in OpenShift with SELinux,
# the pod must be running privileged in order to write to the hostPath volume, this must be set to true then.
hostpathRequiresPrivileged: false

# Disable automatic orchestration when new devices are discovered.
disableDeviceHotplug: false

# Blacklist certain disks according to the regex provided.
discoverDaemonUdev:

# imagePullSecrets option allow to pull docker images from private docker registry. Option will be passed to all service accounts.
# imagePullSecrets:
# - name: my-registry-secret

For more information about installing the Rook Ceph Operator Helm chart, see Operator Helm Chart document Opens in a new tab.