@@ -183,10 +183,7 @@ func (r *ReconcileNode) createOrUpdate(ctx context.Context, k8sNode *corev1.Node
183183 return err
184184 }
185185
186- if node .Spec .NodeMetadata .InstanceType != nodeInfo .InstanceType ||
187- node .Spec .NodeMetadata .InstanceID != nodeInfo .InstanceID ||
188- node .Spec .NodeMetadata .ZoneID != nodeInfo .ZoneID ||
189- node .Spec .NodeMetadata .RegionID != nodeInfo .RegionID {
186+ if needUpdate (node , nodeInfo ) {
190187
191188 node .Spec .NodeMetadata = networkv1beta1.NodeMetadata {
192189 InstanceType : nodeInfo .InstanceType ,
@@ -210,7 +207,14 @@ func (r *ReconcileNode) createOrUpdate(ctx context.Context, k8sNode *corev1.Node
210207 MemberAdapterLimit : limit .MemberAdapterLimit ,
211208 IPv4PerAdapter : limit .IPv4PerAdapter ,
212209 MaxMemberAdapterLimit : limit .MaxMemberAdapterLimit ,
210+ NetworkCards : lo .Map (limit .NetworkCards , func (item aliyunClient.NetworkCard , index int ) networkv1beta1.NetworkCard {
211+ return networkv1beta1.NetworkCard {
212+ Index : item .Index ,
213+ }
214+ }),
213215 }
216+
217+ node .Spec .NodeCap .NetworkCardsCount = ptr .To (len (node .Spec .NodeCap .NetworkCards ))
214218 }
215219
216220 update := node .DeepCopy ()
@@ -403,16 +407,16 @@ func (r *ReconcileNode) handleEFLO(ctx context.Context, k8sNode *corev1.Node, no
403407 return reconcile.Result {}, err
404408 }
405409
406- if node .Spec .NodeMetadata .InstanceID != nodeInfo .InstanceID ||
407- node .Spec .NodeMetadata .InstanceType != nodeInfo .InstanceType ||
408- node .Spec .NodeMetadata .ZoneID != nodeInfo .ZoneID ||
409- node .Spec .NodeMetadata .RegionID != nodeInfo .RegionID {
410+ if needUpdate (node , nodeInfo ) {
410411
411412 node .Spec .NodeMetadata .InstanceID = nodeInfo .InstanceID
412413 node .Spec .NodeMetadata .InstanceType = nodeInfo .InstanceType
413414 node .Spec .NodeMetadata .ZoneID = nodeInfo .ZoneID
414415 node .Spec .NodeMetadata .RegionID = nodeInfo .RegionID
415416
417+ node .Spec .NodeCap .NetworkCardsCount = ptr .To (0 )
418+ node .Spec .NodeCap .NetworkCards = nil
419+
416420 isEni , err := r .hasPrimaryENI (ctx , node .Spec .NodeMetadata .InstanceID )
417421 if err != nil {
418422 return reconcile.Result {}, err
@@ -532,3 +536,11 @@ func (r *ReconcileNode) delete(ctx context.Context, request reconcile.Request) (
532536 l .Info ("delete node finished" )
533537 return reconcile.Result {}, err
534538}
539+
540+ func needUpdate (node * networkv1beta1.Node , nodeInfo * common.NodeInfo ) bool {
541+ return node .Spec .NodeMetadata .InstanceType != nodeInfo .InstanceType ||
542+ node .Spec .NodeMetadata .InstanceID != nodeInfo .InstanceID ||
543+ node .Spec .NodeMetadata .ZoneID != nodeInfo .ZoneID ||
544+ node .Spec .NodeMetadata .RegionID != nodeInfo .RegionID ||
545+ node .Spec .NodeCap .NetworkCardsCount == nil
546+ }
0 commit comments