From 5dc57f084c900364c0c0f0bebe88e47df14c82d4 Mon Sep 17 00:00:00 2001 From: michaelhtm <98621731+michaelhtm@users.noreply.github.com> Date: Fri, 18 Sep 2026 13:57:59 -0700 Subject: [PATCH] fix: report adoption/readonly not found errors in condition --- pkg/condition/condition.go | 15 +++++++++++++++ pkg/runtime/reconciler.go | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/pkg/condition/condition.go b/pkg/condition/condition.go index e903dee..244b79f 100644 --- a/pkg/condition/condition.go +++ b/pkg/condition/condition.go @@ -395,6 +395,21 @@ func WithTerminalCondition( return ko } +// WithRecoverableCondition returns a new AWSResource with the +// ConditionTypeRecoverable set based on the err parameter +func WithRecoverableCondition( + resource acktypes.AWSResource, + err error, +) acktypes.AWSResource { + ko := resource.DeepCopy() + + if err != nil { + errString := err.Error() + SetRecoverable(ko, corev1.ConditionTrue, &errString, nil) + } + return ko +} + // LateInitializationInProgress return true if ConditionTypeLateInitialized has "False" status // False status means that resource has LateInitializationConfig but has not been completely // late initialized yet. diff --git a/pkg/runtime/reconciler.go b/pkg/runtime/reconciler.go index 1e2d284..1d0d1b1 100644 --- a/pkg/runtime/reconciler.go +++ b/pkg/runtime/reconciler.go @@ -662,10 +662,10 @@ func (r *resourceReconciler) Sync( return latest, err } if adoptionPolicy == AdoptionPolicy_Adopt || isAdopted { - return nil, ackerr.AdoptedResourceNotFound + return ackcondition.WithRecoverableCondition(desired, ackerr.AdoptedResourceNotFound), ackerr.AdoptedResourceNotFound } if isReadOnly { - return nil, ackerr.ReadOnlyResourceNotFound + return ackcondition.WithRecoverableCondition(desired, ackerr.ReadOnlyResourceNotFound), ackerr.ReadOnlyResourceNotFound } if latest, err = r.createResource(ctx, rm, resolved); err != nil { return latest, err