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

kubernetes-sigs / karpenter / 26238594231
81%
main: 81%

Build:
Build:
LAST BUILD BRANCH: inplace-resize-rfc
DEFAULT BRANCH: main
Ran 21 May 2026 04:35PM UTC
Jobs 1
Files 155
Run time 2min
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

21 May 2026 04:17PM UTC coverage: 80.596% (-0.04%) from 80.631%
26238594231

Pull #3038

github

praveen9354
fix(termination): prevent negative pod grace period when Node Repair triggers

Node Repair (node health controller) annotated NodeClaims with
NodeClaimTerminationTimestampAnnotationKey = now(). By the time the
termination reconciler ran, the timestamp was already in the past, so
time.Until(annotationTime) was negative. The Kubernetes API server
silently clamped the negative gracePeriodSeconds to 0, causing pods to
be force-deleted. This violates at-most-one semantics because the old
container may still be running on the instance while a replacement pod
starts elsewhere.

Fix: when the NodeClaim has a TerminationGracePeriod configured, set
the annotation to now()+TGP rather than now(), matching the semantics
of the nodeclaim/lifecycle controller which correctly computes
DeletionTimestamp+TGP. When there is no TGP configured, now() is still
used since there is no grace window to forward-date.

Also add a defensive clamp (>= 0) on gracePeriodSeconds inside
DeleteExpiringPods so that future callers who set a past timestamp
produce a clearly-bounded zero-second grace rather than relying on the
API server's silent clamp.

Signed-off-by: praveen9354 <praveen9354@gmail.com>
Pull Request #3038: fix(termination): prevent negative pod grace period when Node Repair triggers

18 of 20 new or added lines in 2 files covered. (90.0%)

7 existing lines in 1 file now uncovered.

12523 of 15538 relevant lines covered (80.6%)

118631.75 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
90.91
-1.25% pkg/controllers/node/termination/terminator/terminator.go

Coverage Regressions

Lines Coverage ∆ File
7
88.76
-7.87% pkg/controllers/provisioning/scheduling/preferences.go
Jobs
ID Job ID Ran Files Coverage
1 26238594231.1 21 May 2026 04:35PM UTC 155
80.6
GitHub Action Run
Source Files on build 26238594231
  • Tree
  • List 155
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #3038
  • PR Base - main (#26191700754)
  • 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