Skip to content

feat(inferences): show uninstalling deployments and block writes on them - #96

Merged
aceforeverd merged 1 commit into
mainfrom
feat/uninstalling-state
Oct 25, 2026
Merged

aceforeverd merged 1 commit into
mainfrom
feat/uninstalling-state

Conversation

@huskcass

Copy link
Copy Markdown
Collaborator

What type of PR is this?

  • feature

What this PR does and why

A deployment from the swiss plan (helm backend) disappeared from the list right after Uninstall, even though its pods kept terminating for a while. modelsphere/swiss#31 now keeps that row listed with phase: uninstalling until the resources are gone. It also reports an LLMService with a deletionTimestamp the same way. This PR shows that state in the UI and turns off the actions that would now get a 409.

flowchart LR
  A[installed] -->|Uninstall| B[uninstalling<br/>Uninstall, Upgrade/Edit,<br/>rollback, SLO disabled]
  B -->|pods gone, swiss drops the row| C[gone from list]
Loading
  • A single isUninstalling() helper (web/src/modules/swiss/lib/phase.ts) checks the row phase, helm status/helmStatus, planStatus.phase and llmservice.phase. It takes precedence over failed, applying, not installed and no pods.
  • Inferences list and detail: the Uninstalling / 卸载中 state is shown, and Uninstall, Upgrade/Edit, SLO edit and rollback are disabled with a reason.
  • Embedded swiss UI (list, detail, upgrade, revisions): shows an uninstalling badge and disables Uninstall, Upgrade and Roll back.
  • Polling is unchanged, so the row leaves the list once swiss stops returning it. No Go or API changes are needed here.

Which issue(s) this PR fixes

Closes #94

How it was tested

  • Unit tests cover the state helpers: row phase, planStatus, llmservice, precedence, and helm uninstalling. Component tests render the list and detail of both front-ends with an uninstalling deployment and a serving one, and assert the label and the disabled or enabled actions.
  • npm run typecheck, npm test (47 files, 418 tests), npm run build and npm run build:swiss pass, as do gofmt -l . (empty), go vet ./... and go test ./....
  • Not clicked through in a browser against a live swissd.

Checks

  • go test ./... and gofmt -l . is empty
  • npm run typecheck && npm test && npm run build in web/
  • Docs updated (deploy guide, en-US and zh-CN)
  • No internal hostnames, IPs, registries or credentials

Release note

Uninstalled deployments now stay listed as "Uninstalling" until their pods are gone; edit and uninstall are disabled meanwhile.

swiss keeps an uninstalled release listed with phase uninstalling until its
pods are gone, and reports an LLMService with a deletionTimestamp the same
way. Show that state in the list and detail of both front-ends, and disable
Uninstall, Upgrade/Edit, rollback and SLO edit while it lasts.

Closes #94

@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: good to merge alongside modelsphere/swiss#31. The single phase helper, the disabled actions and the component tests cover both front-ends, and nothing changes against an older swissd.

— Review Golden

@aceforeverd
aceforeverd merged commit 13111a0 into main Oct 25, 2026
4 checks passed
@aceforeverd
aceforeverd deleted the feat/uninstalling-state branch October 25, 2026 03:53
aceforeverd pushed a commit that referenced this pull request Oct 25, 2026
…hem (#96)

swiss keeps an uninstalled release listed with phase uninstalling until its
pods are gone, and reports an LLMService with a deletionTimestamp the same
way. Show that state in the list and detail of both front-ends, and disable
Uninstall, Upgrade/Edit, rollback and SLO edit while it lasts.

Closes #94

Co-authored-by: huskcass <333684917+huskcass@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.

feat: add the uninstalling state for deployments

2 participants