• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

NVIDIA / nodewright / 36755566775
83%

Build:
DEFAULT BRANCH: main
Ran 30 Sep 2026 06:20PM UTC
Jobs 1
Files 59
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

30 Sep 2026 06:01PM UTC coverage: 82.376% (+0.1%) from 82.265%
36755566775

push

github

web-flow
fix(operator): apply runtime-required taints onto the live taint list (#699)

* fix(operator): apply runtime-required taints onto the live taint list

HandleAutoTaint and the reboot re-taint in TrackReboots both patched
spec.taints from the pass's cluster-state snapshot. Taints are an atomic
list, so each write replaced the whole list with the snapshot's copy plus
the runtime-required taint: a taint another controller added after the
snapshot (cluster-autoscaler, Karpenter, the cloud provider, GPU Operator)
was deleted, and one it removed was restored. New and rebooting nodes are
exactly when those controllers are busiest.

Both paths now go through addRuntimeRequiredTaint, which, like
removeRuntimeRequiredTaints, re-reads the node inside each conflict retry
and patches under an optimistic lock, so the taint is appended to the
current list. The reboot path applies the taint before the state reset
and leaves the reboot pending if either write fails, so both are retried
together. It now also records the autoTaint annotation, which is
idempotent for nodes that already carry it.

The heavy pass itself no longer changes taints: runtime-required removal
already re-reads in removeRuntimeRequiredTaints, so these were the
remaining writers.

Fixes #447

Signed-off-by: Alex Yuskauskas <ayuskauskas@nvidia.com>

* fix(operator): re-taint a rebooted node before resetting it, without a marker

The reboot re-taint wrote the autoTaint_<key> annotation, so a node
pre-tainted at provisioning gained a marker the operator never earned,
and a DNS-prefixed taint key (which Validate accepts) produced an invalid
annotation name that the apiserver rejects, leaving the reboot pending
and TrackReboots erroring on every pass. Only HandleAutoTaint marks a
node now; the reboot path relies on the marker surviving Reset, as
before.

The taint write also ran after Reset(), so a failure skipped the node
patch but still saved the wiped status. It now runs first: a failure
leaves the no... (continued)

30 of 30 new or added lines in 1 file covered. (100.0%)

6 existing lines in 1 file now uncovered.

9353 of 11354 relevant lines covered (82.38%)

7.63 hits per line

Coverage Regressions

Lines Coverage ∆ File
6
80.21
0.6% operator/internal/controller/skyhook_controller.go
Jobs
ID Job ID Ran Files Coverage
1 36755566775.1 30 Sep 2026 06:20PM UTC 59
82.38
GitHub Action Run
Source Files on build 36755566775
  • Tree
  • List 59
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36755566775
  • 6c14fb62 on github
  • Prev Build on main (#36743133578)
  • Next Build on main (#36760215515)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc