Commit 91b86e1
committed
feat(chart): add priorityClassName support to all NVSentinel workloads
NVSentinel pods run at priority 0 by default, below any workload that sets a
priority class. On a CPU-saturated cluster the scheduler therefore leaves them
Pending instead of preempting a lower-value pod, and a node ends up with no health
monitor while the DaemonSet still reports healthy, because a DaemonSet whose pods
cannot be placed is not unhealthy. The chart had no way to set a priority class, so
the only workarounds were patching rendered manifests or a mutating webhook.
Adds two globals, mirroring the existing nodeSelector/tolerations split for the same
reason: the node agents and the control-plane components run on different node
classes and want different priorities.
global.priorityClassName node-level agents (DaemonSets, platform-connectors)
global.systemPriorityClassName control-plane components (Deployments)
Every component also takes a local priorityClassName, and each template uses the
established (global | default local) idiom already used for tolerations, so the
global wins when both are set.
Both globals default to empty, which omits the field from the pod spec entirely, so
a default render is unchanged and no existing deployment is affected.
Covers 21 pod specs: the platform-connectors DaemonSet, both gpu-health-monitor DCGM
variants, both syslog-health-monitor variants, metadata-collector, nic-health-monitor,
the preflight image cache, and the labeler, health-events-analyzer, fault-quarantine,
node-drainer, fault-remediation, janitor, janitor-provider, csp-health-monitor,
kubernetes-object-monitor, event-exporter, incluster-file-server, slurm-drain-monitor,
lifecycle-manager and preflight Deployments.
Short-lived Jobs and lifecycle hooks are left alone: they have their own local
scheduling conventions rather than reading the globals, and pod priority matters far
less for work that is not long-running. The vendored postgresql and mongodb subcharts
already support priorityClassName upstream.
Tests cover both halves of the split, including negative cases asserting that the
node-agent global does not reach the control-plane components and vice versa, so the
two cannot silently collapse into one.
Signed-off-by: Lonnie Friedman <lfriedman@together.ai>1 parent 1405bcd commit 91b86e1
43 files changed
Lines changed: 346 additions & 0 deletions
File tree
- distros/kubernetes/nvsentinel
- charts
- csp-health-monitor
- templates
- event-exporter
- templates
- fault-quarantine
- templates
- fault-remediation
- templates
- gpu-health-monitor
- templates
- tests
- health-events-analyzer
- templates
- incluster-file-server
- templates
- janitor-provider
- templates
- janitor
- templates
- kubernetes-object-monitor
- templates
- labeler
- templates
- tests
- lifecycle-manager
- templates
- metadata-collector
- templates
- nic-health-monitor
- templates
- node-drainer
- templates
- preflight
- templates
- slurm-drain-monitor
- templates
- syslog-health-monitor
- templates
- templates
- docs/configuration
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
268 | 268 | | |
269 | 269 | | |
270 | 270 | | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
48 | 51 | | |
49 | 52 | | |
50 | 53 | | |
| |||
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
190 | 190 | | |
191 | 191 | | |
192 | 192 | | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
| 95 | + | |
| 96 | + | |
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
33 | 36 | | |
34 | 37 | | |
35 | 38 | | |
| |||
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
203 | 203 | | |
204 | 204 | | |
205 | 205 | | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
43 | 46 | | |
44 | 47 | | |
45 | 48 | | |
| |||
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
156 | 156 | | |
157 | 157 | | |
158 | 158 | | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
156 | 156 | | |
157 | 157 | | |
158 | 158 | | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
0 commit comments