cc13ny commented on a change in pull request #17554: URL: https://github.com/apache/flink/pull/17554#discussion_r755719881
########## 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: @Aitozi I think that's the key part of this change except other code re-organization. But I don't understand the PR title for the following - Is failing to get the cluster client **same as** failing to start that k8s cluster? - Which code to kill the cluster **OR** just failing to deploy means killing? -- 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