Skip to content

fix(swiss): don't flag ScalingLimited as a scaler warning - #104

Merged
aceforeverd merged 1 commit into
modelsphere:mainfrom
huskcass:fix/swiss-scaler-conditions
Oct 26, 2026
Merged

aceforeverd merged 1 commit into
modelsphere:mainfrom
huskcass:fix/swiss-scaler-conditions

Conversation

@huskcass

Copy link
Copy Markdown
Collaborator

What type of PR is this?

  • bug fix

What this PR does and why

On a healthy LLMScaler the Resources tab's scaler card showed ScalingLimited=False / DesiredWithinRange as an amber warning badge, and its row in the condition list got a warning dot. The card took the first condition at False as a failure. ScalingLimited is informational in both states, and False is the normal one.

Rule, in a new scalerFailing in components/ReleaseObjects.tsx:

Condition Scaler card
AbleToScale=False warning badge with its reason
ScalingActive=False warning badge with its reason
DecisionAvailable=False, no ScalingActive warning badge with its reason (operator 0.5.0)
ScalingLimited, either status neutral dot, no badge
DecisionAvailable next to ScalingActive neutral dot (deprecated mirror)
  • With no failure the badge falls through to the existing scaling up / scaling down / steady.
  • The standalone deploy page's Scaling step (routes/DeploymentDetail.tsx) uses the same scalerFailing.
  • Unchanged: the route card and every other kind. Conditions takes an optional neutral list and only the scaler card passes one.
  • Operator 0.5.0 writes only DecisionAvailable, and only under the Custom provider. It is read in place of ScalingActive when that is absent. A 0.5.0 scaler on Prometheus has no conditions and shows by its replica counts as before.

Complements #101, which fixed the same rule for the Overview tab's Scaling tile.

Which issue(s) this PR fixes

Refs #101

How it was tested

  • components/scaler-conditions.test.ts: ScalingLimited=False is not a failure; AbleToScale=False and ScalingActive=False are; DecisionAvailable=False fails only when ScalingActive is absent.
  • npm run typecheck, npm test (48 files, 434 tests), npm run build and npm run build:swiss pass in web/.

Checks

  • go test ./... and gofmt -l . is empty (no Go change)
  • npm run typecheck && npm test && npm run build in web/ (if web/ changed)
  • helm lint --strict helm/console (if the chart changed)
  • Docs updated where behaviour, a config key or a chart value moved
  • No internal hostnames, IPs, registries or credentials

Notes for reviewers

This edits web/src/modules/swiss directly. swiss now builds its UI from this repo (its web/console submodule, npm run build:swiss), so there is no upstream copy to fix first.

Release note

The deployment's cluster resources no longer show a healthy autoscaler's ScalingLimited condition as a warning.

The cluster-resources scaler card took the first condition at False as a
failure, so a healthy LLMScaler showed ScalingLimited=False
(DesiredWithinRange) as an amber badge, and its condition dot as a warning.

- scalerFailing: only AbleToScale=False or ScalingActive=False fails, with
  DecisionAvailable standing in when ScalingActive is absent (operator
  0.5.0 writes only that one)
- the scaler card badge and the standalone deploy page's scaling step use it
- the scaler card draws ScalingLimited, and DecisionAvailable when
  ScalingActive is present, with a neutral dot; other cards are unchanged

Co-authored-by: aceforeverd <11715200+aceforeverd@users.noreply.github.com>

@huskcass huskcass left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No blockers.

Verdict: correct for new-operator and 0.5.0 scalers, route card and other kinds unchanged; good to merge.

— Review Golden

@aceforeverd
aceforeverd merged commit 3f6eb5b into modelsphere:main Oct 26, 2026
4 checks passed
@huskcass
huskcass deleted the fix/swiss-scaler-conditions branch October 26, 2026 09:08
aceforeverd added a commit that referenced this pull request Oct 26, 2026
The cluster-resources scaler card took the first condition at False as a
failure, so a healthy LLMScaler showed ScalingLimited=False
(DesiredWithinRange) as an amber badge, and its condition dot as a warning.

- scalerFailing: only AbleToScale=False or ScalingActive=False fails, with
  DecisionAvailable standing in when ScalingActive is absent (operator
  0.5.0 writes only that one)
- the scaler card badge and the standalone deploy page's scaling step use it
- the scaler card draws ScalingLimited, and DecisionAvailable when
  ScalingActive is present, with a neutral dot; other cards are unchanged

Co-authored-by: huskcass <333684917+huskcass@users.noreply.github.com>
Co-authored-by: aceforeverd <11715200+aceforeverd@users.noreply.github.com>
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.

2 participants