Merge pull request #132 from bigkevmcd/patch-status-fix
Update ImageUpdateAutomation Status with Patch.
This commit is contained in:
commit
daad724ad2
|
|
@ -127,7 +127,8 @@ func (r *ImageUpdateAutomationReconciler) Reconcile(ctx context.Context, req ctr
|
||||||
// annotation if it's there
|
// annotation if it's there
|
||||||
if token, ok := meta.ReconcileAnnotationValue(auto.GetAnnotations()); ok {
|
if token, ok := meta.ReconcileAnnotationValue(auto.GetAnnotations()); ok {
|
||||||
auto.Status.SetLastHandledReconcileRequest(token)
|
auto.Status.SetLastHandledReconcileRequest(token)
|
||||||
if err := r.Status().Update(ctx, &auto); err != nil {
|
|
||||||
|
if err := r.patchStatus(ctx, req, auto.Status); err != nil {
|
||||||
return ctrl.Result{Requeue: true}, err
|
return ctrl.Result{Requeue: true}, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -136,7 +137,7 @@ func (r *ImageUpdateAutomationReconciler) Reconcile(ctx context.Context, req ctr
|
||||||
failWithError := func(err error) (ctrl.Result, error) {
|
failWithError := func(err error) (ctrl.Result, error) {
|
||||||
r.event(ctx, auto, events.EventSeverityError, err.Error())
|
r.event(ctx, auto, events.EventSeverityError, err.Error())
|
||||||
imagev1.SetImageUpdateAutomationReadiness(&auto, metav1.ConditionFalse, meta.ReconciliationFailedReason, err.Error())
|
imagev1.SetImageUpdateAutomationReadiness(&auto, metav1.ConditionFalse, meta.ReconciliationFailedReason, err.Error())
|
||||||
if err := r.Status().Update(ctx, &auto); err != nil {
|
if err := r.patchStatus(ctx, req, auto.Status); err != nil {
|
||||||
log.Error(err, "failed to reconcile")
|
log.Error(err, "failed to reconcile")
|
||||||
}
|
}
|
||||||
return ctrl.Result{Requeue: true}, err
|
return ctrl.Result{Requeue: true}, err
|
||||||
|
|
@ -152,7 +153,7 @@ func (r *ImageUpdateAutomationReconciler) Reconcile(ctx context.Context, req ctr
|
||||||
if client.IgnoreNotFound(err) == nil {
|
if client.IgnoreNotFound(err) == nil {
|
||||||
imagev1.SetImageUpdateAutomationReadiness(&auto, metav1.ConditionFalse, imagev1.GitNotAvailableReason, "referenced git repository is missing")
|
imagev1.SetImageUpdateAutomationReadiness(&auto, metav1.ConditionFalse, imagev1.GitNotAvailableReason, "referenced git repository is missing")
|
||||||
log.Error(err, "referenced git repository does not exist")
|
log.Error(err, "referenced git repository does not exist")
|
||||||
if err := r.Status().Update(ctx, &auto); err != nil {
|
if err := r.patchStatus(ctx, req, auto.Status); err != nil {
|
||||||
return ctrl.Result{Requeue: true}, err
|
return ctrl.Result{Requeue: true}, err
|
||||||
}
|
}
|
||||||
return ctrl.Result{}, nil // and assume we'll hear about it when it arrives
|
return ctrl.Result{}, nil // and assume we'll hear about it when it arrives
|
||||||
|
|
@ -219,8 +220,7 @@ func (r *ImageUpdateAutomationReconciler) Reconcile(ctx context.Context, req ctr
|
||||||
// no sense rescheduling until this resource changes
|
// no sense rescheduling until this resource changes
|
||||||
r.event(ctx, auto, events.EventSeverityInfo, "no known update strategy in spec, failing trivially")
|
r.event(ctx, auto, events.EventSeverityInfo, "no known update strategy in spec, failing trivially")
|
||||||
imagev1.SetImageUpdateAutomationReadiness(&auto, metav1.ConditionFalse, imagev1.NoStrategyReason, "no known update strategy is given for object")
|
imagev1.SetImageUpdateAutomationReadiness(&auto, metav1.ConditionFalse, imagev1.NoStrategyReason, "no known update strategy is given for object")
|
||||||
err := r.Status().Update(ctx, &auto)
|
return ctrl.Result{}, r.patchStatus(ctx, req, auto.Status)
|
||||||
return ctrl.Result{}, err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log.V(debug).Info("ran updates to working dir", "working", tmp)
|
log.V(debug).Info("ran updates to working dir", "working", tmp)
|
||||||
|
|
@ -260,7 +260,7 @@ func (r *ImageUpdateAutomationReconciler) Reconcile(ctx context.Context, req ctr
|
||||||
// Getting to here is a successful run.
|
// Getting to here is a successful run.
|
||||||
auto.Status.LastAutomationRunTime = &metav1.Time{Time: now}
|
auto.Status.LastAutomationRunTime = &metav1.Time{Time: now}
|
||||||
imagev1.SetImageUpdateAutomationReadiness(&auto, metav1.ConditionTrue, meta.ReconciliationSucceededReason, statusMessage)
|
imagev1.SetImageUpdateAutomationReadiness(&auto, metav1.ConditionTrue, meta.ReconciliationSucceededReason, statusMessage)
|
||||||
if err = r.Status().Update(ctx, &auto); err != nil {
|
if err := r.patchStatus(ctx, req, auto.Status); err != nil {
|
||||||
return ctrl.Result{Requeue: true}, err
|
return ctrl.Result{Requeue: true}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -291,6 +291,21 @@ func (r *ImageUpdateAutomationReconciler) SetupWithManager(mgr ctrl.Manager) err
|
||||||
Complete(r)
|
Complete(r)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *ImageUpdateAutomationReconciler) patchStatus(ctx context.Context,
|
||||||
|
req ctrl.Request,
|
||||||
|
newStatus imagev1.ImageUpdateAutomationStatus) error {
|
||||||
|
|
||||||
|
var auto imagev1.ImageUpdateAutomation
|
||||||
|
if err := r.Get(ctx, req.NamespacedName, &auto); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
patch := client.MergeFrom(auto.DeepCopy())
|
||||||
|
auto.Status = newStatus
|
||||||
|
|
||||||
|
return r.Status().Patch(ctx, &auto, patch)
|
||||||
|
}
|
||||||
|
|
||||||
// intervalOrDefault gives the interval specified, or if missing, the default
|
// intervalOrDefault gives the interval specified, or if missing, the default
|
||||||
func intervalOrDefault(auto *imagev1.ImageUpdateAutomation) time.Duration {
|
func intervalOrDefault(auto *imagev1.ImageUpdateAutomation) time.Duration {
|
||||||
if auto.Spec.Interval.Duration < time.Second {
|
if auto.Spec.Interval.Duration < time.Second {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue