@@ -141,6 +141,20 @@ func (r *BareMetalHostReconciler) Reconcile(ctx context.Context, request ctrl.Re
141
141
}
142
142
}
143
143
144
+ // If DataImage exists, add its ownerReference
145
+ dataImage := & metal3api.DataImage {}
146
+ err = r .Get (ctx , request .NamespacedName , dataImage )
147
+ if ! (err != nil || ownerReferenceExists (host , dataImage )) {
148
+ if err := controllerutil .SetControllerReference (host , dataImage , r .Scheme ()); err != nil {
149
+ return ctrl.Result {}, fmt .Errorf ("could not set bmh as controller, %w" , err )
150
+ }
151
+ if err := r .Update (ctx , dataImage ); err != nil {
152
+ return ctrl.Result {}, fmt .Errorf ("failure updating dataImage status, %w" , err )
153
+ }
154
+
155
+ return ctrl.Result {Requeue : true }, nil
156
+ }
157
+
144
158
hostData , err := r .reconcileHostData (ctx , host , request )
145
159
if err != nil {
146
160
return ctrl.Result {}, errors .Wrap (err , "Could not reconcile host data" )
@@ -1634,18 +1648,6 @@ func (r *BareMetalHostReconciler) handleDataImageActions(prov provisioner.Provis
1634
1648
return actionError {fmt .Errorf ("could not load dataImage, %w" , err )}
1635
1649
}
1636
1650
1637
- // Set ControllerReference to DataImage
1638
- if ! ownerReferenceExists (info .host , dataImage ) {
1639
- if err := controllerutil .SetControllerReference (info .host , dataImage , r .Scheme ()); err != nil {
1640
- return actionError {fmt .Errorf ("could not set bmh as controller, %w" , err )}
1641
- }
1642
- if err := r .Update (info .ctx , dataImage ); err != nil {
1643
- return actionError {fmt .Errorf ("failure updating dataImage status, %w" , err )}
1644
- }
1645
-
1646
- return actionContinue {}
1647
- }
1648
-
1649
1651
// Update reconciliation timestamp for dataImage
1650
1652
dataImage .Status .LastReconciled = & metav1.Time {Time : time .Now ()}
1651
1653
0 commit comments