mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 09:22:44 +00:00
Make a scheduler predicates test resiliant to race for scheduledCondition
This commit is contained in:
parent
ebe733e469
commit
94c9997daf
@ -119,13 +119,19 @@ func getPodsScheduled(pods *api.PodList) (scheduledPods, notScheduledPods []api.
|
|||||||
if !masterNodes.Has(pod.Spec.NodeName) {
|
if !masterNodes.Has(pod.Spec.NodeName) {
|
||||||
if pod.Spec.NodeName != "" {
|
if pod.Spec.NodeName != "" {
|
||||||
_, scheduledCondition := api.GetPodCondition(&pod.Status, api.PodScheduled)
|
_, scheduledCondition := api.GetPodCondition(&pod.Status, api.PodScheduled)
|
||||||
Expect(scheduledCondition != nil).To(Equal(true))
|
// We can't assume that the scheduledCondition is always set if Pod is assigned to Node,
|
||||||
Expect(scheduledCondition.Status).To(Equal(api.ConditionTrue))
|
// as e.g. DaemonController doesn't set it when assigning Pod to a Node. Currently
|
||||||
|
// Kubelet sets this condition when it gets a Pod without it, but if we were expecting
|
||||||
|
// that it would always be not nil, this would cause a rare race condition.
|
||||||
|
if scheduledCondition != nil {
|
||||||
|
Expect(scheduledCondition.Status).To(Equal(api.ConditionTrue))
|
||||||
|
}
|
||||||
scheduledPods = append(scheduledPods, pod)
|
scheduledPods = append(scheduledPods, pod)
|
||||||
} else {
|
} else {
|
||||||
_, scheduledCondition := api.GetPodCondition(&pod.Status, api.PodScheduled)
|
_, scheduledCondition := api.GetPodCondition(&pod.Status, api.PodScheduled)
|
||||||
Expect(scheduledCondition != nil).To(Equal(true))
|
if scheduledCondition != nil {
|
||||||
Expect(scheduledCondition.Status).To(Equal(api.ConditionFalse))
|
Expect(scheduledCondition.Status).To(Equal(api.ConditionFalse))
|
||||||
|
}
|
||||||
if scheduledCondition.Reason == "Unschedulable" {
|
if scheduledCondition.Reason == "Unschedulable" {
|
||||||
notScheduledPods = append(notScheduledPods, pod)
|
notScheduledPods = append(notScheduledPods, pod)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user