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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]