-
Notifications
You must be signed in to change notification settings - Fork 971
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Volcano adapts to the k8s v1.29 #3295
Conversation
a410b6d
to
a68909d
Compare
a4580f9
to
e50065b
Compare
c616764
to
473a7ef
Compare
skipPlugins[taskKey] = plugins | ||
} | ||
skipPlugins[taskKey].Insert(podTopologySpreadFilter.Name()) | ||
klog.V(3).Infof("pod(%s/%s) affinity require information is nil, plugin podTopologySpreadFilter is skipped", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change log level to 5 to avoid rredundant logs, and so does other plugin's skip check.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
@@ -401,7 +409,16 @@ func (pp *predicatesPlugin) OnSessionOpen(ssn *framework.Session) { | |||
// the processing logic needs to be added to the return value result. | |||
if predicate.podTopologySpreadEnable { | |||
_, status := podTopologySpreadFilter.PreFilter(context.TODO(), state, task.Pod) | |||
if !status.IsSuccess() { | |||
if status.IsSkip() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Abstract this logic to a function because many plugins do the same thing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
for _, node := range nodes { | ||
nodeScores[node.Name] = podAffinityScores[node.Name] + nodeTolerationScores[node.Name] + podTopologySpreadScores[node.Name] + selectorSpreadScores[node.Name] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the compatibility policy of volcano with kubernets version support? User with lower kubernetes version than 1.29 will miss the plugin.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After review, the plugin of SelectorSpread can be deleted for the following reasons: First, k8s provides the PodTopologySpread plugin to replace the SelectorSpread plugin since version 1.19; secondly, volcano introduced both plugins at the same time, and the selector plugin is not used by default, but the podtopology plugin is used,users can use PodTopologySpread instead of SelectorSpread.
Please also update |
The commit "fix some ci errors" should only contains fossa ci fix, helm yaml fix is a seperate part. |
8fa5c88
to
a3492c3
Compare
@@ -8812,7 +8812,7 @@ | |||
import ( | |||
v1 "k8s.io/api/core/v1" | |||
"k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/topology" | |||
"k8s.io/kubernetes/pkg/kubelet/cm/cpuset" | |||
"k8s.io/utils/cpuset" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the UT coverage report of the previous version.
Why do we need to change it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
Please make CI happy. @guoqinwill |
a3492c3
to
7674bdf
Compare
Signed-off-by: guoqin <[email protected]>
…rsions Signed-off-by: guoqin <[email protected]>
…âier versions of Kubernetes Signed-off-by: guoqin <[email protected]>
…apis changed Signed-off-by: guoqin <[email protected]>
…s and PodTopologySpread for each existing pod on each node Signed-off-by: guoqin <[email protected]>
Signed-off-by: guoqin <[email protected]>
cd532d0
to
43a9684
Compare
/lgtm |
Please modify file |
…and modify some klogs formats Signed-off-by: guoqin <[email protected]> Signed-off-by: wangyang <[email protected]>
43a9684
to
97f9aa8
Compare
/lgtm |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: william-wang The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
1、Volcano adapts to the k8s v1.29
2、In k8s v1.29, some apis have changed. For example, cpuset from "k8s.io/kubernetes/pkg/kubelet/cm/cpuset/cpuset.go" export to "k8s.io/utils/cpuset". Remove 'selectorspread' plugin and use 'podTopologySpread' plugin instead .
3、In k8s v1.29.Migrated the volumebinding scheduler plugins to use contextual logging.Graduated the ReadWriteOncePod and PodSecurity feature gate to GA, and PodSecurity have been removed .Added 'return Skip in PreFilter' when calculates the NodePorts and PodTopologySpread for each existing pod on each node. This update adapts to this change.