File tree Expand file tree Collapse file tree 2 files changed +20
-8
lines changed
cluster-autoscaler/cloudprovider/oci/nodepools Expand file tree Collapse file tree 2 files changed +20
-8
lines changed Original file line number Diff line number Diff line change @@ -542,8 +542,9 @@ func (m *ociManagerImpl) GetNodePoolNodes(np NodePool) ([]cloudprovider.Instance
542
542
543
543
errorClass := cloudprovider .OtherErrorClass
544
544
if * node .NodeError .Code == "LimitExceeded" ||
545
- (* node .NodeError .Code == "InternalServerError" &&
546
- strings .Contains (* node .NodeError .Message , "quota" )) {
545
+ * node .NodeError .Code == "QuotaExceeded" ||
546
+ (* node .NodeError .Code == "InternalError" &&
547
+ strings .Contains (* node .NodeError .Message , "Out of host capacity" )) {
547
548
errorClass = cloudprovider .OutOfResourcesErrorClass
548
549
}
549
550
Original file line number Diff line number Diff line change @@ -214,6 +214,23 @@ func (np *nodePool) DecreaseTargetSize(delta int) error {
214
214
}
215
215
}
216
216
klog .V (4 ).Infof ("DECREASE_TARGET_CHECK_VIA_COMPUTE: %v" , decreaseTargetCheckViaComputeBool )
217
+ np .manager .InvalidateAndRefreshCache ()
218
+ nodes , err := np .manager .GetNodePoolNodes (np )
219
+ if err != nil {
220
+ klog .V (4 ).Error (err , "error while performing GetNodePoolNodes call" )
221
+ return err
222
+ }
223
+ if ! decreaseTargetCheckViaComputeBool {
224
+ for _ , node := range nodes {
225
+ if node .Status != nil && node .Status .ErrorInfo != nil {
226
+ if node .Status .ErrorInfo .ErrorClass == cloudprovider .OutOfResourcesErrorClass {
227
+ klog .V (4 ).Infof ("Using Compute to calculate nodepool size as nodepool may contain nodes without a compute instance." )
228
+ decreaseTargetCheckViaComputeBool = true
229
+ break
230
+ }
231
+ }
232
+ }
233
+ }
217
234
var nodesLen int
218
235
if decreaseTargetCheckViaComputeBool {
219
236
nodesLen , err = np .manager .GetExistingNodePoolSizeViaCompute (np )
@@ -222,12 +239,6 @@ func (np *nodePool) DecreaseTargetSize(delta int) error {
222
239
return err
223
240
}
224
241
} else {
225
- np .manager .InvalidateAndRefreshCache ()
226
- nodes , err := np .manager .GetNodePoolNodes (np )
227
- if err != nil {
228
- klog .V (4 ).Error (err , "error while performing GetNodePoolNodes call" )
229
- return err
230
- }
231
242
nodesLen = len (nodes )
232
243
}
233
244
You can’t perform that action at this time.
0 commit comments