datainfrahq / druid-operator

Apache Druid On Kubernetes
Other
100 stars 39 forks source link

Implement component-level Deployment strategies #161

Closed pagrawal10 closed 2 months ago

pagrawal10 commented 4 months ago

There are many Druid components. Each component needs to be deployed in a different manner. The current druid-operator code does not differentiate between components and the Create and Deploy functions are written in a component agnostic manner. I want to implement a component-specific deployment strategy like deploying non-leader pod first for overlord and coordinator. @AdheipSingh , How do you suggest I create these component specific files and integrate it with the existing flow for deployment?

AdheipSingh commented 4 months ago

Operator core logic does perform specific component deployment strategy. Operator deployment strategies in current state are truly built on what k8s supports and how we relate k8s deployment model to druid components. Also stating that the core handler functions are written in a very functional way and are more or less immutable. Though i feel we can work on the code base to add abstractions to add in specific deployment logics.

On the other hand, i would like to hear a more detailed usecase/proposal. Why do we need non-leader pod for overlords ? Doesn't leader election happen b/w the pods ?

AdheipSingh commented 2 months ago

Feel free to re-open this if you have an exact usecase. Also submit a proposal on what/how to design/implement. Thank you !