@@ -824,7 +824,7 @@ func NewReconciler(m manager.Manager, of resource.ManagedKind, o ...ReconcilerOp
824824 record : event .NewNopRecorder (),
825825 metricRecorder : NewNopMetricRecorder (),
826826 change : newNopChangeLogger (),
827- conditions : conditions .New ( ),
827+ conditions : new ( conditions.ObservedGenerationPropagationManager ),
828828 }
829829
830830 for _ , ro := range o {
@@ -885,7 +885,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
885885 log .Debug ("Reconciliation is paused either through the `spec.managementPolicies` or the pause annotation" , "annotation" , meta .AnnotationKeyReconciliationPaused )
886886 record .Event (managed , event .Normal (reasonReconciliationPaused , "Reconciliation is paused either through the `spec.managementPolicies` or the pause annotation" ,
887887 "annotation" , meta .AnnotationKeyReconciliationPaused ))
888- status .Mark (xpv1 .ReconcilePaused ())
888+ status .MarkConditions (xpv1 .ReconcilePaused ())
889889 // if the pause annotation is removed or the management policies changed, we will have a chance to reconcile
890890 // again and resume and if status update fails, we will reconcile again to retry to update the status
891891 return reconcile.Result {}, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
@@ -905,7 +905,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
905905 return reconcile.Result {Requeue : true }, nil
906906 }
907907 record .Event (managed , event .Warning (reasonManagementPolicyInvalid , err ))
908- status .Mark (xpv1 .ReconcileError (err ))
908+ status .MarkConditions (xpv1 .ReconcileError (err ))
909909 return reconcile.Result {}, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
910910 }
911911
@@ -930,7 +930,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
930930 return reconcile.Result {Requeue : true }, nil
931931 }
932932 record .Event (managed , event .Warning (reasonCannotUnpublish , err ))
933- status .Mark (xpv1 .Deleting (), xpv1 .ReconcileError (err ))
933+ status .MarkConditions (xpv1 .Deleting (), xpv1 .ReconcileError (err ))
934934 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
935935 }
936936 if err := r .managed .RemoveFinalizer (ctx , managed ); err != nil {
@@ -942,7 +942,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
942942 if kerrors .IsConflict (err ) {
943943 return reconcile.Result {Requeue : true }, nil
944944 }
945- status .Mark (xpv1 .Deleting (), xpv1 .ReconcileError (err ))
945+ status .MarkConditions (xpv1 .Deleting (), xpv1 .ReconcileError (err ))
946946 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
947947 }
948948
@@ -964,7 +964,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
964964 return reconcile.Result {Requeue : true }, nil
965965 }
966966 record .Event (managed , event .Warning (reasonCannotInitialize , err ))
967- status .Mark (xpv1 .ReconcileError (err ))
967+ status .MarkConditions (xpv1 .ReconcileError (err ))
968968 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
969969 }
970970
@@ -975,7 +975,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
975975 if meta .ExternalCreateIncomplete (managed ) {
976976 log .Debug (errCreateIncomplete )
977977 record .Event (managed , event .Warning (reasonCannotInitialize , errors .New (errCreateIncomplete )))
978- status .Mark (xpv1 .Creating (), xpv1 .ReconcileError (errors .New (errCreateIncomplete )))
978+ status .MarkConditions (xpv1 .Creating (), xpv1 .ReconcileError (errors .New (errCreateIncomplete )))
979979 return reconcile.Result {Requeue : false }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
980980 }
981981
@@ -1000,7 +1000,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
10001000 return reconcile.Result {Requeue : true }, nil
10011001 }
10021002 record .Event (managed , event .Warning (reasonCannotResolveRefs , err ))
1003- status .Mark (xpv1 .ReconcileError (err ))
1003+ status .MarkConditions (xpv1 .ReconcileError (err ))
10041004 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
10051005 }
10061006 }
@@ -1017,7 +1017,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
10171017 return reconcile.Result {Requeue : true }, nil
10181018 }
10191019 record .Event (managed , event .Warning (reasonCannotConnect , err ))
1020- status .Mark (xpv1 .ReconcileError (errors .Wrap (err , errReconcileConnect )))
1020+ status .MarkConditions (xpv1 .ReconcileError (errors .Wrap (err , errReconcileConnect )))
10211021 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
10221022 }
10231023 defer func () {
@@ -1045,15 +1045,15 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
10451045 return reconcile.Result {Requeue : true }, nil
10461046 }
10471047 record .Event (managed , event .Warning (reasonCannotObserve , err ))
1048- status .Mark (xpv1 .ReconcileError (errors .Wrap (err , errReconcileObserve )))
1048+ status .MarkConditions (xpv1 .ReconcileError (errors .Wrap (err , errReconcileObserve )))
10491049 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
10501050 }
10511051
10521052 // In the observe-only mode, !observation.ResourceExists will be an error
10531053 // case, and we will explicitly return this information to the user.
10541054 if ! observation .ResourceExists && policy .ShouldOnlyObserve () {
10551055 record .Event (managed , event .Warning (reasonCannotObserve , errors .New (errExternalResourceNotExist )))
1056- status .Mark (xpv1 .ReconcileError (errors .Wrap (errors .New (errExternalResourceNotExist ), errReconcileObserve )))
1056+ status .MarkConditions (xpv1 .ReconcileError (errors .Wrap (errors .New (errExternalResourceNotExist ), errReconcileObserve )))
10571057 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
10581058 }
10591059
@@ -1091,7 +1091,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
10911091 log .Info (errRecordChangeLog , "error" , err )
10921092 }
10931093 record .Event (managed , event .Warning (reasonCannotDelete , err ))
1094- status .Mark (xpv1 .Deleting (), xpv1 .ReconcileError (errors .Wrap (err , errReconcileDelete )))
1094+ status .MarkConditions (xpv1 .Deleting (), xpv1 .ReconcileError (errors .Wrap (err , errReconcileDelete )))
10951095 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
10961096 }
10971097
@@ -1122,7 +1122,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
11221122 return reconcile.Result {Requeue : true }, nil
11231123 }
11241124 record .Event (managed , event .Warning (reasonCannotUnpublish , err ))
1125- status .Mark (xpv1 .Deleting (), xpv1 .ReconcileError (err ))
1125+ status .MarkConditions (xpv1 .Deleting (), xpv1 .ReconcileError (err ))
11261126 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
11271127 }
11281128 if err := r .managed .RemoveFinalizer (ctx , managed ); err != nil {
@@ -1134,7 +1134,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
11341134 if kerrors .IsConflict (err ) {
11351135 return reconcile.Result {Requeue : true }, nil
11361136 }
1137- status .Mark (xpv1 .Deleting (), xpv1 .ReconcileError (err ))
1137+ status .MarkConditions (xpv1 .Deleting (), xpv1 .ReconcileError (err ))
11381138 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
11391139 }
11401140
@@ -1156,7 +1156,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
11561156 return reconcile.Result {Requeue : true }, nil
11571157 }
11581158 record .Event (managed , event .Warning (reasonCannotPublish , err ))
1159- status .Mark (xpv1 .ReconcileError (err ))
1159+ status .MarkConditions (xpv1 .ReconcileError (err ))
11601160 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
11611161 }
11621162
@@ -1168,7 +1168,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
11681168 if kerrors .IsConflict (err ) {
11691169 return reconcile.Result {Requeue : true }, nil
11701170 }
1171- status .Mark (xpv1 .ReconcileError (err ))
1171+ status .MarkConditions (xpv1 .ReconcileError (err ))
11721172 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
11731173 }
11741174
@@ -1187,7 +1187,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
11871187 return reconcile.Result {Requeue : true }, nil
11881188 }
11891189 record .Event (managed , event .Warning (reasonCannotUpdateManaged , errors .Wrap (err , errUpdateManaged )))
1190- status .Mark (xpv1 .Creating (), xpv1 .ReconcileError (errors .Wrap (err , errUpdateManaged )))
1190+ status .MarkConditions (xpv1 .Creating (), xpv1 .ReconcileError (errors .Wrap (err , errUpdateManaged )))
11911191 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
11921192 }
11931193
@@ -1224,7 +1224,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
12241224 if err := r .change .Log (ctx , managedPreOp , v1alpha1 .OperationType_OPERATION_TYPE_CREATE , err , creation .AdditionalDetails ); err != nil {
12251225 log .Info (errRecordChangeLog , "error" , err )
12261226 }
1227- status .Mark (xpv1 .Creating (), xpv1 .ReconcileError (errors .Wrap (err , errReconcileCreate )))
1227+ status .MarkConditions (xpv1 .Creating (), xpv1 .ReconcileError (errors .Wrap (err , errReconcileCreate )))
12281228 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
12291229 }
12301230
@@ -1253,7 +1253,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
12531253 return reconcile.Result {Requeue : true }, nil
12541254 }
12551255 record .Event (managed , event .Warning (reasonCannotUpdateManaged , errors .Wrap (err , errUpdateManagedAnnotations )))
1256- status .Mark (xpv1 .Creating (), xpv1 .ReconcileError (errors .Wrap (err , errUpdateManagedAnnotations )))
1256+ status .MarkConditions (xpv1 .Creating (), xpv1 .ReconcileError (errors .Wrap (err , errUpdateManagedAnnotations )))
12571257 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
12581258 }
12591259
@@ -1266,7 +1266,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
12661266 return reconcile.Result {Requeue : true }, nil
12671267 }
12681268 record .Event (managed , event .Warning (reasonCannotPublish , err ))
1269- status .Mark (xpv1 .Creating (), xpv1 .ReconcileError (err ))
1269+ status .MarkConditions (xpv1 .Creating (), xpv1 .ReconcileError (err ))
12701270 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
12711271 }
12721272
@@ -1276,7 +1276,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
12761276 // ready for use.
12771277 log .Debug ("Successfully requested creation of external resource" )
12781278 record .Event (managed , event .Normal (reasonCreated , "Successfully requested creation of external resource" ))
1279- status .Mark (xpv1 .Creating (), xpv1 .ReconcileSuccess ())
1279+ status .MarkConditions (xpv1 .Creating (), xpv1 .ReconcileSuccess ())
12801280 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
12811281 }
12821282
@@ -1291,7 +1291,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
12911291 if err := r .client .Update (ctx , managed ); err != nil {
12921292 log .Debug (errUpdateManaged , "error" , err )
12931293 record .Event (managed , event .Warning (reasonCannotUpdateManaged , err ))
1294- status .Mark (xpv1 .ReconcileError (errors .Wrap (err , errUpdateManaged )))
1294+ status .MarkConditions (xpv1 .ReconcileError (errors .Wrap (err , errUpdateManaged )))
12951295 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
12961296 }
12971297 }
@@ -1325,7 +1325,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
13251325 if ! policy .ShouldUpdate () {
13261326 reconcileAfter := r .pollIntervalHook (managed , r .pollInterval )
13271327 log .Debug ("Skipping update due to managementPolicies. Reconciliation succeeded" , "requeue-after" , time .Now ().Add (reconcileAfter ))
1328- status .Mark (xpv1 .ReconcileSuccess ())
1328+ status .MarkConditions (xpv1 .ReconcileSuccess ())
13291329 return reconcile.Result {RequeueAfter : reconcileAfter }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
13301330 }
13311331
@@ -1341,7 +1341,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
13411341 log .Info (errRecordChangeLog , "error" , err )
13421342 }
13431343 record .Event (managed , event .Warning (reasonCannotUpdate , err ))
1344- status .Mark (xpv1 .ReconcileError (errors .Wrap (err , errReconcileUpdate )))
1344+ status .MarkConditions (xpv1 .ReconcileError (errors .Wrap (err , errReconcileUpdate )))
13451345 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
13461346 }
13471347
@@ -1357,7 +1357,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
13571357 // not, we requeue explicitly, which will trigger backoff.
13581358 log .Debug ("Cannot publish connection details" , "error" , err )
13591359 record .Event (managed , event .Warning (reasonCannotPublish , err ))
1360- status .Mark (xpv1 .ReconcileError (err ))
1360+ status .MarkConditions (xpv1 .ReconcileError (err ))
13611361 return reconcile.Result {Requeue : true }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
13621362 }
13631363
@@ -1369,6 +1369,6 @@ func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Request) (resu
13691369 reconcileAfter := r .pollIntervalHook (managed , r .pollInterval )
13701370 log .Debug ("Successfully requested update of external resource" , "requeue-after" , time .Now ().Add (reconcileAfter ))
13711371 record .Event (managed , event .Normal (reasonUpdated , "Successfully requested update of external resource" ))
1372- status .Mark (xpv1 .ReconcileSuccess ())
1372+ status .MarkConditions (xpv1 .ReconcileSuccess ())
13731373 return reconcile.Result {RequeueAfter : reconcileAfter }, errors .Wrap (r .client .Status ().Update (ctx , managed ), errUpdateManagedStatus )
13741374}
0 commit comments