Validate Service.Spec.publicIPs to be a valid IP that is not a localhost

This commit is contained in:
Filip Grzadkowski
2015-03-16 15:03:05 +01:00
parent d0b468f4b0
commit 24eb1a08f3
4 changed files with 65 additions and 0 deletions

View File

@@ -758,6 +758,14 @@ func ValidateService(service *api.Service) errs.ValidationErrorList {
}
}
for _, ip := range service.Spec.PublicIPs {
if ip == "0.0.0.0" {
allErrs = append(allErrs, errs.NewFieldInvalid("spec.publicIPs", ip, "is not an IP address"))
} else if util.IsValidIP(ip) && net.ParseIP(ip).IsLoopback() {
allErrs = append(allErrs, errs.NewFieldInvalid("spec.publicIPs", ip, "publicIP cannot be a loopback"))
}
}
return allErrs
}