Skip to content

Commit

Permalink
Merge pull request #6971 from CecileRobertMichon/fix-machinepool-inst…
Browse files Browse the repository at this point in the history
…ance-id-bug

🐛 Fix machinepool instance id bug
  • Loading branch information
k8s-ci-robot committed Jul 25, 2022
2 parents 5dd4827 + 3619a9e commit f7558d0
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 4 deletions.
8 changes: 4 additions & 4 deletions exp/internal/controllers/machinepool_controller_noderef.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,15 +156,15 @@ func (r *MachinePoolReconciler) deleteRetiredNodes(ctx context.Context, c client
continue
}

nodeRefsMap[nodeProviderID.ID()] = node
nodeRefsMap[nodeProviderID.String()] = node
}
for _, providerID := range providerIDList {
pid, err := noderefutil.NewProviderID(providerID)
if err != nil {
log.V(2).Info("Failed to parse ProviderID, skipping", "err", err, "providerID", providerID)
continue
}
delete(nodeRefsMap, pid.ID())
delete(nodeRefsMap, pid.String())
}
for _, node := range nodeRefsMap {
if err := c.Delete(ctx, node); err != nil {
Expand Down Expand Up @@ -192,7 +192,7 @@ func (r *MachinePoolReconciler) getNodeReferences(ctx context.Context, c client.
continue
}

nodeRefsMap[nodeProviderID.ID()] = node
nodeRefsMap[nodeProviderID.String()] = node
}

if nodeList.Continue == "" {
Expand All @@ -207,7 +207,7 @@ func (r *MachinePoolReconciler) getNodeReferences(ctx context.Context, c client.
log.V(2).Info("Failed to parse ProviderID, skipping", "err", err, "providerID", providerID)
continue
}
if node, ok := nodeRefsMap[pid.ID()]; ok {
if node, ok := nodeRefsMap[pid.String()]; ok {
available++
if nodeIsReady(&node) {
ready++
Expand Down
35 changes: 35 additions & 0 deletions exp/internal/controllers/machinepool_controller_noderef_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,22 @@ func TestMachinePoolGetNodeReference(t *testing.T) {
ProviderID: "azure://westus2/id-node-4",
},
},
&corev1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: "azure-nodepool1-0",
},
Spec: corev1.NodeSpec{
ProviderID: "azure://westus2/id-nodepool1/0",
},
},
&corev1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: "azure-nodepool2-0",
},
Spec: corev1.NodeSpec{
ProviderID: "azure://westus2/id-nodepool2/0",
},
},
}

client := fake.NewClientBuilder().WithObjects(nodeList...).Build()
Expand Down Expand Up @@ -137,6 +153,25 @@ func TestMachinePoolGetNodeReference(t *testing.T) {
ready: 0,
},
},
{
name: "valid provider id with non-unique instance id, valid azure node",
providerIDList: []string{"azure://westus2/id-nodepool1/0"},
expected: &getNodeReferencesResult{
references: []corev1.ObjectReference{
{Name: "azure-nodepool1-0"},
},
},
},
{
name: "valid provider ids with same instance ids, valid azure nodes",
providerIDList: []string{"azure://westus2/id-nodepool1/0", "azure://westus2/id-nodepool2/0"},
expected: &getNodeReferencesResult{
references: []corev1.ObjectReference{
{Name: "azure-nodepool1-0"},
{Name: "azure-nodepool2-0"},
},
},
},
}

for _, test := range testCases {
Expand Down

0 comments on commit f7558d0

Please sign in to comment.