@@ -93,23 +93,37 @@ func (hv *HypervisorController) Reconcile(ctx context.Context, req ctrl.Request)
9393 // continue with creation
9494 } else {
9595 // update Status if needed
96+ changed := false
97+
98+ // transfer internal IP
99+ for _ , address := range node .Status .Addresses {
100+ if address .Type == corev1 .NodeInternalIP && hypervisor .Status .InternalIP != address .Address {
101+ hypervisor .Status .InternalIP = address .Address
102+ changed = true
103+ break
104+ }
105+ }
106+
107+ // update terminating condition
96108 nodeTerminationCondition := FindNodeStatusCondition (node .Status .Conditions , "Terminating" )
97109 if nodeTerminationCondition != nil && nodeTerminationCondition .Status == corev1 .ConditionTrue {
98110 // Node might be terminating, propagate condition to hypervisor
99- changed : = meta .SetStatusCondition (& hypervisor .Status .Conditions , metav1.Condition {
111+ changed = meta .SetStatusCondition (& hypervisor .Status .Conditions , metav1.Condition {
100112 Type : kvmv1 .ConditionTypeReady ,
101113 Status : metav1 .ConditionFalse ,
102114 Reason : nodeTerminationCondition .Reason ,
103115 Message : nodeTerminationCondition .Message ,
104- }) || meta .SetStatusCondition (& hypervisor .Status .Conditions , metav1.Condition {
116+ }) || changed
117+ changed = meta .SetStatusCondition (& hypervisor .Status .Conditions , metav1.Condition {
105118 Type : kvmv1 .ConditionTypeTerminating ,
106119 Status : metav1 .ConditionStatus (nodeTerminationCondition .Status ),
107120 Reason : nodeTerminationCondition .Reason ,
108121 Message : nodeTerminationCondition .Message ,
109- })
110- if changed {
111- return ctrl.Result {}, hv .Status ().Update (ctx , hypervisor )
112- }
122+ }) || changed
123+ }
124+
125+ if changed {
126+ return ctrl.Result {}, hv .Status ().Update (ctx , hypervisor )
113127 }
114128 return ctrl.Result {}, nil
115129 }
0 commit comments