Azure / ARO-RP

Azure Red Hat OpenShift RP

Home Page:https://azure.microsoft.com/products/openshift/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SKUs API inconsistent

mjudeikis opened this issue · comments

recently (after weekend of May 25th) we noticed regression in Azure SKU compute API:

API: "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2020-06-01/compute"

Client: client := compute.NewResourceSkusClientWithBaseURI(environment.ResourceManagerEndpoint, subscriptionID)

Behavior: If called All compute types returns data with their availability. Example:

(working) Example (marked fields in question):

(compute.ResourceSku) {                                                                                                                                                                                                                                                                                                 
 ResourceType: (*string)(0xc000a313a0)((len=5) "disks"),                                                                                                                                                                                                                                                                
 Name: (*string)(0xc000a313b0)((len=12) "UltraSSD_LRS"),                                                                                                                                                                                                                                                                
 Tier: (*string)(0xc000a313c0)((len=5) "Ultra"),                                                                                                                                                                                                                                                                        
 Size: (*string)(0xc000a313d0)((len=1) "U"),                                                                                                                                                                                                                                                                            
 Family: (*string)(<nil>),                                                                                                                                                                                                                                                                                              
 Kind: (*string)(<nil>),                                                                                                                                                                                                                                                                                                
 Capacity: (*compute.ResourceSkuCapacity)(<nil>),                                                                                                                                                                                                                                                                       
 Locations: (*[]string)(0xc000a33920)((len=1 cap=4) {                                                                                                                                                                                                                                                                   
  (string) (len=13) "canadacentral"                                                                                                                                                                                                                                                                                     
 }),                               
 LocationInfo: (*[]compute.ResourceSkuLocationInfo)(0xc000a33960)((len=1 cap=4) {                                                                                                                                                                                                                                       
  (compute.ResourceSkuLocationInfo) {                                                                                                                                                                                                                                                                                   
   Location: (*string)(0xc000a313e0)((len=13) "canadacentral"),                                                                                                                                                                                                                                                         
Zones: (*[]string)(0xc000a339a0)((len=3 cap=4) {                                                                                                                                                                                                                                                                     
    (string) (len=1) "2",                                                                                                                                                                                                                                                                                               
    (string) (len=1) "3",                                                                                                                                                                                                                                                                                               
    (string) (len=1) "1"                                                                                                                                                                                                                                                                                                
   }),           
   ZoneDetails: (*[]compute.ResourceSkuZoneDetails)(0xc000a339e0)({                                                                                                                                                                                                                                                     
   })                                                                                                                                                                                                                                                                                                                   
  }                                                                                                                                                                                                                                                                                                                     
 }),                                                                                                                                                                                                                                                                                                                    

(Not working) But SKU's in question now returns:

(compute.ResourceSku) {                                                                                                                                                                                                                                                                                                 
 ResourceType: (*string)(0xc00304e200)((len=15) "virtualMachines"),                                                                                                                                                                                                                                                     
 Name: (*string)(0xc00304e210)((len=21) "Standard_NC64as_T4_v3"),                                                                                                                                                                                                                                                       
 Tier: (*string)(0xc00304e220)((len=8) "Standard"),                                                                                                                                                                                                                                                                     
 Size: (*string)(0xc00304e230)((len=12) "NC64as_T4_v3"),                                                                                                                                                                                                                                                                
 Family: (*string)(0xc00304e240)((len=25) "Standard NCASv3_T4 Family"),                                                                                                                                                                                                                                                 
 Kind: (*string)(<nil>),                                                                                                                                                                                                                                                                                                
 Capacity: (*compute.ResourceSkuCapacity)(<nil>),                                                                                                                                                                                                                                                                       
 Locations: (*[]string)(0xc00304ca40)({                                                                                                                                                                                                                                                                                 
 }),                                                                                                                                                                                                                                                                                                                    
 LocationInfo: (*[]compute.ResourceSkuLocationInfo)(0xc00304ca80)({                                                                                                                                                                                                                                                     
 }),       

All impacted SKUS:

(*string)(0xc002ea6c10)((len=17) "Standard_NV4as_v4")
(*string)(0xc002ea6ee0)((len=17) "Standard_NV8as_v4")
(*string)(0xc002ea71b0)((len=18) "Standard_NV16as_v4")
(*string)(0xc002ea7480)((len=18) "Standard_NV32as_v4")
(*string)(0xc002ea7750)((len=20) "Standard_NC4as_T4_v3")
(*string)(0xc002ea7ae0)((len=20) "Standard_NC8as_T4_v3")
(*string)(0xc002ea7e70)((len=21) "Standard_NC16as_T4_v3")
(*string)(0xc002eac200)((len=21) "Standard_NC64as_T4_v3")

This prevents dynamically checking if requested compute types are available in specific region and construct zones information.

We suspect this is repression in Compute SKU API.

This is directly impacting customer as cod determining availability of SKUS stopped working.