Managing container storage interface (CSI) component placements

Set tolerations to bring up container storage interface (CSI) component on the nodes.

About this task

Each cluster consists of a number of dedicated nodes such as infra and storage nodes. However, an infra node with a custom taint will not be able to use Fusion Data Foundation Persistent Volume Claims (PVCs) on the node. So, if you want to use such nodes, you can set tolerations to bring up csi-plugins on the nodes. For more information, see How to label Red Hat OpenShift Storage "nodes" as infra node? on Red Hat Customer Portal.

Procedure

  1. Edit the configmap to add the toleration for the custom taint.
    Remember to save before exiting the editor.
    oc edit configmap rook-ceph-operator-config -n openshift-storage
  2. Display the configmap to check the added toleration.
    oc get configmap rook-ceph-operator-config -n openshift-storage -o yaml
    Example output of the added toleration for the taint nodetype=infra:NoSchedule :
    apiVersion: v1
    data:
    [...]
      CSI_PLUGIN_TOLERATIONS: |
        - key: nodetypeoperator: Equalvalue: infraeffect: NoSchedule
        - key: node.ocs.openshift.io/storage
          operator: Equal
          value: "true"
          effect: NoSchedule
    [...]
    kind: ConfigMap
    metadata:
    [...]
    Note: Ensure that all non-string values in the Tolerations value field has double quotation marks. For example, the values true which is of type boolean, and 1 which is of type int must be input as "true" and "1".
  3. Restart the rook-ceph-operator if the csi-cephfsplugin-* and csi-rbdplugin-* pods fail to come up on their own on the infra nodes.
    oc delete -n openshift-storage pod <name of the rook_ceph_operator pod>
    For example :
    oc delete -n openshift-storage pod rook-ceph-operator-5446f9b95b-jrn2j
    
    pod "rook-ceph-operator-5446f9b95b-jrn2j" deleted

What to do next

Verify that the csi-cephfsplugin-* and csi-rbdplugin-* pods are running on the infra nodes.