Managing Container Storage Interface (CSI) component placements

You can set tolerations to run the Container Storage Interface (CSI) components on the infra nodes with custom taints.

About this task

Each cluster consists of multiple dedicated nodes, such as infra and storage nodes. However, infra nodes with custom taints cannot use Fusion Data Foundation persistent volume claims (PVCs). To use these nodes, set tolerations to run the Container Storage Interface (CSI) plugins (csi-plugins) on the nodes. For more information, see How to label Red Hat OpenShift Storage "nodes" as infra node? in the Red Hat Knowledgebase.

Procedure

  1. Open the CSI driver custom resource to add the toleration for the custom taint.

    Command example:
    oc edit drivers.csi.ceph.io openshift-storage.rbd.csi.ceph.com
  2. Add the required tolerations.

    Example:
    apiVersion: csi.ceph.io/v1
    kind: Driver
    metadata:
      name: openshift-storage.rbd.csi.ceph.com
    spec:
      --------
      nodePlugin:
        tolerations:
        - key: node-role.kubernetes.io/master operator
          operator: Exists
          effect: NoSchedule
        - key: node-role.kubernetes.io/storage operator
          operator: Exists
          effect: NoSchedule
  3. Verify that toleration are added successfully.

    Command example:
    oc get drivers.csi.ceph.io openshift-storage.rbd.csi.ceph.com -oyaml | yq -r .spec
    Output example:
    generateOMapInfo: truenodePlugin:
    tolerations:
    effect: NoSchedule
    key: node-role.kubernetes.io/master operator: Exists
    effect: NoSchedule
    key: node.ocs.openshift.io/storage operator: Equal
    value: "true"

What to do next

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