in internal/api/v1/authproxyworkload_webhook.go [232:263]
func validateWorkload(spec *WorkloadSelectorSpec, f *field.Path) field.ErrorList {
var errs field.ErrorList
if spec.Selector != nil {
verr := validation.ValidateLabelSelector(spec.Selector, validation.LabelSelectorValidationOptions{}, f.Child("selector"))
errs = append(errs, verr...)
}
if spec.Name != "" && spec.Selector != nil {
errs = append(errs, field.Invalid(f.Child("name"), spec,
"WorkloadSelectorSpec must specify either name or selector. Both were set."))
}
if spec.Name == "" && spec.Selector == nil {
errs = append(errs, field.Invalid(f.Child("name"), spec,
"WorkloadSelectorSpec must specify either name or selector. Neither was set."))
}
_, gk := schema.ParseKindArg(spec.Kind)
var found bool
for _, kind := range supportedKinds {
if kind == gk.Kind {
found = true
break
}
}
if !found {
errs = append(errs, field.Invalid(f.Child("kind"), spec.Kind,
fmt.Sprintf("Kind was %q, must be one of CronJob, Job, StatefulSet, Deployment, DaemonSet or Pod", gk.Kind)))
}
return errs
}