From 7ed72cba7824cc682c3b74ca54e276ef91012518 Mon Sep 17 00:00:00 2001 From: hehuiyuan Date: Tue, 11 Jun 2019 15:14:28 +0800 Subject: [PATCH] deal with the first character that is '-' for PodName and is digit for ServiceName --- .../scala/org/apache/spark/deploy/k8s/KubernetesConf.scala | 1 + .../deploy/k8s/features/DriverServiceFeatureStep.scala | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/KubernetesConf.scala b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/KubernetesConf.scala index a2a46614fb8f8..844bb24b0b9fd 100644 --- a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/KubernetesConf.scala +++ b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/KubernetesConf.scala @@ -198,6 +198,7 @@ private[spark] object KubernetesConf { .replaceAll("\\.", "-") .replaceAll("[^a-z0-9\\-]", "") .replaceAll("-+", "-") + .replaceAll("^-", "") } /** diff --git a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/DriverServiceFeatureStep.scala b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/DriverServiceFeatureStep.scala index 925bcdf3e637f..1ec0d8671cf51 100644 --- a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/DriverServiceFeatureStep.scala +++ b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/DriverServiceFeatureStep.scala @@ -39,14 +39,15 @@ private[spark] class DriverServiceFeatureStep( "managed via a Kubernetes service.") private val preferredServiceName = s"${kubernetesConf.resourceNamePrefix}$DRIVER_SVC_POSTFIX" - private val resolvedServiceName = if (preferredServiceName.length <= MAX_SERVICE_NAME_LENGTH) { + private val resolvedServiceName = if (preferredServiceName.length <= MAX_SERVICE_NAME_LENGTH + && Character.isLetter(preferredServiceName.charAt(0))) { preferredServiceName } else { val randomServiceId = KubernetesUtils.uniqueID(clock = clock) val shorterServiceName = s"spark-$randomServiceId$DRIVER_SVC_POSTFIX" logWarning(s"Driver's hostname would preferably be $preferredServiceName, but this is " + - s"too long (must be <= $MAX_SERVICE_NAME_LENGTH characters). Falling back to use " + - s"$shorterServiceName as the driver service's name.") + s"too long (must be <= $MAX_SERVICE_NAME_LENGTH characters) or is not a valid service name." + + s"Falling back to use $shorterServiceName as the driver service's name.") shorterServiceName }