Skip to content

🐛 [scanner] fix: default Deployment strategy to Recreate to stop vllm-d deploy deadlock - #23578

Merged
hivecommons-hive[bot] merged 1 commit into
mainfrom
scanner/fix-23574
Sep 19, 2026
Merged

hivecommons-hive[bot] merged 1 commit into
mainfrom
scanner/fix-23574

Conversation

@hivecommons-hive

Copy link
Copy Markdown
Contributor

Fixes #23574

Root cause

Run 35408410648 of deploy-vllm-d failed on both retry attempts with:

level=WARN msg="upgrade failed" name=kc error="resource Deployment/kc/kc-kubestellar-console not ready. status: InProgress, message: Pending termination: 1\ncontext deadline exceeded"
Error: UPGRADE FAILED: release kc failed, and has been rolled back due to rollback-on-failure being set: ...

with repeated events:

Warning FailedMount pod/kc-kubestellar-console-... MountVolume.MountDevice failed for volume "pvc-...": rpc error: code = Aborted desc = an operation with the given Volume ID ... already exists

The kc Deployment is single-replica (replicaCount: 1) and its PVC is backed by block storage on the vllm-d cluster (ibmc-vpc-block-10iops-tier). values.yaml already documented that Recreate is required for single-replica deployments on this kind of storage to avoid a RollingUpdate deadlock, but the chart's default deployment.strategy.type was still RollingUpdate. With RollingUpdate, the new pod starts while the old pod is still terminating and holding the volume, so the CSI driver rejects the concurrent mount, the Deployment gets stuck "Pending termination", and helm upgrade eventually times out.

Fix

Changed the chart's default deployment.strategy.type from RollingUpdate to Recreate in deploy/helm/kubestellar-console/values.yaml, matching the documented intent and the vllm-d job's single-replica/RWO setup. No workflow file or job overrides this value, so the fix takes effect on the next deploy without further changes.

This is a config-only change; not a code refactor.

— hive: agent=scanner backend=copilot model=claude-fable-5 copilot=1.0.78

…-d deploy deadlock

The kc Deployment is single-replica (replicaCount: 1) and backed by a
ReadWriteOnce/block-storage PVC on the vllm-d cluster
(ibmc-vpc-block-10iops-tier). values.yaml already documented that
Recreate is required in this case to avoid the RollingUpdate deadlock,
but the default strategy.type was still RollingUpdate.

With RollingUpdate, the new pod comes up while the old pod is still
terminating and holding the volume, so the CSI driver rejects the
concurrent mount with 'an operation with the given Volume ID ...
already exists', the Deployment gets stuck 'Pending termination', and
helm upgrade eventually times out ('context deadline exceeded'). This
caused run 35408410648 of deploy-vllm-d to fail after both retry
attempts (issue #23574).

Switching the default to Recreate makes Kubernetes fully terminate the
old pod (and release the volume) before starting the new one, matching
the documented intent and the vllm-d job's single-replica/RWO setup.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: GitHub Copilot <223556219+Copilot@users.noreply.github.com>
@kubestellar-prow kubestellar-prow Bot added the dco-signoff: yes Indicates the PR's author has signed the DCO. label Sep 19, 2026
@kubestellar-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign mikespreitzer for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@netlify

netlify Bot commented Sep 19, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for kubestellarconsole canceled.

Name Link
🔨 Latest commit 4034da4
🔍 Latest deploy log https://app.netlify.com/projects/kubestellarconsole/deploys/6aade9fe62f9100008094102

@github-actions github-actions Bot added the ai-generated Pull request generated by AI label Sep 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

👋 Hey @kubestellar-hive[bot] — thanks for opening this PR!

🤖 This project is developed exclusively using AI coding assistants.

Please do not attempt to code anything for this project manually.
All contributions should be authored using an AI coding tool such as:

This ensures consistency in code style, architecture patterns, test coverage,
and commit quality across the entire codebase.


This is an automated message.

@kubestellar-prow kubestellar-prow Bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Sep 19, 2026
@hivecommons-hive
hivecommons-hive Bot merged commit 3cfd426 into main Sep 19, 2026
32 of 33 checks passed
@kubestellar-prow
kubestellar-prow Bot deleted the scanner/fix-23574 branch September 19, 2026 02:17
@github-actions

Copy link
Copy Markdown
Contributor

Thank you for your contribution! Your PR has been merged.

Check out what's new:

Stay connected: Slack #kubestellar-dev | Multi-Cluster Survey

@github-actions

Copy link
Copy Markdown
Contributor

Post-merge build verification passed ✅

Both Go and frontend builds compiled successfully against merge commit 3cfd42614d84cb6c163a878b7ff89d65d4b9ddf5.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-generated Pull request generated by AI dco-signoff: yes Indicates the PR's author has signed the DCO. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. tier/2-standard

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Workflow failure: Build and Deploy KC

1 participant