Avoid expesive pointer copy in capi nodegroup
This commit is contained in:
parent
3fd892a37b
commit
31fdc397fd
|
|
@ -672,13 +672,13 @@ func (c *machineController) findScalableResourceProviderIDs(scalableResource *un
|
||||||
return providerIDs, nil
|
return providerIDs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *machineController) nodeGroups() ([]*nodegroup, error) {
|
func (c *machineController) nodeGroups() ([]cloudprovider.NodeGroup, error) {
|
||||||
scalableResources, err := c.listScalableResources()
|
scalableResources, err := c.listScalableResources()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
nodegroups := make([]*nodegroup, 0, len(scalableResources))
|
nodegroups := make([]cloudprovider.NodeGroup, 0, len(scalableResources))
|
||||||
|
|
||||||
for _, r := range scalableResources {
|
for _, r := range scalableResources {
|
||||||
ng, err := newNodeGroupFromScalableResource(c, r)
|
ng, err := newNodeGroupFromScalableResource(c, r)
|
||||||
|
|
@ -688,6 +688,7 @@ func (c *machineController) nodeGroups() ([]*nodegroup, error) {
|
||||||
|
|
||||||
if ng != nil {
|
if ng != nil {
|
||||||
nodegroups = append(nodegroups, ng)
|
nodegroups = append(nodegroups, ng)
|
||||||
|
klog.V(4).Infof("discovered node group: %s", ng.Debug())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nodegroups, nil
|
return nodegroups, nil
|
||||||
|
|
|
||||||
|
|
@ -2113,7 +2113,7 @@ func Test_machineController_nodeGroups(t *testing.T) {
|
||||||
|
|
||||||
// Sort results as order is not guaranteed.
|
// Sort results as order is not guaranteed.
|
||||||
sort.Slice(got, func(i, j int) bool {
|
sort.Slice(got, func(i, j int) bool {
|
||||||
return got[i].scalableResource.Name() < got[j].scalableResource.Name()
|
return got[i].(*nodegroup).scalableResource.Name() < got[j].(*nodegroup).scalableResource.Name()
|
||||||
})
|
})
|
||||||
sort.Slice(tc.expectedScalableResources, func(i, j int) bool {
|
sort.Slice(tc.expectedScalableResources, func(i, j int) bool {
|
||||||
return tc.expectedScalableResources[i].GetName() < tc.expectedScalableResources[j].GetName()
|
return tc.expectedScalableResources[i].GetName() < tc.expectedScalableResources[j].GetName()
|
||||||
|
|
@ -2121,7 +2121,7 @@ func Test_machineController_nodeGroups(t *testing.T) {
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
for i := range got {
|
for i := range got {
|
||||||
if !reflect.DeepEqual(got[i].scalableResource.unstructured, tc.expectedScalableResources[i]) {
|
if !reflect.DeepEqual(got[i].(*nodegroup).scalableResource.unstructured, tc.expectedScalableResources[i]) {
|
||||||
t.Errorf("nodeGroups() got = %v, expected to consist of nodegroups for scalable resources: %v", got, tc.expectedScalableResources)
|
t.Errorf("nodeGroups() got = %v, expected to consist of nodegroups for scalable resources: %v", got, tc.expectedScalableResources)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -261,7 +261,7 @@ func TestNodeGroupIncreaseSizeErrors(t *testing.T) {
|
||||||
t.Fatalf("expected 1 nodegroup, got %d", l)
|
t.Fatalf("expected 1 nodegroup, got %d", l)
|
||||||
}
|
}
|
||||||
|
|
||||||
ng := nodegroups[0]
|
ng := nodegroups[0].(*nodegroup)
|
||||||
currReplicas, err := ng.TargetSize()
|
currReplicas, err := ng.TargetSize()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
|
|
@ -348,7 +348,7 @@ func TestNodeGroupIncreaseSize(t *testing.T) {
|
||||||
t.Fatalf("expected 1 nodegroup, got %d", l)
|
t.Fatalf("expected 1 nodegroup, got %d", l)
|
||||||
}
|
}
|
||||||
|
|
||||||
ng := nodegroups[0]
|
ng := nodegroups[0].(*nodegroup)
|
||||||
currReplicas, err := ng.TargetSize()
|
currReplicas, err := ng.TargetSize()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
|
|
@ -427,7 +427,7 @@ func TestNodeGroupDecreaseTargetSize(t *testing.T) {
|
||||||
t.Fatalf("expected 1 nodegroup, got %d", l)
|
t.Fatalf("expected 1 nodegroup, got %d", l)
|
||||||
}
|
}
|
||||||
|
|
||||||
ng := nodegroups[0]
|
ng := nodegroups[0].(*nodegroup)
|
||||||
|
|
||||||
gvr, err := ng.scalableResource.GroupVersionResource()
|
gvr, err := ng.scalableResource.GroupVersionResource()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -596,7 +596,7 @@ func TestNodeGroupDecreaseSizeErrors(t *testing.T) {
|
||||||
t.Fatalf("expected 1 nodegroup, got %d", l)
|
t.Fatalf("expected 1 nodegroup, got %d", l)
|
||||||
}
|
}
|
||||||
|
|
||||||
ng := nodegroups[0]
|
ng := nodegroups[0].(*nodegroup)
|
||||||
currReplicas, err := ng.TargetSize()
|
currReplicas, err := ng.TargetSize()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
|
|
@ -676,7 +676,7 @@ func TestNodeGroupDeleteNodes(t *testing.T) {
|
||||||
t.Fatalf("expected 1 nodegroup, got %d", l)
|
t.Fatalf("expected 1 nodegroup, got %d", l)
|
||||||
}
|
}
|
||||||
|
|
||||||
ng := nodegroups[0]
|
ng := nodegroups[0].(*nodegroup)
|
||||||
nodeNames, err := ng.Nodes()
|
nodeNames, err := ng.Nodes()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
|
|
@ -889,7 +889,7 @@ func TestNodeGroupDeleteNodesTwice(t *testing.T) {
|
||||||
t.Fatalf("expected 1 nodegroup, got %d", l)
|
t.Fatalf("expected 1 nodegroup, got %d", l)
|
||||||
}
|
}
|
||||||
|
|
||||||
ng := nodegroups[0]
|
ng := nodegroups[0].(*nodegroup)
|
||||||
nodeNames, err := ng.Nodes()
|
nodeNames, err := ng.Nodes()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
|
|
@ -961,7 +961,7 @@ func TestNodeGroupDeleteNodesTwice(t *testing.T) {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ng = nodegroups[0]
|
ng = nodegroups[0].(*nodegroup)
|
||||||
|
|
||||||
// Check the nodegroup is at the expected size
|
// Check the nodegroup is at the expected size
|
||||||
actualSize, err := ng.TargetSize()
|
actualSize, err := ng.TargetSize()
|
||||||
|
|
@ -1066,7 +1066,7 @@ func TestNodeGroupDeleteNodesSequential(t *testing.T) {
|
||||||
t.Fatalf("expected 1 nodegroup, got %d", l)
|
t.Fatalf("expected 1 nodegroup, got %d", l)
|
||||||
}
|
}
|
||||||
|
|
||||||
ng := nodegroups[0]
|
ng := nodegroups[0].(*nodegroup)
|
||||||
nodeNames, err := ng.Nodes()
|
nodeNames, err := ng.Nodes()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
|
|
@ -1132,7 +1132,7 @@ func TestNodeGroupDeleteNodesSequential(t *testing.T) {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ng = nodegroups[0]
|
ng = nodegroups[0].(*nodegroup)
|
||||||
|
|
||||||
// Check the nodegroup is at the expected size
|
// Check the nodegroup is at the expected size
|
||||||
actualSize, err := ng.scalableResource.Replicas()
|
actualSize, err := ng.scalableResource.Replicas()
|
||||||
|
|
|
||||||
|
|
@ -59,17 +59,12 @@ func (p *provider) GetResourceLimiter() (*cloudprovider.ResourceLimiter, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *provider) NodeGroups() []cloudprovider.NodeGroup {
|
func (p *provider) NodeGroups() []cloudprovider.NodeGroup {
|
||||||
var result []cloudprovider.NodeGroup
|
|
||||||
nodegroups, err := p.controller.nodeGroups()
|
nodegroups, err := p.controller.nodeGroups()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Errorf("error getting node groups: %v", err)
|
klog.Errorf("error getting node groups: %v", err)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
for _, ng := range nodegroups {
|
return nodegroups
|
||||||
klog.V(4).Infof("discovered node group: %s", ng.Debug())
|
|
||||||
result = append(result, ng)
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *provider) NodeGroupForNode(node *corev1.Node) (cloudprovider.NodeGroup, error) {
|
func (p *provider) NodeGroupForNode(node *corev1.Node) (cloudprovider.NodeGroup, error) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue