in pkg/webhooks/workload_webhook.go [95:128]
func ValidateWorkload(obj *kueue.Workload) field.ErrorList {
var allErrs field.ErrorList
specPath := field.NewPath("spec")
for i := range obj.Spec.PodSets {
allErrs = append(allErrs, validatePodSet(&obj.Spec.PodSets[i], specPath.Child("podSets").Index(i))...)
}
if len(obj.Spec.PriorityClassName) > 0 {
msgs := validation.IsDNS1123Subdomain(obj.Spec.PriorityClassName)
if len(msgs) > 0 {
for _, msg := range msgs {
allErrs = append(allErrs, field.Invalid(specPath.Child("priorityClassName"), obj.Spec.PriorityClassName, msg))
}
}
if obj.Spec.Priority == nil {
allErrs = append(allErrs, field.Invalid(specPath.Child("priority"), obj.Spec.Priority, "priority should not be nil when priorityClassName is set"))
}
}
if len(obj.Spec.QueueName) > 0 {
allErrs = append(allErrs, validateNameReference(obj.Spec.QueueName, specPath.Child("queueName"))...)
}
statusPath := field.NewPath("status")
if workload.IsAdmitted(obj) {
allErrs = append(allErrs, validateAdmission(obj, statusPath.Child("admission"))...)
}
allErrs = append(allErrs, metav1validation.ValidateConditions(obj.Status.Conditions, statusPath.Child("conditions"))...)
allErrs = append(allErrs, validateReclaimablePods(obj, statusPath.Child("reclaimablePods"))...)
return allErrs
}