trait KubernetesDriverCustomFeatureConfigStep extends KubernetesFeatureConfigStep
:: DeveloperApi ::
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. } }
- Annotations
- @Unstable() @DeveloperApi()
- Alphabetic
- By Inheritance
- KubernetesDriverCustomFeatureConfigStep
- KubernetesFeatureConfigStep
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def configurePod(pod: SparkPod): SparkPod
Apply modifications on the given pod in accordance to this feature.
Apply modifications on the given pod in accordance to this feature. This can include attaching volumes, adding environment variables, and adding labels/annotations.
Note that we should return a SparkPod that keeps all of the properties of the passed SparkPod object. So this is correct:
val configuredPod = new PodBuilder(pod.pod) .editSpec() ... .build() val configuredContainer = new ContainerBuilder(pod.container) ... .build() SparkPod(configuredPod, configuredContainer)
val configuredPod = new PodBuilder() // Loses the original state .editSpec() ... .build() val configuredContainer = new ContainerBuilder() // Loses the original state ... .build() SparkPod(configuredPod, configuredContainer)
- Definition Classes
- KubernetesFeatureConfigStep
- abstract def init(config: KubernetesDriverConf): Unit
Initialize the configuration for driver user feature step, this only applicable when user specified
spark.kubernetes.driver.pod.featureSteps
, the init will be called after feature step loading.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def getAdditionalKubernetesResources(): Seq[HasMetadata]
Return any additional Kubernetes resources that should be added to support this feature.
Return any additional Kubernetes resources that should be added to support this feature. Only applicable when creating the driver in cluster mode. Resources would be setup/refresh after Pod creation.
- Definition Classes
- KubernetesFeatureConfigStep
- def getAdditionalPodSystemProperties(): Map[String, String]
Return any system properties that should be set on the JVM in accordance to this feature.
Return any system properties that should be set on the JVM in accordance to this feature.
- Definition Classes
- KubernetesFeatureConfigStep
- def getAdditionalPreKubernetesResources(): Seq[HasMetadata]
Return any additional Kubernetes resources that should be added to support this feature.
Return any additional Kubernetes resources that should be added to support this feature. Only applicable when creating the driver in cluster mode. Resources would be setup/refresh before Pod creation.
- Definition Classes
- KubernetesFeatureConfigStep
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()