• Kubernetes Submit Queue's avatar
    Merge pull request #60947 from fanzhangio/replace · f165ad7c
    Kubernetes Submit Queue authored
    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
    ```
    f165ad7c
Name
Last commit
Last update
..
api Loading commit data...
apis Loading commit data...
auth Loading commit data...
capabilities Loading commit data...
client Loading commit data...
cloudprovider Loading commit data...
controller Loading commit data...
credentialprovider Loading commit data...
features Loading commit data...
fieldpath Loading commit data...
generated Loading commit data...
kubeapiserver Loading commit data...
kubectl Loading commit data...
kubelet Loading commit data...
kubemark Loading commit data...
master Loading commit data...
printers Loading commit data...
probe Loading commit data...
proxy Loading commit data...
quota Loading commit data...
registry Loading commit data...
routes Loading commit data...
scheduler Loading commit data...
security Loading commit data...
securitycontext Loading commit data...
serviceaccount Loading commit data...
ssh Loading commit data...
util Loading commit data...
version Loading commit data...
volume Loading commit data...
watch/json Loading commit data...
windows/service Loading commit data...
.import-restrictions Loading commit data...
BUILD Loading commit data...
OWNERS Loading commit data...