Skip to content

docs: add node repair candidate resolution, admission, and escalation RFC - #2

Draft
sebpalmerio wants to merge 1 commit into
mainfrom
node-repair-candidate-resolution-admission-escalation-rfc
Draft

docs: add node repair candidate resolution, admission, and escalation RFC#2
sebpalmerio wants to merge 1 commit into
mainfrom
node-repair-candidate-resolution-admission-escalation-rfc

Conversation

@sebpalmerio

Copy link
Copy Markdown
Owner

Description

This PR adds a design RFC (designs/node-repair-candidate-resolution-admission-and-escalation.md) defining candidate resolution, shared disruption admission, durable commitment, and post-reboot action resolution for Karpenter Node Repair.

Problem

Reason-aware matching can produce several eligible repair results for one Node, potentially with different actions and drain bounds. Repair may then wait behind voluntary disruption controls while health changes. Reboot adds a provider side effect that must survive controller restart and must not create an autonomous reboot loop. Karpenter needs one deterministic candidate, a clear commitment boundary, and durable attempt history without persisting reconstructible recommendations.

Proposal

  • Apply durable reboot-attempt history to current eligible results before candidate resolution.
  • Resolve all current eligible results for one Node into one candidate using deterministic action, driving-result, and termination-grace-period rules.
  • Admit repair through shared voluntary disruption and reserve the Repair budget before commitment.
  • Record reboot commitment in NodeClaim.status.repairAttempt before provider side effects, while replacement commits through NodeClaim deletion.
  • Permit one reboot per NodeClaim in the initial strategy and convert later eligible reboot results to replacement through ordinary admission.

Related RFCs

How was this change tested?

N/A — documentation/design only.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

LLMs were used in the writing of this document, but the contribution is mine.

@sebpalmerio
sebpalmerio force-pushed the node-repair-candidate-resolution-admission-escalation-rfc branch from d29bb7b to ed46c80 Compare August 27, 2026 07:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant