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

kubernetes-sigs / karpenter / 25362735314

05 May 2026 07:05AM UTC coverage: 80.274% (-0.04%) from 80.311%
25362735314

Pull #3002

github

Joao Vieira
fix: isolate per-NodePool failures in nodeoverlay controller

The nodeoverlay controller's Reconcile() loop calls GetInstanceTypes()
for every NodePool. Previously, if any single NodePool failed (e.g.,
its NodeClass doesn't exist), the entire reconcile returned an error
immediately. This prevented the InstanceTypeStore from being updated,
causing ALL NodePools to be stuck in 'awaiting evaluation' state and
blocking all node provisioning cluster-wide.

This change:
- Skips failing NodePools with a log message instead of aborting
- Only marks successfully evaluated NodePools in evaluatedNodePools
- Passes only evaluated NodePools to overlay validation
- Allows the store to be updated with partial results

This matches the error handling pattern already used by the provisioner
in provisioner.go for the same error type.

Fixes a cascading failure where one misconfigured NodePool (referencing
a non-existent NodeClass) blocks provisioning on all other healthy
NodePools after any Karpenter restart.
Pull Request #3002: fix: isolate per-NodePool failures in nodeoverlay controller

7 of 10 new or added lines in 1 file covered. (70.0%)

13 existing lines in 2 files now uncovered.

12188 of 15183 relevant lines covered (80.27%)

121456.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.82
/pkg/controllers/nodeoverlay/controller.go


Source Not Available

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