Beginning of rewrite apply merge-logic using visitor pattern.
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
Showing
pkg/kubectl/apply/BUILD
0 → 100644
pkg/kubectl/apply/doc.go
0 → 100644
pkg/kubectl/apply/element.go
0 → 100644
pkg/kubectl/apply/visitor.go
0 → 100644
Please
register
or
sign in
to comment