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
- All
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:
This is incorrect: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( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): 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[_]
- 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()