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

NVIDIA / nodewright / 31845152482
79%

Build:
DEFAULT BRANCH: main
Ran 14 Aug 2026 10:22PM 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

14 Aug 2026 10:04PM UTC coverage: 78.94% (-0.3%) from 79.217%
31845152482

push

github

web-flow
fix(operator): release the webhook bootstrap lease when it cannot be used (#472)

`helm rollback` across the resource-name rename left the release `failed` with no
Ready operator pod, and did not self-heal (#469). The pod being rolled away holds
`nodewright-webhook-bootstrap.nvidia.com`, sees no webhook configuration dialling
its Service, so it never goes Ready; a rolling update will not terminate an
un-Ready pod, so it keeps renewing the lease; and the pod being rolled back to
cannot inject a caBundle without that lease, so it cannot go Ready either.

This is not specific to the rename. Ownership of a webhook configuration is "it
dials the Service I was told to serve", so any change to the webhook Service name
reaches the same state, and `webhook.serviceName` and `fullnameOverride` are
ordinary chart values. The forward direction is broken on those knobs today too:
`selectorMigration` does not fire, because the selector is unchanged and
WEBHOOK_SERVICE_NAME is present.

An operator that owns no webhook configuration now checks whether some other
Service is dialled in its namespace. If so the release has moved on without it,
and after a grace period it stops the bootstrap manager, which drops the lease,
and a fresh one contends again 30s later. Nothing is deleted, and the reconcile
manager, webhook server, and readiness are untouched; if no other pod takes the
lease, this one takes it back. The grace period keeps a healthy upgrade, which
applies the Deployment and the webhook configurations in one pass, from tripping
it. Detection lists without the label filter that ownership uses, because the
release being rolled back to may predate that label.

The serving certificate is the other half. Secret/webhook-cert is operator-owned
and survives the rollback, and the operator on the far side has no
remint-on-Service-change check, so the certificate it inherits has to already be
valid for the name it will serve. Minted certificates now carry a SAN for the
pre... (continued)

109 of 215 new or added lines in 3 files covered. (50.7%)

3 existing lines in 3 files now uncovered.

10323 of 13077 relevant lines covered (78.94%)

7.84 hits per line

Uncovered Changes

Lines Coverage ∆ File
68
39.71
-8.73% operator/cmd/manager/main.go
33
67.23
2.68% operator/internal/controller/webhook_controller.go
5
71.08
1.89% operator/internal/controller/cert_utils.go

Coverage Regressions

Lines Coverage ∆ File
1
39.71
-8.73% operator/cmd/manager/main.go
1
71.08
1.89% operator/internal/controller/cert_utils.go
1
67.23
2.68% operator/internal/controller/webhook_controller.go
Jobs
ID Job ID Ran Files Coverage
1 31845152482.1 14 Aug 2026 10:22PM UTC 59
78.94
GitHub Action Run
Source Files on build 31845152482
  • Tree
  • List 59
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #31845152482
  • 877cc488 on github
  • Prev Build on main (#31759836687)
  • Next Build on main (#31846917330)
  • 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