mirror of
https://github.com/outbackdingo/kubernetes.git
synced 2026-02-16 16:00:30 +00:00
Automatic merge from submit-queue (batch tested with PRs 53391, 52349). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Beginning of rewrite apply merge-logic using visitor pattern. **Note**: This is not hooked up to anything. A release note will be added when this is wired into actual commands. Major changes: - Don't generate a patch, instead generate the merged object so it can be used with PUT - Separate tree parsing logic to collate items in a list from the delete / merge / replace / add logic when merging - Use openapi for merge strategy metadata so it works with extensions and version skew - Support multi-field mergekeys when merging lists - Support replace strategy for maps - Reduce complexity of generating order when merging lists - keep the locally defined order and append remote only-items Continue to support: - Explicitly setting fields to null - Merging lists of primitives - Don't randomize ordering when merging lists TODO: - Retain keys - Conflict detection **What this PR does / why we need it**: **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes kubernetes/kubectl#69 **Special notes for your reviewer**: **Release note**: ```release-note NONE ```