in teamcity-kubernetes-plugin-server/src/main/java/jetbrains/buildServer/clouds/kubernetes/KubeCloudClientFactory.java [113:144]
public CloudClientEx createNewClient(@NotNull CloudState cloudState, @NotNull CloudClientParameters cloudClientParameters) {
try {
final KubeCloudClientParametersImpl kubeClientParams = KubeCloudClientParametersImpl.create(cloudClientParameters);
final ExecutorService executorService = ExecutorsFactory.newFixedScheduledDaemonExecutor("Async cloud tasks for " + cloudState.getProfileId(), 2);
final KubeApiConnector apiConnector = new KubeApiConnectorImpl(cloudState.getProfileId(),
kubeClientParams,
myAuthStrategies.get(kubeClientParams.getAuthStrategy()),
myCredentialsFactory);
List<KubeCloudImage> images = CollectionsUtil.convertCollection(kubeClientParams.getImages(), kubeCloudImageData -> {
final KubeCloudImageImpl kubeCloudImage =
new KubeCloudImageImpl(kubeCloudImageData, apiConnector);
kubeCloudImage.populateInstances();
return kubeCloudImage;
});
return new KubeCloudClient(
apiConnector, myServerSettings.getServerUUID(),
cloudState.getProfileId(),
images,
kubeClientParams,
myUpdater,
myPodTemplateProviders,
executorService,
myKubePodNameGenerator
);
} catch (Throwable ex){
if(ex instanceof KubernetesClientException){
final Throwable cause = ex.getCause();
if(cause != null) throw new CloudException(cause.getMessage(), cause);
else throw ex;
} else throw ex;
}
}