diff --git a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/SparkKubernetesClientFactory.scala b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/SparkKubernetesClientFactory.scala index bc0e7934024b..3763aeadea0e 100644 --- a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/SparkKubernetesClientFactory.scala +++ b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/SparkKubernetesClientFactory.scala @@ -30,18 +30,28 @@ import okhttp3.Dispatcher import okhttp3.OkHttpClient import org.apache.spark.SparkConf +import org.apache.spark.annotation.{DeveloperApi, Since, Stable} import org.apache.spark.deploy.k8s.Config._ import org.apache.spark.internal.Logging import org.apache.spark.internal.config.ConfigEntry import org.apache.spark.util.ThreadUtils /** + * :: DeveloperApi :: + * * Spark-opinionated builder for Kubernetes clients. It uses a prefix plus common suffixes to * parse configuration keys, similar to the manner in which Spark's SecurityManager parses SSL * options for different components. + * + * This can be used to implement new ExternalClusterManagers. + * + * @since 4.0.0 */ -private[spark] object SparkKubernetesClientFactory extends Logging { +@Stable +@DeveloperApi +object SparkKubernetesClientFactory extends Logging { + @Since("4.0.0") def createKubernetesClient( master: String, namespace: Option[String],