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 bbd05e9f67c51..0edd94d3370ab 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 @@ -25,6 +25,45 @@ import org.apache.spark.deploy.k8s.KubernetesDriverConf * A base interface to help user extend custom feature step in driver side. * Note: If your custom feature step would be used only in driver or both in driver and executor, * please use this. + * + * Example of driver feature step: + * + * {{{ + * class DriverExampleFeatureStep extends KubernetesDriverCustomFeatureConfigStep { + * private var driverConf: KubernetesDriverConf = _ + * + * override def init(conf: KubernetesDriverConf): Unit = { + * driverConf = conf + * } + * + * // Implements methods of `KubernetesFeatureConfigStep`, such as `configurePod` + * override def configurePod(pod: SparkPod): SparkPod = { + * // Apply modifications on the given pod in accordance to this feature. + * } + * } + * }}} + * + * Example of feature step for both driver and executor: + * + * {{{ + * class DriverAndExecutorExampleFeatureStep extends KubernetesDriverCustomFeatureConfigStep + * with KubernetesExecutorCustomFeatureConfigStep { + * private var kubernetesConf: KubernetesConf = _ + * + * override def init(conf: KubernetesDriverConf): Unit = { + * kubernetesConf = conf + * } + * + * override def init(conf: KubernetesExecutorConf): Unit = { + * kubernetesConf = conf + * } + * + * // Implements methods of `KubernetesFeatureConfigStep`, such as `configurePod` + * override def configurePod(pod: SparkPod): SparkPod = { + * // Apply modifications on the given pod in accordance to this feature. + * } + * } + * }}} */ @Unstable @DeveloperApi 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 062fa7dbf1413..dfb1c768c990e 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 @@ -25,6 +25,45 @@ import org.apache.spark.deploy.k8s.KubernetesExecutorConf * A base interface to help user extend custom feature step in executor side. * Note: If your custom feature step would be used only in driver or both in driver and executor, * please use this. + * + * Example of executor feature step: + * + * {{{ + * class ExecutorExampleFeatureStep extends KubernetesExecutorCustomFeatureConfigStep { + * private var executorConf: KubernetesExecutorConf = _ + * + * override def init(conf: KubernetesExecutorConf): Unit = { + * executorConf = conf + * } + * + * // Implements methods of `KubernetesFeatureConfigStep`, such as `configurePod` + * override def configurePod(pod: SparkPod): SparkPod = { + * // Apply modifications on the given pod in accordance to this feature. + * } + * } + * }}} + * + * Example of feature step for both driver and executor: + * + * {{{ + * class DriverAndExecutorExampleFeatureStep extends KubernetesDriverCustomFeatureConfigStep + * with KubernetesExecutorCustomFeatureConfigStep { + * private var kubernetesConf: KubernetesConf = _ + * + * override def init(conf: KubernetesDriverConf): Unit = { + * kubernetesConf = conf + * } + * + * override def init(conf: KubernetesExecutorConf): Unit = { + * kubernetesConf = conf + * } + * + * // Implements methods of `KubernetesFeatureConfigStep`, such as `configurePod` + * override def configurePod(pod: SparkPod): SparkPod = { + * // Apply modifications on the given pod in accordance to this feature. + * } + * } + * }}} */ @Unstable @DeveloperApi