Skip to content

Commit 028584a

Browse files
authored
Merge pull request kubernetes#5025 from enxebre/get-targetSize-fromcache
Get capi targetsize from cache
2 parents 6bc4957 + b2f1823 commit 028584a

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package clusterapi
1818

1919
import (
2020
"fmt"
21+
"github.com/pkg/errors"
2122

2223
corev1 "k8s.io/api/core/v1"
2324
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
@@ -52,7 +53,14 @@ func (ng *nodegroup) MaxSize() int {
5253
// (new nodes finish startup and registration or removed nodes are
5354
// deleted completely). Implementation required.
5455
func (ng *nodegroup) TargetSize() (int, error) {
55-
return ng.scalableResource.Replicas()
56+
replicas, found, err := unstructured.NestedInt64(ng.scalableResource.unstructured.Object, "spec", "replicas")
57+
if err != nil {
58+
return 0, errors.Wrap(err, "error getting replica count")
59+
}
60+
if !found {
61+
return 0, fmt.Errorf("unable to find replicas")
62+
}
63+
return int(replicas), nil
5664
}
5765

5866
// IncreaseSize increases the size of the node group. To delete a node
@@ -163,7 +171,7 @@ func (ng *nodegroup) DecreaseTargetSize(delta int) error {
163171
return fmt.Errorf("size decrease must be negative")
164172
}
165173

166-
size, err := ng.TargetSize()
174+
size, err := ng.scalableResource.Replicas()
167175
if err != nil {
168176
return err
169177
}

cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1072,7 +1072,7 @@ func TestNodeGroupDeleteNodesSequential(t *testing.T) {
10721072
ng = nodegroups[0]
10731073

10741074
// Check the nodegroup is at the expected size
1075-
actualSize, err := ng.TargetSize()
1075+
actualSize, err := ng.scalableResource.Replicas()
10761076
if err != nil {
10771077
t.Fatalf("unexpected error: %v", err)
10781078
}

cluster-autoscaler/cloudprovider/clusterapi/clusterapi_unstructured_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,17 @@ func TestSetSize(t *testing.T) {
6060
if s.Spec.Replicas != int32(updatedReplicas) {
6161
t.Errorf("expected %v, got: %v", updatedReplicas, s.Spec.Replicas)
6262
}
63+
64+
replicas, found, err := unstructured.NestedInt64(sr.unstructured.Object, "spec", "replicas")
65+
if err != nil {
66+
t.Fatal(err)
67+
}
68+
if !found {
69+
t.Fatal("replicas = 0")
70+
}
71+
if replicas != int64(updatedReplicas) {
72+
t.Errorf("expected %v, got: %v", updatedReplicas, replicas)
73+
}
6374
}
6475

6576
t.Run("MachineSet", func(t *testing.T) {

0 commit comments

Comments
 (0)