public CloudClientEx createNewClient()

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;
        }
    }