Skip to content

Commit 81cb1a7

Browse files
committed
Disable increaseSize when the node group is under initialilzation.
1 parent 9a1f3fe commit 81cb1a7

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
@@ -336,6 +336,10 @@ func (scaleSet *ScaleSet) IncreaseSize(delta int) error {
336336
return err
337337
}
338338

339+
if size == -1 {
340+
return fmt.Errorf("the scale set %s is under initialization, skipping IncreaseSize", scaleSet.Name)
341+
}
342+
339343
if int(size)+delta > scaleSet.MaxSize() {
340344
return fmt.Errorf("size increase too large - desired:%d max:%d", int(size)+delta, scaleSet.MaxSize())
341345
}

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)