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

ARO HCP - DiskStorageAccountType in the NodePool API Allows an Invalid Value

    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • None
    • None
    • In Progress
    • Bug Fix
    • Hide
      Cause: The DiskStorageAccountType field in the HyperShift NodePool API included UltraSSD_LRS in its kubebuilder validation enum. However, according to Azure documentation, Ultra Disks (UltraSSD_LRS) are not supported for OS Disks and can only be used as data disks.
      Consequence: Users could specify UltraSSD_LRS as the disk storage account type for node pool OS disks, which would lead to Azure API errors at VM provisioning time.
      Fix: Removed UltraSSD_LRS from the AzureDiskStorageAccountType kubebuilder validation enum, removed the associated constant, removed the XValidation rule specific to UltraSSD_LRS size limits, and reduced the maximum sizeGiB from 65,536 to 32,767 GiB since the higher limit was only needed for UltraSSD_LRS.
      Result: The NodePool API no longer accepts UltraSSD_LRS as a valid value for OS disk storage account type. The valid values are now Premium_LRS, Standard_LRS, and StandardSSD_LRS.
      Show
      Cause: The DiskStorageAccountType field in the HyperShift NodePool API included UltraSSD_LRS in its kubebuilder validation enum. However, according to Azure documentation, Ultra Disks (UltraSSD_LRS) are not supported for OS Disks and can only be used as data disks. Consequence: Users could specify UltraSSD_LRS as the disk storage account type for node pool OS disks, which would lead to Azure API errors at VM provisioning time. Fix: Removed UltraSSD_LRS from the AzureDiskStorageAccountType kubebuilder validation enum, removed the associated constant, removed the XValidation rule specific to UltraSSD_LRS size limits, and reduced the maximum sizeGiB from 65,536 to 32,767 GiB since the higher limit was only needed for UltraSSD_LRS. Result: The NodePool API no longer accepts UltraSSD_LRS as a valid value for OS disk storage account type. The valid values are now Premium_LRS, Standard_LRS, and StandardSSD_LRS.
    • None
    • None
    • None
    • None

      This is a clone of issue OCPBUGS-43449. The following is the description of the original issue:

      Description of problem:

      In the Hypershift's NodePool API type, there's an attribute called DiskStorageAccountType.
      https://github.com/openshift/hypershift/blob/main/api/hypershift/v1beta1/nodepool_types.go#L1002
      
      This controls the Azure Disk Storage Account type of the OS Disk of the nodes of the node pool:
      The following values are specified as allowed:
      // +kubebuilder:validation:Enum=Standard_LRS;StandardSSD_LRS;Premium_LRS;UltraSSD_LRS
      
      However, according to the Azure documentation Ultra Disk (UltraSSD_LRS) is not supported for OS Disks: https://learn.microsoft.com/en-us/azure/virtual-machines/disks-types#disk-type-comparison

      Version-Release number of selected component (if applicable):

          

      How reproducible:

          N/A

      Steps to Reproduce:

          N/A
          

      Actual results:

           DiskStorageAccountType accepts Ultra Disk

      Expected results:

          DiskStorageAccountType should not accept Ultra Disk

      Additional info:

          

              hypershift-automation hypershift-team automation
              msorianod Miguel Soriano
              None
              Bryan Cox
              Yu Li Yu Li
              None
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: