@@ -17,6 +17,7 @@ use product_config::{
1717use snafu:: { OptionExt , ResultExt , Snafu } ;
1818use stackable_operator:: {
1919 builder:: {
20+ self ,
2021 configmap:: ConfigMapBuilder ,
2122 meta:: ObjectMetaBuilder ,
2223 pod:: { container:: ContainerBuilder , resources:: ResourceRequirementsBuilder , PodBuilder } ,
@@ -245,6 +246,14 @@ pub enum Error {
245246
246247 #[ snafu( display( "failed to add TLS volume mounts" ) ) ]
247248 AddTlsVolumeMounts { source : security:: Error } ,
249+
250+ #[ snafu( display( "failed to add needed volume" ) ) ]
251+ AddVolume { source : builder:: pod:: Error } ,
252+
253+ #[ snafu( display( "failed to add needed volumeMount" ) ) ]
254+ AddVolumeMount {
255+ source : builder:: pod:: container:: Error ,
256+ } ,
248257}
249258
250259impl ReconcilerError for Error {
@@ -285,6 +294,8 @@ impl ReconcilerError for Error {
285294 Error :: BuildLabel { .. } => None ,
286295 Error :: ObjectMeta { .. } => None ,
287296 Error :: AddTlsVolumeMounts { .. } => None ,
297+ Error :: AddVolume { .. } => None ,
298+ Error :: AddVolumeMount { .. } => None ,
288299 }
289300 }
290301}
@@ -801,9 +812,13 @@ fn build_server_rolegroup_statefulset(
801812 ..EnvVar :: default ( )
802813 } ] )
803814 . add_volume_mount ( "data" , STACKABLE_DATA_DIR )
815+ . unwrap ( )
804816 . add_volume_mount ( "config" , STACKABLE_CONFIG_DIR )
817+ . unwrap ( )
805818 . add_volume_mount ( "rwconfig" , STACKABLE_RW_CONFIG_DIR )
819+ . unwrap ( )
806820 . add_volume_mount ( "log" , STACKABLE_LOG_DIR )
821+ . unwrap ( )
807822 . resources (
808823 ResourceRequirementsBuilder :: new ( )
809824 . with_cpu_request ( "200m" )
@@ -860,10 +875,15 @@ fn build_server_rolegroup_statefulset(
860875 . add_container_port ( "zk-election" , 3888 )
861876 . add_container_port ( "metrics" , 9505 )
862877 . add_volume_mount ( "data" , STACKABLE_DATA_DIR )
878+ . unwrap ( )
863879 . add_volume_mount ( "config" , STACKABLE_CONFIG_DIR )
880+ . unwrap ( )
864881 . add_volume_mount ( "log-config" , STACKABLE_LOG_CONFIG_DIR )
882+ . unwrap ( )
865883 . add_volume_mount ( "rwconfig" , STACKABLE_RW_CONFIG_DIR )
884+ . unwrap ( )
866885 . add_volume_mount ( "log" , STACKABLE_LOG_DIR )
886+ . unwrap ( )
867887 . resources ( resources)
868888 . build ( ) ;
869889
@@ -892,6 +912,7 @@ fn build_server_rolegroup_statefulset(
892912 } ) ,
893913 ..Volume :: default ( )
894914 } )
915+ . context ( AddVolumeSnafu ) ?
895916 . add_volume ( Volume {
896917 empty_dir : Some ( EmptyDirVolumeSource {
897918 medium : None ,
@@ -900,12 +921,14 @@ fn build_server_rolegroup_statefulset(
900921 name : "rwconfig" . to_string ( ) ,
901922 ..Volume :: default ( )
902923 } )
924+ . context ( AddVolumeSnafu ) ?
903925 . add_empty_dir_volume (
904926 "log" ,
905927 Some ( product_logging:: framework:: calculate_log_volume_size_limit (
906928 & [ MAX_ZK_LOG_FILES_SIZE , MAX_PREPARE_LOG_FILE_SIZE ] ,
907929 ) ) ,
908930 )
931+ . context ( AddVolumeSnafu ) ?
909932 . security_context ( PodSecurityContext {
910933 run_as_user : Some ( ZK_UID ) ,
911934 run_as_group : Some ( 0 ) ,
@@ -921,38 +944,45 @@ fn build_server_rolegroup_statefulset(
921944 } ) ) ,
922945 } ) = logging. containers . get ( & Container :: Zookeeper )
923946 {
924- pod_builder. add_volume ( Volume {
925- name : "log-config" . to_string ( ) ,
926- config_map : Some ( ConfigMapVolumeSource {
927- name : config_map. into ( ) ,
928- ..ConfigMapVolumeSource :: default ( )
929- } ) ,
930- ..Volume :: default ( )
931- } ) ;
947+ pod_builder
948+ . add_volume ( Volume {
949+ name : "log-config" . to_string ( ) ,
950+ config_map : Some ( ConfigMapVolumeSource {
951+ name : config_map. into ( ) ,
952+ ..ConfigMapVolumeSource :: default ( )
953+ } ) ,
954+ ..Volume :: default ( )
955+ } )
956+ . context ( AddVolumeSnafu ) ?;
932957 } else {
933- pod_builder. add_volume ( Volume {
934- name : "log-config" . to_string ( ) ,
935- config_map : Some ( ConfigMapVolumeSource {
936- name : rolegroup_ref. object_name ( ) ,
937- ..ConfigMapVolumeSource :: default ( )
938- } ) ,
939- ..Volume :: default ( )
940- } ) ;
958+ pod_builder
959+ . add_volume ( Volume {
960+ name : "log-config" . to_string ( ) ,
961+ config_map : Some ( ConfigMapVolumeSource {
962+ name : rolegroup_ref. object_name ( ) ,
963+ ..ConfigMapVolumeSource :: default ( )
964+ } ) ,
965+ ..Volume :: default ( )
966+ } )
967+ . context ( AddVolumeSnafu ) ?;
941968 }
942969
943970 if logging. enable_vector_agent {
944- pod_builder. add_container ( product_logging:: framework:: vector_container (
945- resolved_product_image,
946- "config" ,
947- "log" ,
948- logging. containers . get ( & Container :: Vector ) ,
949- ResourceRequirementsBuilder :: new ( )
950- . with_cpu_request ( "250m" )
951- . with_cpu_limit ( "500m" )
952- . with_memory_request ( "128Mi" )
953- . with_memory_limit ( "128Mi" )
954- . build ( ) ,
955- ) ) ;
971+ pod_builder. add_container (
972+ product_logging:: framework:: vector_container (
973+ resolved_product_image,
974+ "config" ,
975+ "log" ,
976+ logging. containers . get ( & Container :: Vector ) ,
977+ ResourceRequirementsBuilder :: new ( )
978+ . with_cpu_request ( "250m" )
979+ . with_cpu_limit ( "500m" )
980+ . with_memory_request ( "128Mi" )
981+ . with_memory_limit ( "128Mi" )
982+ . build ( ) ,
983+ )
984+ . unwrap ( ) ,
985+ ) ;
956986 }
957987
958988 add_graceful_shutdown_config ( config, & mut pod_builder) . context ( GracefulShutdownSnafu ) ?;
0 commit comments