aruraghuwanshi commented on PR #18: URL: https://github.com/apache/druid-operator/pull/18#issuecomment-4540853433
> Instead of using RollingUpdate with partition manipulation, why not just switch to MiddleManager StatefulSet to OnDelete update strategy. With OnDelete, Kubernetes never auto-replaces pods, the operator explicitly deletes each pod when ready. > > ``` > 1. Operator detects CurrentRevision != UpdateRevision > 2. Pick highest-ordinal outdated pod (mm-2) > 3. Disable worker + trigger handoff + wait for drain > 4. Delete the pod: sdk.Delete(ctx, &pod) > 5. StatefulSet controller auto-recreates mm-2 with new revision > 6. Wait for new mm-2 to be Ready > 7. Enable worker > 8. Repeat for mm-1, mm-0 > 9. Done > ``` > > What are your thoughts ? Just thinking from a perspective on lowering the hops in state machine. ( also reduce API calls to k8s API ). Yeah that's a good idea. I was clinging on to the partition strategy to primarily block unblock the rollout based on the drain status/failures. But I think OnDelete would help with that by giving the operator explicit control. Let me test that out locally and see how it works. Might reduce the calls and lean out the code a bit too. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
