From 1bf682ab4f683d830003687fc8b878779b80acc7 Mon Sep 17 00:00:00 2001 From: Julian Wefers <851823+jwefers@users.noreply.github.com> Date: Tue, 17 Feb 2026 08:27:00 +0100 Subject: [PATCH] Plugin SDK: properly set ResourceUpToDate even in ObserveOnly --- pkg/controller/external_tfpluginsdk.go | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/pkg/controller/external_tfpluginsdk.go b/pkg/controller/external_tfpluginsdk.go index ad3334ed..2ae30b58 100644 --- a/pkg/controller/external_tfpluginsdk.go +++ b/pkg/controller/external_tfpluginsdk.go @@ -518,18 +518,9 @@ func (n *terraformPluginSDKExternal) Observe(ctx context.Context, mg xpresource. diffState.ID = "" } - n.instanceDiff = nil - policySet := sets.New[xpv1.ManagementAction](mg.(resource.Terraformed).GetManagementPolicies()...) - observeOnlyPolicy := sets.New(xpv1.ManagementActionObserve) - isObserveOnlyPolicy := policySet.Equal(observeOnlyPolicy) - if !isObserveOnlyPolicy || !n.isManagementPoliciesEnabled { - n.instanceDiff, err = n.getResourceDataDiff(mg.(resource.Terraformed), ctx, diffState, resourceExists) - if err != nil { - return managed.ExternalObservation{}, errors.Wrap(err, "cannot compute the instance diff") - } - } - if n.instanceDiff == nil { - n.instanceDiff = tf.NewInstanceDiff() + n.instanceDiff, err = n.getResourceDataDiff(mg.(resource.Terraformed), ctx, diffState, resourceExists) + if err != nil { + return managed.ExternalObservation{}, errors.Wrap(err, "cannot compute the instance diff") } hasDiff := !n.instanceDiff.Empty() @@ -565,6 +556,7 @@ func (n *terraformPluginSDKExternal) Observe(ctx context.Context, mg xpresource. return managed.ExternalObservation{}, errors.Wrap(err, "cannot marshal the attributes of the new state for late-initialization") } + policySet := sets.New[xpv1.ManagementAction](mg.(resource.Terraformed).GetManagementPolicies()...) policyHasLateInit := policySet.HasAny(xpv1.ManagementActionLateInitialize, xpv1.ManagementActionAll) if policyHasLateInit { specUpdateRequired, err = mg.(resource.Terraformed).LateInitialize(buff)