Skip to content

Commit 1434d14

Browse files
authored
Merge pull request kubernetes#3242 from nilo19/bug/disable-increase-when-initializing
Disable increaseSize when the node group is under initialilzation.
2 parents 67dce2e + 81cb1a7 commit 1434d14

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

cluster-autoscaler/cloudprovider/azure/azure_agent_pool.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ func NewAgentPool(spec *dynamic.NodeGroupSpec, az *AzureManager) (*AgentPool, er
7575
minSize: spec.MinSize,
7676
maxSize: spec.MaxSize,
7777
manager: az,
78+
curSize: -1,
7879
}
7980

8081
if err := as.initialize(); err != nil {
@@ -302,6 +303,10 @@ func (as *AgentPool) IncreaseSize(delta int) error {
302303
as.mutex.Lock()
303304
defer as.mutex.Unlock()
304305

306+
if as.curSize == -1 {
307+
return fmt.Errorf("the availability set %s is under initialization, skipping IncreaseSize", as.Name)
308+
}
309+
305310
if delta <= 0 {
306311
return fmt.Errorf("size increase must be positive")
307312
}

cluster-autoscaler/cloudprovider/azure/azure_scale_set.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,10 @@ func (scaleSet *ScaleSet) IncreaseSize(delta int) error {
333333
return err
334334
}
335335

336+
if size == -1 {
337+
return fmt.Errorf("the scale set %s is under initialization, skipping IncreaseSize", scaleSet.Name)
338+
}
339+
336340
if int(size)+delta > scaleSet.MaxSize() {
337341
return fmt.Errorf("size increase too large - desired:%d max:%d", int(size)+delta, scaleSet.MaxSize())
338342
}

cluster-autoscaler/cloudprovider/azure/azure_scale_set_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"fmt"
2121
"net/http"
2222
"testing"
23+
"time"
2324

2425
apiv1 "k8s.io/api/core/v1"
2526
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
@@ -130,6 +131,13 @@ func TestIncreaseSize(t *testing.T) {
130131
mockVMSSVMClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup, "test-asg", gomock.Any()).Return(expectedVMSSVMs, nil).AnyTimes()
131132
provider.azureManager.azClient.virtualMachineScaleSetVMsClient = mockVMSSVMClient
132133

134+
ss := newTestScaleSet(provider.azureManager, "test-asg")
135+
ss.lastSizeRefresh = time.Now()
136+
ss.curSize = -1
137+
err := ss.IncreaseSize(100)
138+
expectedErr := fmt.Errorf("the scale set test-asg is under initialization, skipping IncreaseSize")
139+
assert.Equal(t, expectedErr, err)
140+
133141
registered := provider.azureManager.RegisterAsg(
134142
newTestScaleSet(provider.azureManager, "test-asg"))
135143
assert.True(t, registered)

0 commit comments

Comments
 (0)