k3s/pkg/kubectl/apply
Kubernetes Submit Queue f165ad7cd2
Merge pull request #60947 from fanzhangio/replace
Automatic merge from submit-queue (batch tested with PRs 60990, 60947, 45275, 60565, 61091). 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>.

Add conflict detection feature to apply strategy

- Add DetectConflictor interface on Element level. Implemented it for particular elements.
- If Options.FailOnConflict is enabled, Merge will detect conflict by invoking doConflictDecect for particular element,
  returning ConflictError with details.
- Add tests, including use case examples and illustration. For example: list, map, and complicated combination.

**What this PR does / why we need it**:
Apply is being rewritten under pkg/kubectl/apply/strategy based on visitor pattern. The new merge and replace code should check for conflicts between the recorded value and the remote value, and optionally return an error if they do not match with the field and details. A conflict is if the same field is specified in BOTH the recorded and the remote values of an object, but does not match.

**Which issue(s) this PR fixes**:
Fixes #60945 
https://github.com/kubernetes/kubectl/issues/97

**Release note**:

```release-note
NONE
```
2018-03-30 11:53:07 -07:00
..
parse Autogenerated: hack/update-bazel.sh 2018-02-16 13:43:01 -08:00
strategy Add conflict detection feature to apply strategy 2018-03-23 01:56:20 -07:00
BUILD Add conflict detection feature to apply strategy 2018-03-23 01:56:20 -07:00
doc.go
element.go Merge pull request #60947 from fanzhangio/replace 2018-03-30 11:53:07 -07:00
empty_element.go
error.go Add conflict detection feature to apply strategy 2018-03-23 01:56:20 -07:00
list_element.go Add conflict detection feature to apply strategy 2018-03-23 01:56:20 -07:00
map_element.go Add conflict detection feature to apply strategy 2018-03-23 01:56:20 -07:00
primitive_element.go Add conflict detection feature to apply strategy 2018-03-23 01:56:20 -07:00
type_element.go Add conflict detection feature to apply strategy 2018-03-23 01:56:20 -07:00
visitor.go