Skip to content

Conversation

twobiers
Copy link

@twobiers twobiers commented Jun 25, 2025

Description of your changes

This PR ensures that critical annotations are stored when a resource is created. Some resources have non-deterministic external-names, which are never updated when the mangementPolicies don't contain LateInitialize.
So far, there is an implicit contract that an Observation updating the external-name will be eventually stored as part of the LateInitialize process. However, that should only affect updates to the spec and not the annotations like external-name.
More Context can be found here: crossplane/crossplane#5918

I'm not sure how a unit test can be expressed, as I'm not really familiar with the setup. If the change is approved, I think it would make sense to backport it aswell.

Fixes:

Maybe fixes aswell:

I have:

Need help with this checklist? See the cheat sheet.

@twobiers twobiers requested a review from a team as a code owner June 25, 2025 17:44
@twobiers twobiers requested a review from phisco June 25, 2025 17:44
@jeanduplessis
Copy link
Contributor

@twobiers, we are interested in progressing the solution you propose in this PR. Are you currently able to give this attention? If so, would you mind resolving the conflicts and pushing up an updated version? If you aren't currently able to give this attention would you be happy for us to take it over and get it over the line (you'll be credited with the contribution)?

As the UpdateCriticialAnnotations function is now not exclusively called in the creation process, we have to ensure no other fields like the spec are updated, so we don't interfer with the normal LateInitialize logic

Signed-off-by: twobiers <[email protected]>
@twobiers
Copy link
Author

twobiers commented Sep 4, 2025

@jeanduplessis Thanks for your kind comment. I'm able to work on this and have rebased the branch onto master.

@jeanduplessis
Copy link
Contributor

Thanks, @twobiers. @erhancagirici will be doing a thorough review in the next few days, with a specific focus on making sure it's compatible with Upjet's async approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants