-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Add PodDisruptionBudgets to the Pinot Helm chart #13153
Add PodDisruptionBudgets to the Pinot Helm chart #13153
Conversation
I've set these by default at allowing 50% of the servers/brokers/controllers to be unavailable, and exposed these settings in the configuration so the user can change them. These prevent outages when the underlying kuberenetes cluster undergoes an upgrade.
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #13153 +/- ##
============================================
+ Coverage 61.75% 62.25% +0.50%
+ Complexity 207 198 -9
============================================
Files 2436 2529 +93
Lines 133233 138215 +4982
Branches 20636 21386 +750
============================================
+ Hits 82274 86048 +3774
- Misses 44911 45762 +851
- Partials 6048 6405 +357
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Thanks for the contribution. In general, one comment from K8s before v1.21 support, and to give other users better control over the PDB, can we have a boolean property say |
Sure, done, and since the default replica counts of everything in values.yaml is 1 I've defaulted it to off |
FYI, the zookeeper chart from bitnami (the one we depend on) also has this ability. |
metadata: | ||
name: {{ include "pinot.broker.fullname" . }} | ||
spec: | ||
minAvailable: {{ .Values.broker.disruptionBudget.minAvailable }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be nice to also have the ability to define a maxUnavailable
.
This is specifically useful in servers, where if we know the min replica size for all tables, we can configure pdb as maxUnavailable: replicaSize - 1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've left the defaults values for broker and controller at 50%
, although replicaSize - 1
would make sense too
The number for servers would be maxUnavailable: $tableReplicas - 1
or similar, which isn't easily available here so I just set it to 1 in the default values
I'll adjust this to work with the same config settings as the zookeeper chart then, if people are already familiar with that one |
* expose `maxUnavailable` * rename from `disruptionBudget` to `pdb` I've kept the flag called `enabled` just to match everything else
I've adjusted this to be closer how to the zookeeper chart works, with |
I've set these by default at allowing 50% of the servers/brokers/controllers to be unavailable, and exposed these settings in the configuration so the user can change them.
These prevent outages when the underlying kuberenetes cluster undergoes an upgrade.
You might configure these like so in your helm yaml settings: