-
Notifications
You must be signed in to change notification settings - Fork 706
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
KEP-2170: Replace UPSERT operation for the objects with SSA PATCH #2297
Comments
I'm wondering if @varshaprasad96 has knowledge and is interested in this enhancement. |
/remove-label lifecycle/needs-triage |
@tenzen-y Sure, I can take this up, SSA would help in managing conflicts better. |
/assign |
Thank you for taking this issue. One question is I'm curious if we should take a similar approach as cluster-api so that we can directly handle the client.Object and reduce unneeded reconciliation. But, now, I'm not clear which fields we should drop or add: https://github.com/kubernetes-sigs/cluster-api/blob/578b70f79659003a005f390cc022cf17f151cebc/internal/util/ssa/patch.go#L64 |
IIUC, CAPI uses dry run and a cache specifically for SSA to determine if update request is to be sent by calculating the diff b/w server and expected state. This definitely has benefits - especially given it is used in places where multiple controllers are acting on the same object so no. of reconcile calls are indeed a load on API server (I'm not super familiar with the CAPI controllers implementation, so feel free to correct me if I'm wrong). I'm curious if reconciliations on |
That is the same with my understanding to CAPI SSA PATCH mechanism.
Actually, the dry run calculation mechanism could bring us to mitigate conflicts since a set of resources (client.Object) like JobSet is interested by TrainJob controllers and JobSet controllers. |
What you would like to be added?
Currently, the TrainJob reconciler does UPSERT operations to create or update objects.
training-operator/pkg/controller.v2/trainjob_controller.go
Lines 85 to 105 in 9e04bdd
Doing only the SSA PATCH operation for CREATE and UPDATE would be great.
Why is this needed?
Eliminating UPSERT operations could mitigate the complexity of the object operating mechanism, and improve performance by reduced API calls.
Love this feature?
Give it a 👍 We prioritize the features with most 👍
The text was updated successfully, but these errors were encountered: