code: func ValidateServiceUpdate(service, oldService *core.Service) field.ErrorList {
  	allErrs := ValidateObjectMetaUpdate(&service.ObjectMeta, &oldService.ObjectMeta, field.NewPath("metadata"))
  
  	// ClusterIP should be immutable for services using it (every type other than ExternalName)
  	// which do not have ClusterIP assigned yet (empty string value)
  	if service.Spec.Type != core.ServiceTypeExternalName {
  		if oldService.Spec.Type != core.ServiceTypeExternalName && oldService.Spec.ClusterIP != "" {
  			allErrs = append(allErrs, ValidateImmutableField(service.Spec.ClusterIP, oldService.Spec.ClusterIP, field.NewPath("spec", "clusterIP"))...)
  		}
  	}
  
  	allErrs = append(allErrs, ValidateService(service)...)
  	return allErrs
  }
docs: // ValidateServiceUpdate tests if required fields in the service are set during an update