diff --git a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/KubernetesClusterManager.scala b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/KubernetesClusterManager.scala index b9d7a7083f41a..fcaa3687b14b4 100644 --- a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/KubernetesClusterManager.scala +++ b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/KubernetesClusterManager.scala @@ -50,10 +50,14 @@ private[spark] class KubernetesClusterManager extends ExternalClusterManager wit require(sc.conf.get(KUBERNETES_DRIVER_POD_NAME).isDefined, "If the application is deployed using spark-submit in cluster mode, the driver pod name " + "must be provided.") + val serviceAccountToken = + Some(new File(Config.KUBERNETES_SERVICE_ACCOUNT_TOKEN_PATH)).filter(_.exists) + val serviceAccountCaCrt = + Some(new File(Config.KUBERNETES_SERVICE_ACCOUNT_CA_CRT_PATH)).filter(_.exists) (KUBERNETES_AUTH_DRIVER_MOUNTED_CONF_PREFIX, sc.conf.get(KUBERNETES_DRIVER_MASTER_URL), - Some(new File(Config.KUBERNETES_SERVICE_ACCOUNT_TOKEN_PATH)), - Some(new File(Config.KUBERNETES_SERVICE_ACCOUNT_CA_CRT_PATH))) + serviceAccountToken, + serviceAccountCaCrt) } else { (KUBERNETES_AUTH_CLIENT_MODE_PREFIX, KubernetesUtils.parseMasterUrl(masterURL),