From 933712fc274bc3520a21e78dced95822002d2bc6 Mon Sep 17 00:00:00 2001 From: wilmerdooley Date: Fri, 19 Jun 2026 20:38:17 +0000 Subject: [PATCH] [FLINK-39788][kubernetes] Pekko error "Actor not found" when Kubernetes namespace starts from digit Signed-off-by: wilmerdooley --- .../kubeclient/decorators/ExternalServiceDecorator.java | 2 +- .../kubeclient/decorators/InternalServiceDecorator.java | 2 +- .../org/apache/flink/kubernetes/utils/KubernetesUtils.java | 2 +- .../flink/kubernetes/KubernetesClusterDescriptorTest.java | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/ExternalServiceDecorator.java b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/ExternalServiceDecorator.java index d42f4513ddb99..9d722102ef3f6 100644 --- a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/ExternalServiceDecorator.java +++ b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/ExternalServiceDecorator.java @@ -60,6 +60,6 @@ public static String getExternalServiceName(String clusterId) { * project, so do not delete it. */ public static String getNamespacedExternalServiceName(String clusterId, String namespace) { - return getExternalServiceName(clusterId) + "." + namespace; + return getExternalServiceName(clusterId) + "." + namespace + ".svc"; } } diff --git a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/InternalServiceDecorator.java b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/InternalServiceDecorator.java index 35a4abf1d1a9d..2811339d13282 100644 --- a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/InternalServiceDecorator.java +++ b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/kubeclient/decorators/InternalServiceDecorator.java @@ -75,6 +75,6 @@ public static String getInternalServiceName(String clusterId) { /** Generate namespaced name of the internal Service. */ public static String getNamespacedInternalServiceName(String clusterId, String namespace) { - return getInternalServiceName(clusterId) + "." + namespace; + return getInternalServiceName(clusterId) + "." + namespace + ".svc"; } } diff --git a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/utils/KubernetesUtils.java b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/utils/KubernetesUtils.java index 7786c0add5648..343f9d5d88624 100644 --- a/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/utils/KubernetesUtils.java +++ b/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/utils/KubernetesUtils.java @@ -691,7 +691,7 @@ public static String extractLeaderName(String key) { /** Generate namespaced name of the service. */ public static String getNamespacedServiceName(Service service) { - return service.getMetadata().getName() + "." + service.getMetadata().getNamespace(); + return service.getMetadata().getName() + "." + service.getMetadata().getNamespace() + ".svc"; } private KubernetesUtils() {} diff --git a/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/KubernetesClusterDescriptorTest.java b/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/KubernetesClusterDescriptorTest.java index 5dda11ed4f23a..30d06ab975827 100644 --- a/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/KubernetesClusterDescriptorTest.java +++ b/flink-kubernetes/src/test/java/org/apache/flink/kubernetes/KubernetesClusterDescriptorTest.java @@ -243,7 +243,8 @@ void testDeployApplicationClusterWithClusterIP() throws Exception { .deployApplicationCluster(clusterSpecification, appConfig) .getClusterClient(); - final String address = CLUSTER_ID + Constants.FLINK_REST_SERVICE_SUFFIX + "." + NAMESPACE; + final String address = + CLUSTER_ID + Constants.FLINK_REST_SERVICE_SUFFIX + "." + NAMESPACE + ".svc"; final int port = flinkConfig.get(RestOptions.PORT); assertThat(clusterClient.getWebInterfaceURL()) .isEqualTo(String.format("http://%s:%d", address, port));