func()

in pkg/controller/jobs/mpijob/mpijob_controller.go [126:147]


func (j *MPIJob) RunWithNodeAffinity(nodeSelectors []jobframework.PodSetNodeSelector) {
	j.Spec.RunPolicy.Suspend = pointer.Bool(false)
	if len(nodeSelectors) == 0 {
		return
	}
	// The node selectors are provided in the same order as the generated list of
	// podSets, use the same ordering logic to restore them.
	orderedReplicaTypes := orderedReplicaTypes(&j.Spec)
	for index := range nodeSelectors {
		replicaType := orderedReplicaTypes[index]
		nodeSelector := nodeSelectors[index]
		if len(nodeSelector.NodeSelector) != 0 {
			if j.Spec.MPIReplicaSpecs[replicaType].Template.Spec.NodeSelector == nil {
				j.Spec.MPIReplicaSpecs[replicaType].Template.Spec.NodeSelector = nodeSelector.NodeSelector
			} else {
				for k, v := range nodeSelector.NodeSelector {
					j.Spec.MPIReplicaSpecs[replicaType].Template.Spec.NodeSelector[k] = v
				}
			}
		}
	}
}