diff --git a/cluster-autoscaler/cloudprovider/azure/azure_fakes.go b/cluster-autoscaler/cloudprovider/azure/azure_fakes.go index 86fe50ff997026c6896ba93dc53574a723b4311a..859d6c6a4aa752f128c2abdf3350e993172e943f 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_fakes.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_fakes.go @@ -43,12 +43,16 @@ type VirtualMachineScaleSetsClientMock struct { // Get gets the VirtualMachineScaleSet by vmScaleSetName. func (client *VirtualMachineScaleSetsClientMock) Get(ctx context.Context, resourceGroupName string, vmScaleSetName string) (result compute.VirtualMachineScaleSet, err error) { capacity := int64(2) + name := "Standard_D8_V3" // typo to test case-insensitive lookup + location := "switzerlandwest" properties := compute.VirtualMachineScaleSetProperties{} return compute.VirtualMachineScaleSet{ Name: &vmScaleSetName, Sku: &compute.Sku{ Capacity: &capacity, + Name: &name, }, + Location: &location, VirtualMachineScaleSetProperties: &properties, }, nil } diff --git a/cluster-autoscaler/cloudprovider/azure/azure_scale_set.go b/cluster-autoscaler/cloudprovider/azure/azure_scale_set.go index 4c54a2fc080be8db593048bcbcbe871babffdb33..436b2ed8ee9e8387313db55434fc8afe4bd4eda7 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_scale_set.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_scale_set.go @@ -383,7 +383,13 @@ func (scaleSet *ScaleSet) buildNodeFromTemplate(template compute.VirtualMachineS Capacity: apiv1.ResourceList{}, } - vmssType := InstanceTypes[*template.Sku.Name] + var vmssType *instanceType + for k := range InstanceTypes { + if strings.EqualFold(k, *template.Sku.Name) { + vmssType = InstanceTypes[k] + break + } + } if vmssType == nil { return nil, fmt.Errorf("instance type %q not supported", *template.Sku.Name) } diff --git a/cluster-autoscaler/cloudprovider/azure/azure_scale_set_test.go b/cluster-autoscaler/cloudprovider/azure/azure_scale_set_test.go index a2cfc2fc54a9adbc83d8585e9a3abc1cc6a920b4..c17e80a1bcee8a0030747e317d41452b6769036c 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_scale_set_test.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_scale_set_test.go @@ -187,3 +187,23 @@ func TestScaleSetNodes(t *testing.T) { assert.Equal(t, len(instances), 1) assert.Equal(t, instances[0], fakeProviderID) } + +func TestTemplateNodeInfo(t *testing.T) { + provider := newTestProvider(t) + registered := provider.azureManager.RegisterAsg( + newTestScaleSet(provider.azureManager, "test-asg")) + assert.True(t, registered) + assert.Equal(t, len(provider.NodeGroups()), 1) + + asg := ScaleSet{ + manager: newTestAzureManager(t), + minSize: 1, + maxSize: 5, + } + asg.Name = "test-scale-set" + + nodeInfo, err := asg.TemplateNodeInfo() + assert.NoError(t, err) + assert.NotNil(t, nodeInfo) + assert.NotEmpty(t, nodeInfo.Pods()) +}