@@ -29,7 +29,10 @@ use stackable_operator::{
2929 } ,
3030 } ,
3131 cluster_resources:: { ClusterResourceApplyStrategy , ClusterResources } ,
32- commons:: { product_image_selection:: ResolvedProductImage , rbac:: build_rbac_resources} ,
32+ commons:: {
33+ product_image_selection:: { self , ResolvedProductImage } ,
34+ rbac:: build_rbac_resources,
35+ } ,
3336 k8s_openapi:: {
3437 DeepMerge ,
3538 api:: {
@@ -296,6 +299,11 @@ pub enum Error {
296299 BuildListenerPersistentVolume {
297300 source : stackable_operator:: builder:: pod:: volume:: ListenerOperatorVolumeSourceBuilderError ,
298301 } ,
302+
303+ #[ snafu( display( "failed to resolve product image" ) ) ]
304+ ResolveProductImage {
305+ source : product_image_selection:: Error ,
306+ } ,
299307}
300308
301309impl ReconcilerError for Error {
@@ -346,6 +354,7 @@ impl ReconcilerError for Error {
346354 Error :: ApplyGroupListener { .. } => None ,
347355 Error :: BuildListenerPersistentVolume { .. } => None ,
348356 Error :: ListenerConfiguration { .. } => None ,
357+ Error :: ResolveProductImage { .. } => None ,
349358 }
350359 }
351360}
@@ -364,7 +373,8 @@ pub async fn reconcile_zk(
364373 let resolved_product_image = zk
365374 . spec
366375 . image
367- . resolve ( DOCKER_IMAGE_BASE_NAME , crate :: built_info:: PKG_VERSION ) ;
376+ . resolve ( DOCKER_IMAGE_BASE_NAME , crate :: built_info:: PKG_VERSION )
377+ . context ( ResolveProductImageSnafu ) ?;
368378
369379 let mut cluster_resources = ClusterResources :: new (
370380 APP_NAME ,
@@ -376,7 +386,7 @@ pub async fn reconcile_zk(
376386 . context ( CreateClusterResourcesSnafu ) ?;
377387
378388 let validated_config = validate_all_roles_and_groups_config (
379- & resolved_product_image. app_version_label ,
389+ & resolved_product_image. product_version ,
380390 & transform_all_roles_to_config (
381391 zk,
382392 [ (
@@ -622,7 +632,7 @@ fn build_server_rolegroup_config_map(
622632 . with_recommended_labels ( build_recommended_labels (
623633 zk,
624634 ZK_CONTROLLER_NAME ,
625- & resolved_product_image. app_version_label ,
635+ & resolved_product_image. app_version_label_value ,
626636 & rolegroup. role ,
627637 & rolegroup. role_group ,
628638 ) )
@@ -644,11 +654,16 @@ fn build_server_rolegroup_config_map(
644654 } ) ?,
645655 ) ;
646656
647- extend_role_group_config_map ( zk, role, rolegroup, & mut cm_builder) . context (
648- InvalidLoggingConfigSnafu {
649- cm_name : rolegroup. object_name ( ) ,
650- } ,
651- ) ?;
657+ extend_role_group_config_map (
658+ zk,
659+ role,
660+ rolegroup,
661+ & mut cm_builder,
662+ & resolved_product_image. product_version ,
663+ )
664+ . context ( InvalidLoggingConfigSnafu {
665+ cm_name : rolegroup. object_name ( ) ,
666+ } ) ?;
652667
653668 cm_builder
654669 . build ( )
@@ -675,7 +690,7 @@ fn build_server_rolegroup_headless_service(
675690 . with_recommended_labels ( build_recommended_labels (
676691 zk,
677692 ZK_CONTROLLER_NAME ,
678- & resolved_product_image. app_version_label ,
693+ & resolved_product_image. app_version_label_value ,
679694 & rolegroup. role ,
680695 & rolegroup. role_group ,
681696 ) )
@@ -736,7 +751,7 @@ fn build_server_rolegroup_metrics_service(
736751 . with_recommended_labels ( build_recommended_labels (
737752 zk,
738753 ZK_CONTROLLER_NAME ,
739- & resolved_product_image. app_version_label ,
754+ & resolved_product_image. app_version_label_value ,
740755 & rolegroup. role ,
741756 & rolegroup. role_group ,
742757 ) )
@@ -953,8 +968,13 @@ fn build_server_rolegroup_statefulset(
953968 )
954969 . add_env_var (
955970 "SERVER_JVMFLAGS" ,
956- construct_non_heap_jvm_args ( zk, role, & rolegroup_ref. role_group )
957- . context ( ConstructJvmArgumentsSnafu ) ?,
971+ construct_non_heap_jvm_args (
972+ zk,
973+ role,
974+ & rolegroup_ref. role_group ,
975+ & resolved_product_image. product_version ,
976+ )
977+ . context ( ConstructJvmArgumentsSnafu ) ?,
958978 )
959979 . add_env_var (
960980 "CONTAINERDEBUG_LOG_DIRECTORY" ,
@@ -1006,7 +1026,7 @@ fn build_server_rolegroup_statefulset(
10061026 . with_recommended_labels ( build_recommended_labels (
10071027 zk,
10081028 ZK_CONTROLLER_NAME ,
1009- & resolved_product_image. app_version_label ,
1029+ & resolved_product_image. app_version_label_value ,
10101030 & rolegroup_ref. role ,
10111031 & rolegroup_ref. role_group ,
10121032 ) )
@@ -1120,7 +1140,7 @@ fn build_server_rolegroup_statefulset(
11201140 . with_recommended_labels ( build_recommended_labels (
11211141 zk,
11221142 ZK_CONTROLLER_NAME ,
1123- & resolved_product_image. app_version_label ,
1143+ & resolved_product_image. app_version_label_value ,
11241144 & rolegroup_ref. role ,
11251145 & rolegroup_ref. role_group ,
11261146 ) )
@@ -1275,10 +1295,11 @@ mod tests {
12751295 let resolved_product_image = zookeeper
12761296 . spec
12771297 . image
1278- . resolve ( DOCKER_IMAGE_BASE_NAME , "0.0.0-dev" ) ;
1298+ . resolve ( DOCKER_IMAGE_BASE_NAME , "0.0.0-dev" )
1299+ . expect ( "test resolved product image is always valid" ) ;
12791300
12801301 let validated_config = validate_all_roles_and_groups_config (
1281- & resolved_product_image. app_version_label ,
1302+ & resolved_product_image. product_version ,
12821303 & transform_all_roles_to_config (
12831304 & zookeeper,
12841305 [ (
0 commit comments