Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions docs/proposal/network-topology.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,11 @@ spec:
- subGroupSize: 3
minSubGroups: 2
name: task
matchPolicy:
- labelKey: volcano.sh/task-subgroup-id
labelSelector:
modelserving.volcano.sh/name: sample
modelserving.volcano.sh/role: gang-example
matchLabelKeys:
- modelserving.volcano.sh/role-id
networkTopology:
mode: hard
highestTierAllowed: 1
Expand All @@ -136,10 +139,10 @@ A `subGroupPolicy` has been added to the `podGroup` to ensure task-level gang sc

- `subGroupSize`: The number of pods in a subGroup.
- `minSubGroups`: The minimum replicas of subGroups.
- `matchPolicy`: The label key used to match pods.
- `matchLabelKeys`: The label key used to match pods.
Copy link

Copilot AI Jan 31, 2026

Choose a reason for hiding this comment

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

The subGroupPolicy field list is missing labelSelector, even though the YAML and API description introduce it. Add a bullet explaining that labelSelector selects which pods are eligible for subgrouping, and clarify how it interacts with matchLabelKeys.

Suggested change
- `matchLabelKeys`: The label key used to match pods.
- `labelSelector`: The label selector that restricts which pods in the PodGroup are eligible to be considered for this `subGroupPolicy`; only pods whose labels match this selector will participate in subgrouping.
- `matchLabelKeys`: The label keys whose values are used to partition the pods selected by `labelSelector` into subGroups; pods that match the selector and share the same values for all listed keys belong to the same subGroup.

Copilot uses AI. Check for mistakes.
Copy link
Member

Choose a reason for hiding this comment

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

good, need to clarify the matchLabelKeys

Copy link

Copilot AI Jan 31, 2026

Choose a reason for hiding this comment

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

matchLabelKeys is documented as a single "label key" used to match pods, but the field is a list and (per the PR description) is meant to further group pods after applying labelSelector. Reword this bullet to reflect that it is an ordered/list of label keys used for grouping pods that already match labelSelector.

Suggested change
- `matchLabelKeys`: The label key used to match pods.
- `matchLabelKeys`: Ordered list of label keys used to group pods that already match `labelSelector`.

Copilot uses AI. Check for mistakes.
- `networkTopology`: The network topology of a subGroup.

This YAML specifies that the PodGroup requires six pods to be deployed together, and all six pods must be scheduled on nodes with a maximum network topology distance of 2. Among these, the six pods are divided into two subGroups of three based on the value of the `volcano.sh/task-subgroup-id` label, and each group must be strictly scheduled on nodes with a network topology distance of 1.
This YAML specifies that the PodGroup requires six pods to be deployed together, and all six pods must be scheduled on nodes with a maximum network topology distance of 2. Among these, the six pods are divided into two subGroups of three based on the value of the `modelserving.volcano.sh/role-id` label, and each group must be strictly scheduled on nodes with a network topology distance of 1.

**Note:** You can refer to [network topology](https://volcano.sh/en/docs/network_topology_aware_scheduling/) know more about network topology details.

Expand Down Expand Up @@ -169,9 +172,11 @@ spec:
minResources:
subGroupPolicy:
- name: network-topology
matchPolicy:
- labelKey: "modelserving.volcano.sh/role"
- labelKey: "modelserving.volcano.sh/role-id"
labelSelector:
modelserving.volcano.sh/name: sample
modelserving.volcano.sh/role: gang-example
matchLabelKeys:
- modelserving.volcano.sh/role-id
networkTopology:
mode: hard
highestTierAllowed: 1
Expand Down
Loading