Skip to content

fix(autoscaler): leave a node with no memory reading out of the pressure calculation - #152

Draft
Mearman wants to merge 1 commit into
mainfrom
fix/151-autoscaler-notready-public
Draft

Mearman wants to merge 1 commit into
mainfrom
fix/151-autoscaler-notready-public

Conversation

@Mearman

@Mearman Mearman commented Oct 31, 2026

Copy link
Copy Markdown
Member

A NotReady node prints <unknown> as its MEMORY% in kubectl top nodes. The autoscaler treated that as a parse failure and lowered every pool to its floor for as long as the node stayed down.

Such a node is now logged by name and left out of the pressure calculation, so the worst case comes from the nodes that did report. The fail-safe stays for a MEMORY% that is neither <unknown> nor a number, and, with its own message, for the case that no node reported a percentage (which would otherwise read as no pressure).

The existing autoscaler tests that asserted the old behaviour now assert the new one, and new cases cover a single <unknown> row among reporting nodes, every row <unknown>, a garbage percentage, and the worst reporting node still driving pressure next to an <unknown> row. With the old loop restored, the <unknown> tests fail.

Closes #151

…ure calculation

A NotReady node prints <unknown> as its MEMORY% in kubectl top nodes.
The autoscaler treated that as a parse failure and lowered every pool
to its floor for as long as the node stayed down.

Such a node is now logged by name and skipped, and the worst case comes
from the nodes that did report. The fail-safe still applies to a
MEMORY% that is neither <unknown> nor a number, and, with its own
message, when no node reported a percentage at all.
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.

The autoscaler cuts every pool to its floor while any one node is NotReady

1 participant