Skip to content

[eno][part1/2] Continue synthesis with incomplete ResourceSlice history - #651

Open
Ruinan Liu (ruinan-liu) wants to merge 3 commits into
mainfrom
users/ruinanliu/Add-Tombstone-Recovery
Open

[eno][part1/2] Continue synthesis with incomplete ResourceSlice history#651
Ruinan Liu (ruinan-liu) wants to merge 3 commits into
mainfrom
users/ruinanliu/Add-Tombstone-Recovery

Conversation

@ruinan-liu

Copy link
Copy Markdown
Collaborator

Allow synthesis to proceed when historical ResourceSlice references are nil, empty, or point to missing objects, instead of blocking on unavailable history.

• Generate desired resources and tombstones using the historical slices that remain available.
• Set  TombstoneRecoveryRequired  when history is incomplete or no current synthesis exists, and carry the flag forward across subsequent syntheses.
• Allow reconstitution to skip unavailable previous history while preserving strict loading of current desired resources and existing handling of non-404 API errors.
• Handle malformed references safely in resynthesis requests, cleanup, and not-ready diagnostics.
• Include the recovery flag in the Composition CRD schema.

This is Part 1 only: the flag does not block synthesis or reconciliation. Recovering deletions from unavailable history and clearing the flag are deferred to a later change.

Testing

Added 36 test groups with 170 subtests covering unit, executor-functional, and envtest controller-integration scenarios. All new tests pass, including race checks.

@ruinan-liu
Ruinan Liu (ruinan-liu) marked this pull request as draft September 11, 2026 01:13
@ruinan-liu
Ruinan Liu (ruinan-liu) marked this pull request as ready for review September 11, 2026 17:03
@ruinan-liu Ruinan Liu (ruinan-liu) changed the title [eno] Continue synthesis with incomplete ResourceSlice history [eno][part1/2] Continue synthesis with incomplete ResourceSlice history Sep 11, 2026
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.

1 participant