in teamcity-kubernetes-plugin-server/src/main/java/jetbrains/buildServer/clouds/kubernetes/KubeCloudClient.java [192:208]
public CanStartNewInstanceResult canStartNewInstanceWithDetails(@NotNull CloudImage image) {
KubeCloudImage kubeCloudImage = (KubeCloudImage)image;
String kubeCloudImageId = kubeCloudImage.getId();
if(!myImageIdToImageMap.containsKey(kubeCloudImageId)){
return CanStartNewInstanceResult.no("Can't start instance of unknown cloud image with id " + kubeCloudImageId);
}
int profileInstanceLimit = myKubeClientParams.getInstanceLimit();
if(profileInstanceLimit >= 0 && myImageIdToImageMap.values().stream().mapToInt(KubeCloudImage::getRunningInstanceCount).sum() >= profileInstanceLimit) {
return CanStartNewInstanceResult.no("Profile instance limit reached");
}
int imageLimit = kubeCloudImage.getInstanceLimit();
if (imageLimit >= 0 && kubeCloudImage.getRunningInstanceCount() >= imageLimit){
return CanStartNewInstanceResult.no("Image instance limit reached");
}
return CanStartNewInstanceResult.yes();
}