New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Server-Side Apply status wiping #99661
Conversation
Hi @kevindelgado. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/assign @liggitt We need to fix one broken test case in status_test, but wanted to get your eyes on this in the meantime @liggitt to begin reviewing this approach to status wiping. The first commit is from @kwiesmueller work from back in July #92809 cc @apelisse |
/ok-to-test |
/test pull-kubernetes-e2e-kind |
/test pull-kubernetes-integration |
Does this need to have a 1.21 milestone label in order to land in the release @apelisse? |
I don't think it does, but it wouldn't hurt |
/milestone v1.21 |
/lgtm |
Adds and implements ResetFieldsProvder interface in order to ensure that the fieldmanager no longer owns fields that get reset before the object is persisted. Co-authored-by: Kevin Wiesmueller <kwiesmul@redhat.com> Co-authored-by: Kevin Delgado <kevindelgado@google.com>
/lgtm |
Thanks for finishing the job! |
I manually removed the "needs-rebase" label, I'm not sure why the bot didn't. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is passing in newObj for both args, which means ResetObjectMetaForStatus is a no-op.
Also, this previously allowed updating finalizers via status updates, and ResetObjectMetaForStatus does not allow that. The crd finalizer depends on updating finalizers via a status update API call, so simply fixing this to pass newObj/oldObj correctly will break the CRD finalizer controller.
What type of PR is this?
/kind bug
What this PR does / why we need it:
Implements kubernetes/enhancements#1123
Adds the ResetFieldsProvider interface and implements it for all strategies.
Which issue(s) this PR fixes:
Fixes #75564
Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: