in teamcity-kubernetes-plugin-server/src/main/java/jetbrains/buildServer/clouds/kubernetes/KubePodNameGeneratorImpl.java [106:130]
public String generateNewVmName(@NotNull KubeCloudImage image) {
try {
myLock.readLock().lock();
if (!myIsAvailable.get()){
throw new CloudException("Unable to generate a name for image " + image.getId() + " - server is shutting down");
}
String newVmName;
do {
String prefix = image.getAgentNamePrefix();
if (StringUtil.isEmptyOrSpaces(prefix)) {
prefix = image.getDockerImage();
}
if (StringUtil.isEmptyOrSpaces(prefix)) {
return UUID.randomUUID().toString();
}
prefix = StringUtil.replaceNonAlphaNumericChars(prefix.trim().toLowerCase(), '-');
newVmName = String.format("%s-%d", prefix, getNextCounter(prefix));
setTouched(prefix);
} while (image.findInstanceById(newVmName) != null);
return newVmName;
} finally {
myLock.readLock().unlock();
}
}