feat(core): support resource dependency ordering during reconciliation#752
Merged
fhussonnois merged 1 commit intomainfrom Apr 8, 2026
Merged
Conversation
Contributor
Security Scan ResultsVulnerabilities detected: Scanned by Trivy |
Resource types within a provider are now reconciled in a deterministic order based on @ReconciliationOrder annotations or programmatic registration. Lower values are processed first during creation and last during deletion. Cross-provider ordering is handled by the existing Provider Groups feature (list order = execution order). Closes #744
ed0e3bc to
cd840b0
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Summary
@ReconciliationOrderannotation for declaring within-provider resource type ordering (lower values = reconciled first)DefaultApi.applyPatchesAndGetResults()before processing, with alphabetical tiebreaker for determinismWithin-provider ordering applied to:
Design decisions
@DependsOn/ DAG — avoids Terraform-style complexity (cycles, state, implicit references)setReconciliationOrder()during registration (annotations get wiped by jsonschema2pojo); hand-written models use@ReconciliationOrderannotationCloses #744
Test plan
ReconciliationOrderTest— annotation extraction, defaults, setterReconciliationOrderingTest— ascending sort for create, descending for delete, alphabetical tiebreakerjikkou applywith mixed Iceberg resources, verify Namespace created before Table before View in logs