@@ -27,6 +27,7 @@ use stackable_operator::{
2727 } ,
2828 } ,
2929 apimachinery:: pkg:: apis:: meta:: v1:: LabelSelector ,
30+ DeepMerge ,
3031 } ,
3132 kube:: {
3233 core:: { error_boundary, DeserializeGuard } ,
@@ -525,7 +526,11 @@ fn build_deployment(
525526 ) ;
526527 }
527528
528- let pod_template = pb. build_template ( ) ;
529+ // Merge user defined pod template if available
530+ let mut pod_template = pb. build_template ( ) ;
531+ if let Some ( pod_overrides_spec) = scs. spec . server . as_ref ( ) . map ( |s| s. pod_overrides . clone ( ) ) {
532+ pod_template. merge_from ( pod_overrides_spec) ;
533+ }
529534
530535 Ok ( Deployment {
531536 metadata : ObjectMetaBuilder :: new ( )
@@ -768,6 +773,8 @@ fn jvm_security_properties(
768773 to_java_properties_string ( result. iter ( ) ) . context ( JvmSecurityPropertiesSnafu )
769774}
770775
776+ // Returns the contents of the spark properties file.
777+ // It merges operator properties with user properties.
771778#[ allow( clippy:: result_large_err) ]
772779fn spark_properties (
773780 driver_service : & Service ,
@@ -789,7 +796,11 @@ fn spark_properties(
789796 Some ( driver_service. name_any ( ) ) ,
790797 ) ,
791798 (
792- "spark.kubernetes.container.image" . to_string ( ) ,
799+ "spark.kubernetes.driver.container.image" . to_string ( ) ,
800+ Some ( spark_image. clone ( ) ) ,
801+ ) ,
802+ (
803+ "spark.kubernetes.executor.container.image" . to_string ( ) ,
793804 Some ( spark_image) ,
794805 ) ,
795806 ( "spark.kubernetes.namespace" . to_string ( ) , Some ( namespace) ) ,
0 commit comments