Aitozi commented on a change in pull request #17554: URL: https://github.com/apache/flink/pull/17554#discussion_r755729487
########## File path: flink-kubernetes/src/main/java/org/apache/flink/kubernetes/KubernetesClusterDescriptor.java ########## @@ -256,36 +244,51 @@ private String getWebMonitorAddress(Configuration configuration) throws Exceptio flinkConfig.get(JobManagerOptions.PORT)); } + final KubernetesJobManagerParameters kubernetesJobManagerParameters = + new KubernetesJobManagerParameters(flinkConfig, clusterSpecification); + + final FlinkPod podTemplate = + kubernetesJobManagerParameters + .getPodTemplateFilePath() + .map( + file -> + KubernetesUtils.loadPodFromTemplateFile( + client, file, Constants.MAIN_CONTAINER_NAME)) + .orElse(new FlinkPod.Builder().build()); + final KubernetesJobManagerSpecification kubernetesJobManagerSpec = + KubernetesJobManagerFactory.buildKubernetesJobManagerSpecification( + podTemplate, kubernetesJobManagerParameters); + + client.createJobManagerComponent(kubernetesJobManagerSpec); + + return createClusterClientProvider(clusterId); + } + + private ClusterClientProvider<String> safelyDeployCluster( + SupplierWithException<ClusterClientProvider<String>, Exception> supplier) + throws ClusterDeploymentException { try { - final KubernetesJobManagerParameters kubernetesJobManagerParameters = - new KubernetesJobManagerParameters(flinkConfig, clusterSpecification); - - final FlinkPod podTemplate = - kubernetesJobManagerParameters - .getPodTemplateFilePath() - .map( - file -> - KubernetesUtils.loadPodFromTemplateFile( - client, file, Constants.MAIN_CONTAINER_NAME)) - .orElse(new FlinkPod.Builder().build()); - final KubernetesJobManagerSpecification kubernetesJobManagerSpec = - KubernetesJobManagerFactory.buildKubernetesJobManagerSpecification( - podTemplate, kubernetesJobManagerParameters); - - client.createJobManagerComponent(kubernetesJobManagerSpec); - - return createClusterClientProvider(clusterId); + + ClusterClientProvider<String> clusterClientProvider = supplier.get(); + + try (ClusterClient<String> clusterClient = clusterClientProvider.getClusterClient()) { Review comment: 1. I think it means the failure when get cluster client failed, during the phase of deploy cluster. 2. Failing to deploy means killing. As I mentioned in [issue ](https://issues.apache.org/jira/browse/FLINK-24624?focusedCommentId=17434081&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17434081), This PR only solve the problem in case1. In session/application mode, we seems can not totally ensure there are no left resource, because the deploy process is asynchronous, it may need to handle by the client. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org