Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-34792

Make Cinder CSI Driver Topology feature configurable

XMLWordPrintable

    • ?
    • No
    • 1
    • ShiftStack Sprint 255
    • 1
    • False
    • Hide

      None

      Show
      None
    • Hide
      CSI topology awareness was previously always active. This caused issues in environment where the compute and the storage AZs don't have consistent naming.

      Enable Cinder CSI topology awareness based on the compute and storage AZs and provide a mechanism for disabling topology functionality.
      Show
      CSI topology awareness was previously always active. This caused issues in environment where the compute and the storage AZs don't have consistent naming. Enable Cinder CSI topology awareness based on the compute and storage AZs and provide a mechanism for disabling topology functionality.
    • Bug Fix
    • Done

      This is the 4.14 backport of STOR-1281. Original description below:


      Currently, the Topology Feature is enabled by default by the openstack-cinder-csi-driver-operator. As seen in OCPBUGS-4697, this is problematic in environments where there is a mismatch between Nova and Cinder AZs, such as in DCN environments where there may be multiple nova AZs but only a single cinder AZ. On initial read, the [BlockStorage] ignore-volume-az would appear to offer a way out, but as I noted in OCPBUGS-4697 and upstream, this doesn't actually do what you'd think it does.

      We should allow the user to configure this functionality via an operator-level configurable. We may wish to go one step further and also attempt to auto-detect the correct value by inspecting the available Nova and Cinder AZs. The latter step would require OpenStack API access from the operator, but both services do provide non-admin APIs to retrieve this information.

      We also explored other options:

      • Make the AZ reported by the CSI node configurable by the user/operator, like the Manila CSI driver appears to do via a --nodeaz flag. This would require upstream changes and wouldn't actually address the scenario where Nova and Cinder AZs are distinct sets: an AZ that was valid for Cinder would allow us to create the volume in Cinder, but it would still be applied to the resulting PV as a nodeAffinity field unless you also set ignore-volume-az. This would conflict with the Nova-based AZs assigned to Nodes and prevent scheduling of the PV to any Node.
      • Change the meaning of [BlockStorage] ignore-volume-az to also avoid sending AZ information to Cinder, causing Cinder to fallback to [DEFAULT] default_availability_zone. This would also require upstream changes and would effectively give users two ways to disable the Topology feature. This would increase confusion and result in a worse UX.

              sfinucan@redhat.com Stephen Finucane
              sfinucan@redhat.com Stephen Finucane
              Itshak Brown Itshak Brown
              Votes:
              2 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated:
                Resolved: