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 510609537cf2..60ded7cbd0c2 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 @@ -256,6 +256,7 @@ private[spark] object KubernetesConf { .toLowerCase(Locale.ROOT) .replaceAll("[^a-z0-9\\-]", "-") .replaceAll("-+", "-") + .replaceAll("^-", "") } def getAppNameLabel(appName: String): String = { diff --git a/resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/KubernetesConfSuite.scala b/resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/KubernetesConfSuite.scala index d33d79249104..95ef27c2a18a 100644 --- a/resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/KubernetesConfSuite.scala +++ b/resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/KubernetesConfSuite.scala @@ -250,4 +250,8 @@ class KubernetesConfSuite extends SparkFunSuite { assert(KubernetesConf.getAppNameLabel("a" * 62 + "-aaa") === "a" * 62) assert(KubernetesConf.getAppNameLabel("-" + "a" * 63) === "a" * 62) } + + test("SPARK-40869: Resource name prefix should not start with a hyphen") { + assert(KubernetesConf.getResourceNamePrefix("_hello_").startsWith("hello")) + } }