in api/v1beta1/teamcity_webhook.go [188:209]
func validateResponsibilitiesOfAllNodes(teamcity *TeamCity) (warning string, err error) {
//it is allowed to have empty responsibilities for all nodes
if allNodesHaveEmptyResponsibility(teamcity.Spec.MainNode, teamcity.Spec.SecondaryNodes) {
return "", nil
}
//if responsibilities are specified for at least one node, we need to check all of them
if err = validateMainNodeResponsibilities("teamcity.spec.mainNode", teamcity.Spec.MainNode, validMainNodeResponsibilities, minimumRequiredMainNodeResponsibilities); err != nil {
return "", err
}
for idx, secondaryNode := range teamcity.Spec.SecondaryNodes {
if err = validateNodeResponsibilities(fmt.Sprintf("teamcity.spec.secondaryNode[%d]", idx), secondaryNode, validSecondaryNodeResponsibilities); err != nil {
return "", err
}
}
//make sure that all responsibilities are assigned
if warning := validatePresenceOfAllResponsibilities(allTeamCityResponsibilities, teamcity.Spec.MainNode, teamcity.Spec.SecondaryNodes); warning != "" {
return warning, err
}
return "", nil
}