Skip to content

Commit 2eda98d

Browse files
fix(vm): Add react on create virtual machine event for WorkloadUpdater controller (#1293)
Add react on create virtual machine event for WorkloadUpdater controller Signed-off-by: Yaroslav Borbat <[email protected]>
1 parent 6a761b3 commit 2eda98d

File tree

1 file changed

+22
-16
lines changed
  • images/virtualization-artifact/pkg/controller/workload-updater/internal/watcher

1 file changed

+22
-16
lines changed

images/virtualization-artifact/pkg/controller/workload-updater/internal/watcher/vm.go

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"fmt"
2121

2222
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23+
"sigs.k8s.io/controller-runtime/pkg/client"
2324
"sigs.k8s.io/controller-runtime/pkg/controller"
2425
"sigs.k8s.io/controller-runtime/pkg/event"
2526
"sigs.k8s.io/controller-runtime/pkg/handler"
@@ -46,28 +47,33 @@ func (w *VMWatcher) Watch(mgr manager.Manager, ctr controller.Controller) error
4647
source.Kind(mgr.GetCache(), &v1alpha2.VirtualMachine{}),
4748
&handler.EnqueueRequestForObject{},
4849
predicate.Funcs{
49-
CreateFunc: func(e event.CreateEvent) bool { return false },
50+
CreateFunc: func(e event.CreateEvent) bool {
51+
return predicateVirtualMachine(e.Object)
52+
},
5053
DeleteFunc: func(e event.DeleteEvent) bool { return false },
5154
UpdateFunc: func(e event.UpdateEvent) bool {
52-
vm, ok := e.ObjectNew.(*v1alpha2.VirtualMachine)
53-
if !ok {
54-
return false
55-
}
56-
57-
c, _ := conditions.GetCondition(vmcondition.TypeFirmwareUpToDate, vm.Status.Conditions)
58-
outOfDate := c.Status == metav1.ConditionFalse
59-
60-
c, _ = conditions.GetCondition(vmcondition.TypeRunning, vm.Status.Conditions)
61-
running := c.Status == metav1.ConditionTrue
62-
63-
c, _ = conditions.GetCondition(vmcondition.TypeMigrating, vm.Status.Conditions)
64-
migrating := c.Status == metav1.ConditionTrue
65-
66-
return outOfDate && running && !migrating
55+
return predicateVirtualMachine(e.ObjectNew)
6756
},
6857
},
6958
); err != nil {
7059
return fmt.Errorf("error setting watch on VM: %w", err)
7160
}
7261
return nil
7362
}
63+
64+
func predicateVirtualMachine(obj client.Object) bool {
65+
vm, ok := obj.(*v1alpha2.VirtualMachine)
66+
if !ok {
67+
return false
68+
}
69+
c, _ := conditions.GetCondition(vmcondition.TypeFirmwareUpToDate, vm.Status.Conditions)
70+
outOfDate := c.Status == metav1.ConditionFalse
71+
72+
c, _ = conditions.GetCondition(vmcondition.TypeRunning, vm.Status.Conditions)
73+
running := c.Status == metav1.ConditionTrue
74+
75+
c, _ = conditions.GetCondition(vmcondition.TypeMigrating, vm.Status.Conditions)
76+
migrating := c.Status == metav1.ConditionTrue
77+
78+
return outOfDate && running && !migrating
79+
}

0 commit comments

Comments
 (0)