Skip to content

Commit 9fc13b9

Browse files
Merge pull request kosmos-io#341 from OrangeBao/release-0.2.0
fix: resolve the issue of node address update errors
2 parents 20efb30 + 880680d commit 9fc13b9

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

Diff for: pkg/clustertree/cluster-manager/controllers/node_resources_controller.go

-5
Original file line numberDiff line numberDiff line change
@@ -149,11 +149,6 @@ func (c *NodeResourcesController) Reconcile(ctx context.Context, request reconci
149149
// }
150150
clone.Spec.Taints = rootNode.Spec.Taints
151151
clone.Status = node.Status
152-
clone.Status.Addresses, err = leafUtils.GetAddress(ctx, c.RootClientset, node.Status.Addresses)
153-
if err != nil {
154-
klog.Errorf("GetAddress node %s, err: %v, ", rootNode.Name, err)
155-
return reconcile.Result{}, err
156-
}
157152
}
158153
}
159154

Diff for: pkg/clustertree/cluster-manager/utils/leaf_model_handler.go

+8-2
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func (h AggregationModelHandler) UpdateNodeStatus(ctx context.Context, n []*core
109109
return fmt.Errorf("cannot get node in leaf cluster while update node status, leaf node item is 0")
110110
}
111111

112-
clone.Status.Addresses, err = GetAddress(ctx, h.RootClientset, nodeListInLeaf.Items[0].Status.Addresses)
112+
updateAddress, err := GetAddress(ctx, h.RootClientset, nodeListInLeaf.Items[0].Status.Addresses)
113113

114114
if err != nil {
115115
return err
@@ -121,8 +121,14 @@ func (h AggregationModelHandler) UpdateNodeStatus(ctx context.Context, n []*core
121121
return fmt.Errorf("cannot get node while update node status %s, err: %v", node.Name, err)
122122
}
123123

124-
if node, err = h.RootClientset.CoreV1().Nodes().PatchStatus(ctx, node.Name, patch); err != nil {
124+
if latestNode, err := h.RootClientset.CoreV1().Nodes().PatchStatus(ctx, node.Name, patch); err != nil {
125125
return err
126+
} else {
127+
latestNode.ResourceVersion = ""
128+
latestNode.Status.Addresses = updateAddress
129+
if _, err = h.RootClientset.CoreV1().Nodes().UpdateStatus(ctx, latestNode, metav1.UpdateOptions{}); err != nil {
130+
return err
131+
}
126132
}
127133
return nil
128134
})

Diff for: pkg/clustertree/cluster-manager/utils/rootcluster.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,10 @@ func GetAddress(ctx context.Context, rootClient kubernetes.Interface, originAddr
4949
}
5050

5151
func SortAddress(ctx context.Context, rootClient kubernetes.Interface, originAddress []corev1.NodeAddress) ([]corev1.NodeAddress, error) {
52-
rootnodes, err := rootClient.CoreV1().Nodes().List(ctx, metav1.ListOptions{})
52+
rootnodes, err := rootClient.CoreV1().Nodes().List(ctx, metav1.ListOptions{
53+
// get the node which is not created by kosmos
54+
LabelSelector: fmt.Sprintf("%s!=%s", utils.KosmosNodeLabel, utils.KosmosNodeValue),
55+
})
5356
if err != nil {
5457
return nil, fmt.Errorf("create node failed, cannot get node from root cluster, err: %v", err)
5558
}

0 commit comments

Comments
 (0)