docs: expand Termination Controller section - #9510
Open
ketanjani21 wants to merge 4 commits into
Open
Conversation
ketanjani21
force-pushed
the
docs/expand-termination-controller-9172
branch
3 times, most recently
from
August 20, 2026 14:39
817c55c to
f437c6a
Compare
DerekFrank
reviewed
Aug 20, 2026
| NodeClaim status conditions progress through the following states during termination. Reason strings shown are the values set by the controller. Transitions also emit Kubernetes events on the Node. | ||
|
|
||
| ``` | ||
| Node.DeletionTimestamp set |
Member
There was a problem hiding this comment.
Lets follow the rest of the diagrams and make this a png if possible
Author
There was a problem hiding this comment.
Converted to png and added.
|
|
||
| Node termination is coordinated by several controllers, each with a distinct responsibility: | ||
|
|
||
| | Actor | Responsibility | |
Member
There was a problem hiding this comment.
I don't know if we need this level of fidelity into the core code for the end user. I love the state machine\workflow bits of this, but we should keep the docs opaque on implementation
Author
There was a problem hiding this comment.
Thank you for the feedback, updated the PR.
| * **Node Auto Repair override.** When [Node Auto Repair]({{<ref "#node-auto-repair" >}}) determines a node is unhealthy, the Health Controller overwrites the annotation with the current time, forcing the Termination Controller to skip drain and volume-detachment waits. If the annotation is already in the past, it is not overwritten. | ||
| * **Unset.** If neither the NodePool nor the Health Controller sets a `terminationGracePeriod`, the annotation is absent and Karpenter waits indefinitely for drain and volume detachment. | ||
|
|
||
| #### terminationGracePeriod timeline |
Member
There was a problem hiding this comment.
I'd also love to see a diagram for this, with a worked through example
Author
|
@DerekFrank - Thank you for the feedback, I've updated the PR and it's ready for another review. |
ketanjani21
force-pushed
the
docs/expand-termination-controller-9172
branch
5 times, most recently
from
August 25, 2026 14:24
dafb21e to
bfb1296
Compare
ketanjani21
force-pushed
the
docs/expand-termination-controller-9172
branch
from
August 27, 2026 16:22
bfb1296 to
fef5e49
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #9172
Description
Expands the previously ~7-line Termination Controller section on the Disruption concepts page. The new section covers:
terminationGracePeriodfor unhealthy nodes)Drained,VolumesDetached,InstanceTerminating) and their reason stringsTerminationGracePeriodElapsedvolume-detach skipterminationGracePeriod-forced skipterminationGracePeriodis determined: NodePool inheritance vs. Node Auto Repair overrideterminationGracePeriod, the pod'sterminationGracePeriodSeconds, and the Node'sDeletionTimestampinteractAlso deletes
website/static/termination-state-machine.png(out of date and no longer referenced) and removes its lone reference fromdesigns/termination.md.How was this change tested?
Documentation-only change. Will verify rendering via the Amplify preview.
Does this change impact docs?
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.