From 1a06f410f5096d0c46960628ff3149a6daa6df0b Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Mon, 23 Feb 2026 19:50:57 -0800 Subject: [PATCH] [SPARK-55649][K8S] Promote `Kubernetes(Driver|Executor)?FeatureConfigStep` to `Stable` --- docs/running-on-kubernetes.md | 4 ++-- .../features/KubernetesDriverCustomFeatureConfigStep.scala | 5 +++-- .../features/KubernetesExecutorCustomFeatureConfigStep.scala | 5 +++-- .../deploy/k8s/features/KubernetesFeatureConfigStep.scala | 5 +++-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/docs/running-on-kubernetes.md b/docs/running-on-kubernetes.md index 46efb479a2fe3..c1d50f3ecfb3e 100644 --- a/docs/running-on-kubernetes.md +++ b/docs/running-on-kubernetes.md @@ -1611,7 +1611,7 @@ See the [configuration page](configuration.html) for information on Spark config (none) Class names of an extra driver pod feature step implementing - `KubernetesFeatureConfigStep`. This is a developer API. Comma separated. + `KubernetesFeatureConfigStep`. This is a stable developer API. Comma separated. Runs after all of Spark internal feature steps. Since 3.3.0, your driver feature step can implement `KubernetesDriverCustomFeatureConfigStep` where the driver config is also available. @@ -1632,7 +1632,7 @@ See the [configuration page](configuration.html) for information on Spark config (none) Class names of an extra executor pod feature step implementing - `KubernetesFeatureConfigStep`. This is a developer API. Comma separated. + `KubernetesFeatureConfigStep`. This is a stable developer API. Comma separated. Runs after all of Spark internal feature steps. Since 3.3.0, your executor feature step can implement `KubernetesExecutorCustomFeatureConfigStep` where the executor config is also available. diff --git a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/KubernetesDriverCustomFeatureConfigStep.scala b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/KubernetesDriverCustomFeatureConfigStep.scala index 0edd94d3370ab..84392f897ae30 100644 --- a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/KubernetesDriverCustomFeatureConfigStep.scala +++ b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/KubernetesDriverCustomFeatureConfigStep.scala @@ -16,7 +16,7 @@ */ package org.apache.spark.deploy.k8s.features -import org.apache.spark.annotation.{DeveloperApi, Unstable} +import org.apache.spark.annotation.{DeveloperApi, Since, Stable} import org.apache.spark.deploy.k8s.KubernetesDriverConf /** @@ -65,8 +65,9 @@ import org.apache.spark.deploy.k8s.KubernetesDriverConf * } * }}} */ -@Unstable +@Stable @DeveloperApi +@Since("3.3.0") trait KubernetesDriverCustomFeatureConfigStep extends KubernetesFeatureConfigStep { /** * Initialize the configuration for driver user feature step, this only applicable when user diff --git a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/KubernetesExecutorCustomFeatureConfigStep.scala b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/KubernetesExecutorCustomFeatureConfigStep.scala index dfb1c768c990e..6a1505ce78133 100644 --- a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/KubernetesExecutorCustomFeatureConfigStep.scala +++ b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/KubernetesExecutorCustomFeatureConfigStep.scala @@ -16,7 +16,7 @@ */ package org.apache.spark.deploy.k8s.features -import org.apache.spark.annotation.{DeveloperApi, Unstable} +import org.apache.spark.annotation.{DeveloperApi, Since, Stable} import org.apache.spark.deploy.k8s.KubernetesExecutorConf /** @@ -65,8 +65,9 @@ import org.apache.spark.deploy.k8s.KubernetesExecutorConf * } * }}} */ -@Unstable +@Stable @DeveloperApi +@Since("3.3.0") trait KubernetesExecutorCustomFeatureConfigStep extends KubernetesFeatureConfigStep { /** * Initialize the configuration for executor user feature step, this only applicable when user diff --git a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/KubernetesFeatureConfigStep.scala b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/KubernetesFeatureConfigStep.scala index fcb789f4ae7f4..1f5776dd26dc8 100644 --- a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/KubernetesFeatureConfigStep.scala +++ b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/KubernetesFeatureConfigStep.scala @@ -18,7 +18,7 @@ package org.apache.spark.deploy.k8s.features import io.fabric8.kubernetes.api.model.HasMetadata -import org.apache.spark.annotation.{DeveloperApi, Unstable} +import org.apache.spark.annotation.{DeveloperApi, Since, Stable} import org.apache.spark.deploy.k8s.SparkPod /** @@ -27,8 +27,9 @@ import org.apache.spark.deploy.k8s.SparkPod * A collection of functions that together represent a "feature" in pods that are launched for * Spark drivers and executors. */ -@Unstable +@Stable @DeveloperApi +@Since("3.3.0") trait KubernetesFeatureConfigStep { /**