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
Deploy default and support custom affinities in our operators #323
Comments
@nightkr @lfrancke and @soenkeliebau briefly discussed this yesterday and decided on a way forward. The main discussion was whether it would be sufficient to allow overriding this as part of a generic safety-valve type of functionality where the user is allowed to specify pod_templates and the operator merges these into the pods it would create. We decided that affinities are sufficiently common that we want to expose this as a fully supported functionality, instead of relying on overrides. Overrides will also be implemented, but under a separate ticket. To this effect we will look into adding Option<PodAffinitiy> and Option<PodAntiAffinity> to our structs. If these are not defined the operators should add sensible default affinities, like the ones mentioned in the ticket. If these are defined they should override the default affinities. To suppress affinites completely these should be set to |
I didn't look into it much, but will be also be able to co-locate roles? I.e. for druid, the broker and router should ideally run on the same node (see here). Can we also define that I want my Superset to always run preferably run next to the Druid Broker? Maybe that's already a bit advanced, just some ideas :) |
This looks like a good chance to introduce first class support for pod templates. These would be merged with templates generated by the operators.. Then, not only affinities can be customized. |
That was my initial thought as well. After some discussion I was convinced that a "generic" podOverwrite will still need some time as well as development until ready and we need this feature rather quick. |
I understand the complexity argument and I agree. Still, we could design the manifest structure now in such a way that doesn't require breaking changes in the future. |
## Description For stackabletech/issues#323
# Description For stackabletech/issues#323 Co-authored-by: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com>
# Description For stackabletech/issues#323 ``` k get pod -l app.kubernetes.io/name=hdfs -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES simple-hdfs-datanode-default-0 1/1 Running 0 6m55s 10.210.95.85 default-fj5utf2erz <none> <none> simple-hdfs-datanode-default-1 1/1 Running 0 3m31s 10.212.53.91 default-47v42ahsci <none> <none> simple-hdfs-datanode-default-2 1/1 Running 0 2m46s 10.210.48.212 default-se3dl3u4yy <none> <none> simple-hdfs-datanode-default-3 1/1 Running 0 2m7s 10.217.17.211 default-7z4lhciepb <none> <none> simple-hdfs-datanode-default-4 1/1 Running 0 57s 10.209.135.145 default-dsd3qljwbd <none> <none> simple-hdfs-journalnode-default-0 1/1 Running 0 6m56s 10.210.95.84 default-fj5utf2erz <none> <none> simple-hdfs-namenode-default-0 2/2 Running 0 4m34s 10.210.95.86 default-fj5utf2erz <none> <none> simple-hdfs-namenode-default-1 2/2 Running 0 4m56s 10.212.53.90 default-47v42ahsci <none> <none> ``` Co-authored-by: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com>
# Description For stackabletech/issues#323 Co-authored-by: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com>
# Description Part of stackabletech/issues#323
# Description Part of stackabletech/issues#323 CI https://ci.stackable.tech/view/02%20Operator%20Tests%20(custom)/job/spark-k8s-operator-it-custom/68/ Co-authored-by: Sebastian Bernauer <sebastian.bernauer@stackable.de>
All done! Thank you very much! |
Geneal Tasks
Products
The text was updated successfully, but these errors were encountered: