Skip to content

Commit ef24054

Browse files
Merge pull request #2238 from hroyrh/dataimage-force-delete
🐛 Set ownerReference for dataImage during BMH Reconcile
2 parents 2d8052a + 0efbb13 commit ef24054

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

controllers/metal3.io/baremetalhost_controller.go

+14-12
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,20 @@ func (r *BareMetalHostReconciler) Reconcile(ctx context.Context, request ctrl.Re
141141
}
142142
}
143143

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+
144158
hostData, err := r.reconcileHostData(ctx, host, request)
145159
if err != nil {
146160
return ctrl.Result{}, errors.Wrap(err, "Could not reconcile host data")
@@ -1634,18 +1648,6 @@ func (r *BareMetalHostReconciler) handleDataImageActions(prov provisioner.Provis
16341648
return actionError{fmt.Errorf("could not load dataImage, %w", err)}
16351649
}
16361650

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-
16491651
// Update reconciliation timestamp for dataImage
16501652
dataImage.Status.LastReconciled = &metav1.Time{Time: time.Now()}
16511653

0 commit comments

Comments
 (0)