Fix noop granular case for atomic<->granular schema changes #176
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.
If the managed fields for a complex type has no children fields (e.g.
emptyrDir: {}), and the live object has not fields, skip reconciliation with schemas entirely.Fixes the integration test failure in k8s: https://prow.k8s.io/view/gs/kubernetes-jenkins/pr-logs/pull/93901/pull-kubernetes-integration/1311377692632813568. How I reproduced:
Before this fix,
emptyDir: {}would match in the fieldset because reconciliation created a replacement fieldset for the emptyDir that has both a Member and an empty Children list (created as a side effect of calling descendToPath), which prevented it from being properly removed when deployment-after.yaml was applied and the emptyDir was removed entirely and replaced with a hostPath.