Skip to content

Commit 74a5805

Browse files
fwieselnotandy
authored andcommitted
HypervisorController: Only update the status when needed
We only need to update the status when it has changed.
1 parent 95ac248 commit 74a5805

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

internal/controller/hypervisor_controller.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,21 +96,21 @@ func (hv *HypervisorController) Reconcile(ctx context.Context, req ctrl.Request)
9696
nodeTerminationCondition := FindNodeStatusCondition(node.Status.Conditions, "Terminating")
9797
if nodeTerminationCondition != nil && nodeTerminationCondition.Status == corev1.ConditionTrue {
9898
// Node might be terminating, propagate condition to hypervisor
99-
meta.SetStatusCondition(&hypervisor.Status.Conditions, metav1.Condition{
99+
changed := meta.SetStatusCondition(&hypervisor.Status.Conditions, metav1.Condition{
100100
Type: kvmv1.ConditionTypeReady,
101101
Status: metav1.ConditionFalse,
102102
Reason: nodeTerminationCondition.Reason,
103103
Message: nodeTerminationCondition.Message,
104-
})
105-
meta.SetStatusCondition(&hypervisor.Status.Conditions, metav1.Condition{
104+
}) || meta.SetStatusCondition(&hypervisor.Status.Conditions, metav1.Condition{
106105
Type: kvmv1.ConditionTypeTerminating,
107106
Status: metav1.ConditionStatus(nodeTerminationCondition.Status),
108107
Reason: nodeTerminationCondition.Reason,
109108
Message: nodeTerminationCondition.Message,
110109
})
111-
return ctrl.Result{}, hv.Status().Update(ctx, hypervisor)
110+
if changed {
111+
return ctrl.Result{}, hv.Status().Update(ctx, hypervisor)
112+
}
112113
}
113-
114114
return ctrl.Result{}, nil
115115
}
116116

internal/controller/hypervisor_controller_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ var _ = Describe("Hypervisor Controller", func() {
101101
Expect(k8sClient.Status().Update(ctx, resource)).To(Succeed())
102102

103103
By("Reconciling the created resource")
104-
for i := 0; i < 2; i++ {
104+
for i := 0; i < 3; i++ {
105105
_, err := hypervisorController.Reconcile(ctx, ctrl.Request{
106106
NamespacedName: types.NamespacedName{Name: resource.Name},
107107
})

0 commit comments

Comments
 (0)