Repository navigation
docs: clarify patch merge semantics - #2771
Open
ANAMASGARD wants to merge 1 commit into
Open
ANAMASGARD wants to merge 1 commit into
ANAMASGARD wants to merge 1 commit into
Conversation
Signed-off-by: Gaurav Chaudhary <chaudharygaurav2004@gmail.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Explanation
Chainsaw’s native
patchoperation uses JSON Merge Patch semantics. When users provide a sparse Pod container entry, the entirespec.containersarray is replaced, which can remove defaulted or injected fields and cause Kubernetes to reject the update.This PR documents the existing behavior and adds regression coverage. It does not change runtime patch semantics or introduce a new patch mode.
Related issue
Fixes #2764
Proposed Changes
patch:types.MergePatchType;resourceVersion;containersarray as-is;resources.null, and array behavior.scriptoperation as the precise-field workaround.Checklist
Further Comments
This PR intentionally does not make sparse native Pod image patches succeed. That would require a separate maintainer-approved runtime/API design.
Validation performed:
go test ./pkg/engine/operations/patch -count=1— PASSgo test ./pkg/client -count=1— PASSgo test ./pkg/engine/operations/... -count=1— PASSmkdocs build -f ./website/mkdocs.yaml— PASSgit diff --check— PASSgo test ./... -count=1— BLOCKED by the environment’s disk-quota limit while compiling Kubernetes dependencies.