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

NVIDIA / k8s-operator-libs / 27644467942
63%
main: 62%

Build:
Build:
LAST BUILD BRANCH: pull-request/145
DEFAULT BRANCH: main
Ran 16 Jun 2026 08:04PM UTC
Jobs 1
Files 20
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

16 Jun 2026 08:01PM UTC coverage: 62.553% (+0.4%) from 62.114%
27644467942

push

github

rajathagasthya
Add optional restart-only predicate to inplace upgrade flow

Consumers occasionally need a DaemonSet's pods rolled to a new revision
without the disruptive pod-eviction and drain sequence -- for example
when a pod-template change does not affect the managed software (a
label-only change) yet still changes the controller revision hash, so
the node is otherwise driven through the full upgrade flow.

Add an optional RestartOnlyPredicate hook, registered via
WithRestartOnlyPredicate. In the inplace ProcessUpgradeRequiredNodes,
when the predicate reports that a full upgrade is not needed, cordon the
node and route it straight to pod-restart-required, skipping
wait-for-jobs, pod-deletion, and drain. The pod is still restarted so
the DaemonSet converges to the new revision. Cordoning keeps the node
unschedulable if the restart fails, matching the full flow; the
uncordon-required state uncordons it on success.

The change is additive and backward compatible: a nil predicate (the
default, and every existing consumer) preserves current behavior, and
podInSyncWithDS is unchanged. If the predicate returns an error or the
cordon fails, the node is kept in upgrade-required and retried on a
later reconcile, with a Warning event recorded -- an upgrade is never
started on an unknown answer. The predicate is not consulted for
orphaned pods, nodes with an explicit upgrade-requested annotation, or
nodes waiting for safe driver load -- the safe-load handshake relies on
the full flow to evict workloads before the driver load is unblocked at
pod-restart-required. The maxParallelUpgrades throttle applies to both
paths. The upgrade-requested state is captured before the annotation is
cleared, because the node provider re-fetches and overwrites the
in-memory node object.

Signed-off-by: Rajath Agasthya <ragasthya@nvidia.com>

41 of 48 new or added lines in 2 files covered. (85.42%)

1465 of 2342 relevant lines covered (62.55%)

0.7 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
77.95
2.95% pkg/upgrade/upgrade_inplace.go
Jobs
ID Job ID Ran Files Coverage
1 27644467942.1 16 Jun 2026 08:04PM UTC 20
62.55
GitHub Action Run
Source Files on build 27644467942
  • Tree
  • List 20
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27644467942
  • 80df3491 on github
  • Prev Build on main (#25393167969)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc