in pkg/webhooks/clusterqueue_webhook.go [126:153]
func validateResourceGroups(resourceGroups []kueue.ResourceGroup, path *field.Path) field.ErrorList {
var allErrs field.ErrorList
seenResources := sets.New[corev1.ResourceName]()
seenFlavors := sets.New[kueue.ResourceFlavorReference]()
for i, rg := range resourceGroups {
path := path.Index(i)
for j, name := range rg.CoveredResources {
path := path.Child("coveredResources").Index(j)
allErrs = append(allErrs, validateResourceName(name, path)...)
if seenResources.Has(name) {
allErrs = append(allErrs, field.Duplicate(path, name))
} else {
seenResources.Insert(name)
}
}
for j, fqs := range rg.Flavors {
path := path.Child("flavors").Index(j)
allErrs = append(allErrs, validateFlavorQuotas(fqs, rg.CoveredResources, path)...)
if seenFlavors.Has(fqs.Name) {
allErrs = append(allErrs, field.Duplicate(path.Child("name"), fqs.Name))
} else {
seenFlavors.Insert(fqs.Name)
}
}
}
return allErrs
}