in pkg/validate/validate_component.go [85:126]
func ComponentSet(cs *bundle.ComponentSet) field.ErrorList {
p := field.NewPath("ComponentSet")
errs := field.ErrorList{}
if cs == nil {
return errs
}
n := cs.Spec.SetName
if n == "" {
errs = append(errs, field.Required(p.Child("Spec", "SetName"), "setName is required"))
}
ver := cs.Spec.Version
if ver == "" {
errs = append(errs, field.Required(p.Child("Spec", "Version"), "version is required"))
}
if n == "" || ver == "" {
// Other validation relies on components having a unique name+version pair.
return errs
}
if nameErrs := validateName(p.Child("Spec", "SetName"), n); len(nameErrs) > 0 {
errs = append(errs, nameErrs...)
}
api := cs.APIVersion
if !apiVersionPattern.MatchString(api) {
errs = append(errs, field.Invalid(p.Child("APIVersion"), api, "must have an apiVersion of the form \"bundle.gke.io/<version>\""))
}
expType := "ComponentSet"
if k := cs.Kind; k != expType {
errs = append(errs, field.Invalid(p.Child("Kind"), k, "must be ComponentSet"))
}
if _, err := semver.Parse(ver); err != nil {
errs = append(errs, field.Invalid(p.Child("Spec", "Version"), ver, fmt.Sprintf("must be a SemVer version: %v", err)))
}
return errs
}