docs(userguide): add Coscheduling guide and node lock retry flag - #734
docs(userguide): add Coscheduling guide and node lock retry flag#734lin121291 wants to merge 1 commit into
Conversation
Add a user guide for running the scheduler-plugins Coscheduling plugin with HAMi, and document --node-lock-retry-timeout in the global config page. Both pages include a Chinese translation. Signed-off-by: lin121291 <4jp33f9e@gmail.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: lin121291 The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Welcome @lin121291! It looks like this is your first PR to Project-HAMi/website 🎉 |
✅ Deploy Preview for project-hami ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
📝 WalkthroughWalkthroughAdded English and Chinese documentation for HAMi Coscheduling integration. The changes cover scheduler configuration, installation, PodGroup RBAC, gang submission, node-lock timeouts, troubleshooting, related links, and sidebar navigation. ChangesCoscheduling Documentation
Estimated code review effort: 2 (Simple) | ~15 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/userguide/configure.md`:
- Around line 79-80: Use the same Helm release namespace, hami-system, in the
extender command at docs/userguide/configure.md lines 79-80 and mirror that
namespace change in
i18n/zh/docusaurus-plugin-content-docs/current/userguide/configure.md lines
81-82; do not introduce a separate namespace parameter.
In `@docs/userguide/coscheduling/how-to-use-coscheduling.md`:
- Around line 46-70: Complete the scheduler-plugins PodGroup setup in
docs/userguide/coscheduling/how-to-use-coscheduling.md at lines 46-70 and
117-143, and mirror the same changes in
i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md
at lines 46-70 and 117-143. Document installation of the v0.34.7
scheduler-plugins controller component, or the equivalent HAMi chart component,
and provide controller RBAC with podgroups/status plus all required write
permissions instead of only read access.
- Around line 41-43: Correct the scheduler-plugins/Kubernetes version pairing in
docs/userguide/coscheduling/how-to-use-coscheduling.md at lines 41-43, 58, and
69 by either using Kubernetes v1.34.7 with scheduler-plugins v0.34.7 or updating
the scheduler-plugins image tag and CRD URL to a release supporting v1.35; apply
the same compatible version changes to the matching image and CRD references in
i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md
at lines 41-43.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 2373f76c-0d3c-4c58-b122-06610a365c48
📒 Files selected for processing (6)
docs/userguide/configure.mddocs/userguide/coscheduling/how-to-use-coscheduling.mdi18n/zh/docusaurus-plugin-content-docs/current.jsoni18n/zh/docusaurus-plugin-content-docs/current/userguide/configure.mdi18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.mdsidebars.js
| helm upgrade hami hami-charts/hami -n kube-system --reuse-values \ | ||
| --set-json 'scheduler.extender.extraArgs=["--debug","-v=4","--node-lock-retry-timeout=28s"]' |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Use one namespace for the documented Helm release. The Coscheduling guide uses hami-system, while these extender examples use kube-system.
- docs/userguide/configure.md#L79-L80: use
hami-systemfor this flow, or document an explicit release-namespace parameter. - i18n/zh/docusaurus-plugin-content-docs/current/userguide/configure.md#L81-L82: mirror the same namespace rule in Chinese.
📍 Affects 2 files
docs/userguide/configure.md#L79-L80(this comment)i18n/zh/docusaurus-plugin-content-docs/current/userguide/configure.md#L81-L82
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/userguide/configure.md` around lines 79 - 80, Use the same Helm release
namespace, hami-system, in the extender command at docs/userguide/configure.md
lines 79-80 and mirror that namespace change in
i18n/zh/docusaurus-plugin-content-docs/current/userguide/configure.md lines
81-82; do not introduce a separate namespace parameter.
| - A Kubernetes cluster with GPU nodes and HAMi installed. | ||
| - A [scheduler-plugins release](https://github.com/kubernetes-sigs/scheduler-plugins/releases) built against your Kubernetes minor version. The examples below use v0.34.7 on Kubernetes v1.35. | ||
| - Helm 3. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== Candidate docs files =="
git ls-files | rg '(^|/)docs/userguide/coscheduling/how-to-use-coscheduling\.md$|^i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling\.md$' || true
echo
echo "== Relevant lines in English and Chinese docs =="
for f in "docs/userguide/coscheduling/how-to-use-coscheduling.md" "i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md"; do
if [ -f "$f" ]; then
echo "--- $f"
sed -n '35,50p' "$f" | nl -ba -v35
else
echo "MISSING: $f"
fi
done
echo
echo "== Other mentions of v0.34.7 or Kubernetes v1.35 in docs =="
rg -n "v0\.34\.7|scheduler-plugins|Kubernetes v1\.35|v1\.35|v0\.34\.(6|8|7)" docs i18n --glob '*.md' --glob '*.mdx' || trueRepository: Project-HAMi/website
Length of output: 487
🌐 Web query:
scheduler-plugins compatibility matrix v0.34.7 Kubernetes v1.34.7
💡 Result:
Yes, scheduler-plugins version v0.34.7 is explicitly compatible with Kubernetes v1.34.7 [1][2][3]. According to the official compatibility matrix for the Kubernetes SIGs scheduler-plugins project, the minor version of the plugins matches the minor version of the Kubernetes client packages (such as client-go and apimachinery) with which it is compiled [1][3]. Specifically, scheduler-plugins v0.34.7 is compiled with Kubernetes v1.34.7 dependencies [1][2][3]. This alignment is standard for the project, where single-digit patch versions typically align directly with the Kubernetes client package versions used in the build [1][4].
Citations:
- 1: https://pkg.go.dev/sigs.k8s.io/scheduler-plugins
- 2: https://github.com/kubernetes-sigs/scheduler-plugins
- 3: https://scheduler-plugins.sigs.k8s.io/
- 4: https://github.com/kubernetes-sigs/scheduler-plugins/tree/release-1.18
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== Relevant lines in English and Chinese docs =="
for f in "docs/userguide/coscheduling/how-to-use-coscheduling.md" "i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md"; do
if [ -f "$f" ]; then
echo "--- $f"
sed -n '35,50p' "$f"
else
echo "MISSING: $f"
fi
done
echo
echo "== Other mentions of v0.34.7 or Kubernetes v1.35 in docs =="
rg -n "v0\.34\.7|scheduler-plugins|Kubernetes v1\.35|v1\.35|v0\.34\.(6|8|7)" docs i18n --glob '*.md' --glob '*.mdx' || true
echo
echo "== Official compatibility reference =="
curl -fsSL --max-time 20 "https://scheduler-plugins.sigs.k8s.io/versions/v0.34.7/" || true
echo
curl -fsSL --max-time 20 "https://github.com/kubernetes-sigs/scheduler-plugins/releases/tag/release-1.34.7" || true
echo
echo "== GitHub release tags and Kubernetes compatibility manifests nearby v0.34.7/1.34.7 =="
urls="https://github.com/kubernetes-sigs/scheduler-plugins/releases/release-1.34.7 https://github.com/kubernetes-sigs/scheduler-plugins/releases/release-0.34.7"
python3 - <<'PY'
import urllib.request, re
urls = [
"https://github.com/kubernetes-sigs/scheduler-plugins/releases/release-1.34.7",
"https://github.com/kubernetes-sigs/scheduler-plugins/releases/release-0.34.7",
"https://scheduler-plugins.sigs.k8s.io/versions/v0.34.7/",
]
for url in urls:
try:
req = urllib.request.Request(url, headers={"User-Agent":"verify"})
with urllib.request.urlopen(req, timeout=20) as r:
data = r.read().decode("utf-8", "replace")
print("\n---", url)
# Print compact excerpts around compatible kubernetes strings and release version headings
hits = re.finditer(r'compatible\s+kubernetes|v1\.34\.7|v1\.35|client-go|Kubernetes', data, re.I)
shown = False
for m in hits:
if not shown:
start = max(0, m.start()-150)
end = min(len(data), m.end()+150)
text = data[start:end].replace('\n', ' ')
print(text[:300])
shown = True
break
# Also show tag/release title-like lines
for line in data.splitlines():
if "Compatible Kubernetes" in line or "Kubernetes" in line or "client-go" in line:
print(line[:180])
except Exception as e:
print("ERROR", url, e)
PYRepository: Project-HAMi/website
Length of output: 7783
🌐 Web query:
site:scheduler-plugins.sigs.k8s.io version v0.34.7 compatible kubernetes v1.34.7
💡 Result:
Yes, version v0.34.7 of the Kubernetes Scheduler Plugins is officially designed to be compiled and used with Kubernetes version v1.34.7 [1]. According to the official Kubernetes Scheduler Plugins documentation, this compatibility is explicitly maintained for both the scheduler components and controllers [1]. As of August 7, 2026, the project documentation confirms that release v0.34.7 is built specifically for integration with Kubernetes v1.34.7 [1].
Citations:
🌐 Web query:
site:https://github.com/kubernetes-sigs/scheduler-plugins v0.34.7 compatible kubernetes v1.34.7
💡 Result:
The scheduler-plugins release v0.34.7 is explicitly compiled with and compatible with Kubernetes v1.34.7 [1][2][3]. The official compatibility matrix for the Kubernetes SIGs scheduler-plugins project confirms that version v0.34.7 uses Kubernetes v1.34.7 dependencies [1][2]. The project's release notes and go.mod file further verify that the codebase was updated to support Kubernetes v1.34 and specifically bumped its dependencies to v1.34.7 [3][4]. Additionally, users running this version in-cluster should ensure that the scheduler service account has the necessary RBAC permissions for the resource.k8s.io API group, as these are required for proper operation with Kubernetes v1.34 [5].
Citations:
- 1: https://github.com/kubernetes-sigs/scheduler-plugins/blob/master/README.md
- 2: https://github.com/kubernetes-sigs/scheduler-plugins
- 3: https://github.com/kubernetes-sigs/scheduler-plugins/releases/tag/v0.34.7
- 4: https://github.com/kubernetes-sigs/scheduler-plugins/blob/v0.34.7/go.mod
- 5: fix: allow scheduler SA to access resource.k8s.io API group kubernetes-sigs/scheduler-plugins#963
🌐 Web query:
site:https://github.com/kubernetes-sigs/scheduler-plugins releases v0.36.0 Kubernetes v1.35
💡 Result:
As of August 7, 2026, there is no official release of "v0.36.0" for the Kubernetes Scheduler Plugins project [1][2]. While the project's development repository has seen commits related to upgrading dependencies to Kubernetes v1.35 [3][4][5], the most recent stable releases have been in the v0.34.x series (e.g., v0.34.7) [6][1]. The project maintainers have indicated a release process that includes a "soak" period for development versions before officially bumping support to newer Kubernetes versions [2]. Consequently, a "v0.36.0" release matching Kubernetes v1.35 has not been published [1].
Citations:
- 1: https://github.com/kubernetes-sigs/scheduler-plugins/releases
- 2: Is there a plan to support / adapt to 1.36? kubernetes-sigs/scheduler-plugins#975
- 3: kubernetes-sigs/scheduler-plugins@8b585ef
- 4: kubernetes-sigs/scheduler-plugins@57a9678
- 5: kubernetes-sigs/scheduler-plugins@2c75c8b
- 6: https://github.com/kubernetes-sigs/scheduler-plugins/releases/tag/v0.34.7
Correct the scheduler-plugins and Kubernetes version pairing. scheduler-plugins v0.34.7 is compiled for Kubernetes v1.34.7, so the current Kubernetes v1.35 example is misleading.
- docs/userguide/coscheduling/how-to-use-coscheduling.md#L41-L43 and
#L58and#L69: change the examples to a Kubernetes version compatible withv0.34.7, or update the image tag and CRD URL to a newer scheduler-plugins version that officially supports Kubernetesv1.35. - i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md#L41-L43 and the matching image/CRD references: apply the same version correction in Chinese.
📍 Affects 2 files
docs/userguide/coscheduling/how-to-use-coscheduling.md#L41-L43(this comment)i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md#L41-L43
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/userguide/coscheduling/how-to-use-coscheduling.md` around lines 41 - 43,
Correct the scheduler-plugins/Kubernetes version pairing in
docs/userguide/coscheduling/how-to-use-coscheduling.md at lines 41-43, 58, and
69 by either using Kubernetes v1.34.7 with scheduler-plugins v0.34.7 or updating
the scheduler-plugins image tag and CRD URL to a release supporting v1.35; apply
the same compatible version changes to the matching image and CRD references in
i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md
at lines 41-43.
Source: MCP tools
| ## 1. Install HAMi with the scheduler-plugins kube-scheduler | ||
|
|
||
| The HAMi scheduler Pod runs two containers: an upstream `kube-scheduler` and the HAMi `vgpu-scheduler-extender`. Coscheduling is compiled into the scheduler-plugins build of kube-scheduler, so point the chart at that image instead of the stock one: | ||
|
|
||
| ```bash | ||
| helm repo add hami-charts https://project-hami.github.io/HAMi/ | ||
| helm repo update | ||
|
|
||
| helm install hami hami-charts/hami \ | ||
| --namespace hami-system --create-namespace \ | ||
| --set scheduler.kubeScheduler.image.registry=registry.k8s.io \ | ||
| --set scheduler.kubeScheduler.image.repository=scheduler-plugins/kube-scheduler \ | ||
| --set scheduler.kubeScheduler.image.tag=v0.34.7 \ | ||
| --wait --timeout 10m | ||
| ``` | ||
|
|
||
| On an existing installation, run the same three `--set` flags through `helm upgrade --reuse-values`. | ||
|
|
||
| ## 2. Install the PodGroup CRD | ||
|
|
||
| Coscheduling reads `PodGroup` resources. Install the CRD from the same scheduler-plugins release: | ||
|
|
||
| ```bash | ||
| kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/scheduler-plugins/v0.34.7/config/crd/bases/scheduling.x-k8s.io_podgroups.yaml | ||
| ``` |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🌐 Web query:
scheduler-plugins v0.34.7 installation PodGroup CRD controller RBAC
💡 Result:
To install the PodGroup CRD and the associated controller for scheduler-plugins v0.34.7, you must follow the official installation procedures, which include applying the necessary CRDs and deploying the scheduler-plugins controller. 1. CRD Installation The PodGroup CustomResourceDefinition (CRD) is required for the coscheduling functionality [1][2]. You can install it by applying the manifest from the scheduler-plugins repository [1]: kubectl apply -f manifests/crds/scheduling.x-k8s.io_podgroups.yaml Alternatively, you can apply all available CRDs located in the manifests/crds/ directory if your deployment requires multiple plugins [2]. 2. Controller Installation and RBAC The scheduler-plugins-controller is responsible for managing custom resource objects, including PodGroups [2][3]. There are two primary ways to install the required components: A. Helm Installation (Recommended for quick start) Using Helm automatically handles the deployment of the controller and the necessary RBAC configurations [4][5]. helm install --repo https://scheduler-plugins.sigs.k8s.io scheduler-plugins scheduler-plugins After installation, verify that the controller pod is running: kubectl get deploy -n scheduler-plugins B. Manual Installation (Production/Custom Environments) If you are manually replacing or supplementing the default scheduler, you must apply the all-in-one manifest, which includes the deployment for the controller and associated RBAC roles [1][2]: kubectl apply -f manifests/install/all-in-one.yaml 3. Scheduler Configuration and RBAC Considerations When running scheduler-plugins (e.g., as a second scheduler or by replacing the default scheduler), the scheduler-plugins binary requires specific RBAC privileges to manipulate custom resources like PodGroups [2][3]. If using the all-in-one manifest, these RBAC permissions are generally included [2]. If deploying manually, ensure that the service account used by the scheduler has permissions to access the scheduling.x-k8s.io API group [6]. You can verify that your kube-scheduler is using the correct image for version 0.34.7: registry.k8s.io/scheduler-plugins/kube-scheduler:v0.34.7 [7] Always ensure your kube-scheduler configuration file includes the necessary plugin settings and is correctly mounted to the pod [2][3].
Citations:
- 1: https://scheduler-plugins.sigs.k8s.io/docs/user-guide/installation/
- 2: https://github.com/kubernetes-sigs/scheduler-plugins/blob/master/doc/install.md
- 3: https://github.com/kubernetes-sigs/scheduler-plugins/blob/release-1.24/doc/install.md
- 4: https://scheduler-plugins.sigs.k8s.io/docs/user-guide/installing-the-chart/
- 5: https://github.com/kubernetes-sigs/scheduler-plugins/blob/master/manifests/install/charts/as-a-second-scheduler/README.md
- 6: kubernetes-sigs/scheduler-plugins@v0.33.5...v0.34.7
- 7: https://github.com/kubernetes-sigs/scheduler-plugins?tab=readme-ov-file
🌐 Web query:
scheduler-plugins v0.34.7 manifests/install/all-in-one.yaml PodGroup RBAC status
💡 Result:
For the scheduler-plugins version v0.34.7, the manifests/install/all-in-one.yaml file is intended to deploy the necessary controller and set up the environment for the scheduler plugins [1][2][3]. Regarding RBAC and PodGroup support, the official documentation for the scheduler-plugins repository specifies that using plugins that rely on Custom Resource Definitions (CRDs), such as the coscheduling plugin that utilizes PodGroup, requires two specific steps [4][5]: 1. Applying extra RBAC privileges to the system:kube-scheduler user, allowing the scheduler binary to manipulate the custom resource objects (like PodGroup) [4][5]. 2. Installing a controller binary (deployed via all-in-one.yaml) that manages these custom resource objects [4][5]. While manifests/install/all-in-one.yaml helps deploy the scheduler-plugins-controller [4][6], users must ensure the cluster has the necessary CRDs installed (typically from the manifests/crds directory) [5][6] and that the scheduler configuration is correctly updated to recognize and use these plugins [5]. As of v0.34.7, the repository continues to provide these components to enable support for features like coscheduling and PodGroups [1][2]. Note that Kubernetes has also introduced native PodGroup support in newer versions (utilizing scheduling.k8s.io/v1alpha2 API) [7][8], which is distinct from the scheduling.sigs.k8s.io/v1alpha1 PodGroup API used by the out-of-tree scheduler-plugins [4][6][7]. Ensure your environment is configured for the specific API group required by your workload and scheduler version [9][7].
Citations:
- 1: kubernetes-sigs/scheduler-plugins@v0.33.5...v0.34.7
- 2: https://github.com/kubernetes-sigs/scheduler-plugins/releases/tag/v0.34.7
- 3: https://github.com/kubernetes-sigs/scheduler-plugins
- 4: https://github.com/kubernetes-sigs/scheduler-plugins/blob/master/doc/install.md
- 5: https://scheduler-plugins.sigs.k8s.io/docs/user-guide/installation/
- 6: https://github.com/kubernetes-sigs/scheduler-plugins/blob/release-1.24/doc/install.md
- 7: https://kubernetes.io/docs/concepts/workloads/podgroup-api/
- 8: https://kubernetes.io/docs/reference/kubernetes-api/scheduling/pod-group-v1alpha2/
- 9: https://kubernetes.io/docs/concepts/scheduling-eviction/podgroup-scheduling/
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== Target docs excerpts =="
sed -n '46,75p' docs/userguide/coscheduling/how-to-use-coscheduling.md
sed -n '110,150p' docs/userguide/coscheduling/how-to-use-coscheduling.md
echo
echo "== Chinese docs excerpts =="
sed -n '46,75p' i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md
sed -n '110,150p' i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md
echo
echo "== scheduler-plugins 0.34.7 all-in-one RBAC references around podgroups/status =="
curl -sSL https://raw.githubusercontent.com/kubernetes-sigs/scheduler-plugins/v0.34.7/manifests/install/all-in-one.yaml \
| sed -n '1,220p' | grep -nE 'apiGroup|resources:|verb|podgroups|scheduler-plugin|serviceAccount|deployment|roleBinding|clusterRoleBinding' || trueRepository: Project-HAMi/website
Length of output: 6732
Complete the scheduler-plugins PodGroup integration. Installing the CRD and a read-only scheduler role is not enough for coscheduling. Add the v0.34.7 scheduler-plugins controller component, or document the equivalent HAMi chart component, and use the controller RBAC, including podgroups/status and the required write permissions. Mirror this with the Chinese docs.
- docs/userguide/coscheduling/how-to-use-coscheduling.md#L46-L70
- docs/userguide/coscheduling/how-to-use-coscheduling.md#L117-L143
- i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md#L46-L70
📍 Affects 2 files
docs/userguide/coscheduling/how-to-use-coscheduling.md#L46-L70(this comment)docs/userguide/coscheduling/how-to-use-coscheduling.md#L117-L143i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md#L46-L70i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md#L117-L143
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/userguide/coscheduling/how-to-use-coscheduling.md` around lines 46 - 70,
Complete the scheduler-plugins PodGroup setup in
docs/userguide/coscheduling/how-to-use-coscheduling.md at lines 46-70 and
117-143, and mirror the same changes in
i18n/zh/docusaurus-plugin-content-docs/current/userguide/coscheduling/how-to-use-coscheduling.md
at lines 46-70 and 117-143. Document installation of the v0.34.7
scheduler-plugins controller component, or the equivalent HAMi chart component,
and provide controller RBAC with podgroups/status plus all required write
permissions instead of only read access.
Source: MCP tools
|
I checked the Netlify preview https://deploy-preview-734--project-hami.netlify.app/docs/category/user-guide, but I can't find the new Coscheduling guide or the changes to configure.md in the deployed User Guide. The |
| ## Prerequisites | ||
|
|
||
| - A Kubernetes cluster with GPU nodes and HAMi installed. | ||
| - A [scheduler-plugins release](https://github.com/kubernetes-sigs/scheduler-plugins/releases) built against your Kubernetes minor version. The examples below use v0.34.7 on Kubernetes v1.35. |
There was a problem hiding this comment.
I checked the scheduler-plugins compatibility matrix : Scheduler Plugins — Compatibility Matrix
It lists scheduler-plugins v0.34.7 as being compiled with Kubernetes v1.34.7, but your docs guide uses scheduler-plugins v0.34.7 with Kubernetes v1.35.
So the versions in the guide don't appear to be aligned with the compatibility matrix.
| kind: ClusterRole | ||
| metadata: | ||
| name: hami-podgroup-reader | ||
| rules: | ||
| - apiGroups: ["scheduling.x-k8s.io"] | ||
| resources: ["podgroups"] | ||
| verbs: ["get", "list", "watch", "create", "update", "patch"] |
There was a problem hiding this comment.
Why does HAMi need create, update, and patch permissions on PodGroups at all?
If HAMi only needs to inspect PodGroups to determine whether Pods belong to the same group, wouldn't get, list, and watch be sufficient?
If the write permissions are required, could you clarify what HAMi uses them for?
| nvidia.com/gpucores: "30" | ||
| ``` | ||
|
|
||
| The manifest above defines one member. Create `minMember` Pods from the same template with distinct names, otherwise the group never reaches its quorum and every member stays Pending. |
There was a problem hiding this comment.
The manifest above defines one Pod that belongs to the gang. Create additional Pods with the same scheduling.x-k8s.io/pod-group label to satisfy minMember. Each Pod should have a distinct name; otherwise, the group cannot reach the required number of members and the Pods will remain Pending.
|
@Creativeklvn Thanks for the review. The pages are under |
What type of PR is this?
/kind documentation
What this PR does / why we need it:
Project-HAMi/HAMi#2066 added a PodGroup-aware node lock retry in the
scheduler extender, along with the
--node-lock-retry-timeoutflag.Neither the flag nor the Coscheduling setup it targets is documented
on the site today.
This adds:
userguide/coscheduling/how-to-use-coscheduling.mdcovering how theCoscheduling Permit phase and the HAMi node lock interact, the setup
steps (scheduler-plugins image, PodGroup CRD, scheduler config, RBAC,
gang submission), node lock tuning, and troubleshooting.
userguide/configure.mdfor--node-lock-retry-timeoutand--node-lock-timeout.Setup steps and error messages come from testing on kind and on a k3s
cluster with a real T4, recorded in Project-HAMi/HAMi#1832.
The flag is not in v2.9.0, so both pages target
docs/only.Which issue(s) this PR fixes:
Fixes #733
Checklist:
npm run lintandnpm run format:checkpassnpm run buildsucceeds for bothenandzhgit commit -s)AI assistance: I used Claude Code to draft both pages from the merged
implementation and my earlier test notes, then verified every step against
the chart templates and the scheduler-plugins v0.34.7 release myself.
Summary by CodeRabbit