feat: add Server-Side Apply for object synchronization#178
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Hi @blut. Thanks for your PR. I'm waiting for a kcp-dev 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. DetailsInstructions 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-sigs/prow repository. |
on-behalf-of: @eon-se opensource@eon.com Signed-off-by: Hannes Blut <hannes.blut.external@eon.com>
19a7ea0 to
3470854
Compare
|
/ok-to-test |
|
@blut: The following test failed, say
DetailsInstructions 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-sigs/prow repository. I understand the commands that are listed here. |
|
@blut you PR needs changing as we did some upstream multicluster-runtimen changes |
|
If SSA now preserves ownership of fields, does this influence how we keep track of previous states to form proper patches? |
I think it could, but I didn't bother changing any implementation, to avoid breaking behaviour. That's the reason for the flag as well. This was to get a first discussion started. Based on my initial thoughts: With SSA we could remove the stored state and rely on SSA to compute the correct merged state. There needs to be some thought about mutating webhooks, to avoid reconcile loops. |
on-behalf-of: @eon-se opensource@eon.com
Summary
Introduce an opt-in --enable-server-side-apply flag that switches the
sync controller from client-side merge patches (backed by a last-known-
state secret) to Kubernetes Server-Side Apply with a stable field
manager ("api-syncagent/").
SSA preserves fields owned by other controllers, notably
Crossplane's spec.resourceRef on downstream claims. This prevents
the full-update fallback from clobbering those fields and creating
duplicate composite resources.
Key changes:
single Apply round-trip with ForceOwnership to recover from prior
client-side field managers
What Type of PR Is This?
/kind feature
Related Issue(s)
Fixes #
Release Notes