Skip to content

Commit 29515da

Browse files
committed
fix: ensure we mark resource as adopted adopt-or-create
Currently the `adopted` annotation was getting removed when the resource goes through update path during adopt-or-create adoption. These changes ensure the annotation is persisted in k8s.
1 parent 6a1bc57 commit 29515da

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

pkg/runtime/reconciler.go

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -730,13 +730,13 @@ func (r *resourceReconciler) updateResource(
730730
rm acktypes.AWSResourceManager,
731731
desired acktypes.AWSResource,
732732
latest acktypes.AWSResource,
733-
) (acktypes.AWSResource, error) {
734-
var err error
733+
) (updated acktypes.AWSResource, err error) {
735734
rlog := ackrtlog.FromContext(ctx)
736735
exit := rlog.Trace("r.updateResource")
737736
defer func() {
738737
exit(err)
739738
}()
739+
updated = latest
740740

741741
// Ensure the resource is managed
742742
if err = r.failOnResourceUnmanaged(ctx, latest); err != nil {
@@ -752,21 +752,24 @@ func (r *resourceReconciler) updateResource(
752752
"diff", delta.Differences,
753753
)
754754
rlog.Enter("rm.Update")
755-
latest, err = rm.Update(ctx, desired, latest, delta)
755+
updated, err = rm.Update(ctx, desired, latest, delta)
756756
rlog.Exit("rm.Update", err, "latest", latest)
757757
if err != nil {
758-
return latest, err
758+
return updated, err
759759
}
760760
// Ensure that we are patching any changes to the annotations/metadata and
761761
// the Spec that may have been set by the resource manager's successful
762762
// Update call above.
763-
latest, err = r.patchResourceMetadataAndSpec(ctx, rm, desired, latest)
763+
if IsAdopted(latest) {
764+
r.rd.MarkAdopted(updated)
765+
}
766+
updated, err = r.patchResourceMetadataAndSpec(ctx, rm, desired, updated)
764767
if err != nil {
765-
return latest, err
768+
return updated, err
766769
}
767770
rlog.Info("updated resource")
768771
}
769-
return latest, nil
772+
return updated, nil
770773
}
771774

772775
// lateInitializeResource calls AWSResourceManager.LateInitialize() method and

0 commit comments

Comments
 (0)